mirror of
https://github.com/syncthing/syncthing.git
synced 2025-12-23 22:18:14 -05:00
fix(ur): properly skip zero/empty fields in report (#10394)
Signed-off-by: Jakob Borg <jakob@kastelo.net>
This commit is contained in:
@@ -52,7 +52,7 @@ type Report struct {
|
||||
ExternalVersioning int `json:"externalVersioning,omitempty" metric:"folder_feature{feature=VersioningExternal},summary" since:"2"`
|
||||
StaggeredVersioning int `json:"staggeredVersioning,omitempty" metric:"folder_feature{feature=VersioningStaggered},summary" since:"2"`
|
||||
TrashcanVersioning int `json:"trashcanVersioning,omitempty" metric:"folder_feature{feature=VersioningTrashcan},summary" since:"2"`
|
||||
} `json:"folderUses,omitempty" since:"2"`
|
||||
} `json:"folderUses,omitzero" since:"2"`
|
||||
|
||||
DeviceUses struct {
|
||||
Introducer int `json:"introducer,omitempty" metric:"device_feature{feature=Introducer},summary" since:"2"`
|
||||
@@ -62,20 +62,20 @@ type Report struct {
|
||||
CompressNever int `json:"compressNever,omitempty" metric:"device_feature{feature=CompressNever},summary" since:"2"`
|
||||
DynamicAddr int `json:"dynamicAddr,omitempty" metric:"device_feature{feature=AddressDynamic},summary" since:"2"`
|
||||
StaticAddr int `json:"staticAddr,omitempty" metric:"device_feature{feature=AddressStatic},summary" since:"2"`
|
||||
} `json:"deviceUses,omitempty" since:"2"`
|
||||
} `json:"deviceUses,omitzero" since:"2"`
|
||||
|
||||
Announce struct {
|
||||
GlobalEnabled bool `json:"globalEnabled,omitempty" metric:"discovery_feature_count{feature=GlobalEnabled},gauge" since:"2"`
|
||||
LocalEnabled bool `json:"localEnabled,omitempty" metric:"discovery_feature_count{feature=LocalEnabled},gauge" since:"2"`
|
||||
DefaultServersDNS int `json:"defaultServersDNS,omitempty" metric:"discovery_default_servers,summary" since:"2"`
|
||||
OtherServers int `json:"otherServers,omitempty" metric:"discovery_other_servers,summary" since:"2"`
|
||||
} `json:"announce,omitempty" since:"2"`
|
||||
} `json:"announce,omitzero" since:"2"`
|
||||
|
||||
Relays struct {
|
||||
Enabled bool `json:"enabled,omitempty" metric:"relay_feature_enabled,gauge" since:"2"`
|
||||
DefaultServers int `json:"defaultServers,omitempty" metric:"relay_feature_count{feature=DefaultServers},summary" since:"2"`
|
||||
OtherServers int `json:"otherServers,omitempty" metric:"relay_feature_count{feature=OtherServers},summary" since:"2"`
|
||||
} `json:"relays,omitempty" since:"2"`
|
||||
} `json:"relays,omitzero" since:"2"`
|
||||
|
||||
UsesRateLimit bool `json:"usesRateLimit,omitempty" metric:"feature_count{feature=RateLimitsEnabled},gauge" since:"2"`
|
||||
UpgradeAllowedManual bool `json:"upgradeAllowedManual,omitempty" metric:"feature_count{feature=UpgradeAllowedManual},gauge" since:"2"`
|
||||
@@ -127,13 +127,13 @@ type Report struct {
|
||||
SyncXattrs int `json:"syncXattrs,omitempty" metric:"folder_feature{feature=SyncXattrs},summary" since:"3"`
|
||||
SendOwnership int `json:"sendOwnership,omitempty" metric:"folder_feature{feature=SendOwnership},summary" since:"3"`
|
||||
SyncOwnership int `json:"syncOwnership,omitempty" metric:"folder_feature{feature=SyncOwnership},summary" since:"3"`
|
||||
} `json:"folderUsesV3,omitempty" since:"3"`
|
||||
} `json:"folderUsesV3,omitzero" since:"3"`
|
||||
|
||||
DeviceUsesV3 struct {
|
||||
Untrusted int `json:"untrusted,omitempty" metric:"device_feature{feature=Untrusted},summary" since:"3"`
|
||||
UsesRateLimit int `json:"usesRateLimit,omitempty" metric:"device_feature{feature=RateLimitsEnabled},summary" since:"3"`
|
||||
MultipleConnections int `json:"multipleConnections,omitempty" metric:"device_feature{feature=MultipleConnections},summary" since:"3"`
|
||||
} `json:"deviceUsesV3,omitempty" since:"3"`
|
||||
} `json:"deviceUsesV3,omitzero" since:"3"`
|
||||
|
||||
GUIStats struct {
|
||||
Enabled int `json:"enabled,omitempty" metric:"gui_feature_count{feature=Enabled},summary" since:"3"`
|
||||
@@ -146,7 +146,7 @@ type Report struct {
|
||||
ListenLocal int `json:"listenLocal,omitempty" metric:"gui_feature_count{feature=ListenLocal},summary" since:"3"`
|
||||
ListenUnspecified int `json:"listenUnspecified,omitempty" metric:"gui_feature_count{feature=ListenUnspecified},summary" since:"3"`
|
||||
Theme map[string]int `json:"theme,omitempty" metric:"gui_theme,summaryVec:theme" since:"3"`
|
||||
} `json:"guiStats,omitempty" since:"3"`
|
||||
} `json:"guiStats,omitzero" since:"3"`
|
||||
|
||||
BlockStats struct {
|
||||
Total int `json:"total,omitempty" metric:"blocks_processed_total,gauge" since:"3"`
|
||||
@@ -155,7 +155,7 @@ type Report struct {
|
||||
Pulled int `json:"pulled,omitempty" metric:"blocks_processed{source=pulled},gauge" since:"3"`
|
||||
CopyOrigin int `json:"copyOrigin,omitempty" metric:"blocks_processed{source=copy_origin},gauge" since:"3"`
|
||||
CopyElsewhere int `json:"copyElsewhere,omitempty" metric:"blocks_processed{source=copy_elsewhere},gauge" since:"3"`
|
||||
} `json:"blockStats,omitempty" since:"3"`
|
||||
} `json:"blockStats,omitzero" since:"3"`
|
||||
|
||||
TransportStats map[string]int `json:"transportStats,omitempty" since:"3"`
|
||||
|
||||
@@ -169,32 +169,32 @@ type Report struct {
|
||||
EscapedIncludes int `json:"escapedIncludes,omitempty" metric:"folder_ignore_lines{kind=escapedIncludes},summary" since:"3"`
|
||||
DoubleStars int `json:"doubleStars,omitempty" metric:"folder_ignore_lines{kind=doubleStars},summary" since:"3"`
|
||||
Stars int `json:"stars,omitempty" metric:"folder_ignore_lines{kind=stars},summary" since:"3"`
|
||||
} `json:"ignoreStats,omitempty" since:"3"`
|
||||
} `json:"ignoreStats,omitzero" since:"3"`
|
||||
|
||||
// Added in post processing
|
||||
Received time.Time `json:"received,omitempty"`
|
||||
Received time.Time `json:"received,omitzero"`
|
||||
Date string `json:"date,omitempty"`
|
||||
Address string `json:"address,omitempty"`
|
||||
OS string `json:"os" metric:"reports_total,gaugeVec:os"`
|
||||
Arch string `json:"arch" metric:"reports_total,gaugeVec:arch"`
|
||||
Compiler string `json:"compiler" metric:"builder,gaugeVec:compiler"`
|
||||
Builder string `json:"builder" metric:"builder,gaugeVec:builder"`
|
||||
Distribution string `json:"distribution" metric:"builder,gaugeVec:distribution"`
|
||||
Country string `json:"country" metric:"location,gaugeVec:country"`
|
||||
CountryCode string `json:"countryCode" metric:"location,gaugeVec:countryCode"`
|
||||
MajorVersion string `json:"majorVersion" metric:"reports_by_major_total,gaugeVec:version"`
|
||||
OS string `json:"os,omitempty" metric:"reports_total,gaugeVec:os"`
|
||||
Arch string `json:"arch,omitempty" metric:"reports_total,gaugeVec:arch"`
|
||||
Compiler string `json:"compiler,omitempty" metric:"builder,gaugeVec:compiler"`
|
||||
Builder string `json:"builder,omitempty" metric:"builder,gaugeVec:builder"`
|
||||
Distribution string `json:"distribution,omitempty" metric:"builder,gaugeVec:distribution"`
|
||||
Country string `json:"country,omitempty" metric:"location,gaugeVec:country"`
|
||||
CountryCode string `json:"countryCode,omitempty" metric:"location,gaugeVec:countryCode"`
|
||||
MajorVersion string `json:"majorVersion,omitempty" metric:"reports_by_major_total,gaugeVec:version"`
|
||||
|
||||
// Once more to create a metric on OS, arch, distribution
|
||||
DistDist string `json:"distDist" metric:"distribution,gaugeVec:distribution"`
|
||||
DistOS string `json:"distOS" metric:"distribution,gaugeVec:os"`
|
||||
DistArch string `json:"distArch" metric:"distribution,gaugeVec:arch"`
|
||||
DistDist string `json:"distDist,omitempty" metric:"distribution,gaugeVec:distribution"`
|
||||
DistOS string `json:"distOS,omitempty" metric:"distribution,gaugeVec:os"`
|
||||
DistArch string `json:"distArch,omitempty" metric:"distribution,gaugeVec:arch"`
|
||||
|
||||
// Database counts
|
||||
Database struct {
|
||||
ModernCSQLite bool `json:"modernCSQLite" metric:"database_engine{engine=modernc-sqlite},gauge"`
|
||||
MattnSQLite bool `json:"mattnSQLite" metric:"database_engine{engine=mattn-sqlite},gauge"`
|
||||
LevelDB bool `json:"levelDB" metric:"database_engine{engine=leveldb},gauge"`
|
||||
} `json:"database"`
|
||||
ModernCSQLite bool `json:"modernCSQLite,omitempty" metric:"database_engine{engine=modernc-sqlite},gauge"`
|
||||
MattnSQLite bool `json:"mattnSQLite,omitempty" metric:"database_engine{engine=mattn-sqlite},gauge"`
|
||||
LevelDB bool `json:"levelDB,omitempty" metric:"database_engine{engine=leveldb},gauge"`
|
||||
} `json:"database,omitzero"`
|
||||
}
|
||||
|
||||
func New() *Report {
|
||||
|
||||
Reference in New Issue
Block a user