Browse Source

fix(ur): properly skip zero/empty fields in report (#10394)

Signed-off-by: Jakob Borg <[email protected]>
Jakob Borg 1 month ago
parent
commit
ea19ec64bf
1 changed files with 25 additions and 25 deletions
  1. 25 25
      lib/ur/contract/contract.go

+ 25 - 25
lib/ur/contract/contract.go

@@ -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 {