Skip to content

Commit

Permalink
Merge pull request #1222 from j75689/fix/build-info
Browse files Browse the repository at this point in the history
metrics: fix the label format of prometheus server
  • Loading branch information
unclezoro committed Dec 1, 2022
2 parents b6b274e + ecc12f6 commit cd0d177
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 13 deletions.
13 changes: 1 addition & 12 deletions metrics/label.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package metrics

import "encoding/json"

// Label hold an map[string]interface{} value that can be set arbitrarily.
type Label interface {
Value() map[string]interface{}
String() string
Mark(map[string]interface{})
}

Expand All @@ -26,8 +23,7 @@ func NewStandardLabel() *StandardLabel {

// StandardLabel is the standard implementation of a Label.
type StandardLabel struct {
value map[string]interface{}
jsonStr string
value map[string]interface{}
}

// Value returns label values.
Expand All @@ -37,12 +33,5 @@ func (l *StandardLabel) Value() map[string]interface{} {

// Mark records the label.
func (l *StandardLabel) Mark(value map[string]interface{}) {
buf, _ := json.Marshal(value)
l.jsonStr = string(buf)
l.value = value
}

// String returns label by JSON format.
func (l *StandardLabel) String() string {
return l.jsonStr
}
6 changes: 5 additions & 1 deletion metrics/prometheus/collector.go
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,11 @@ func (c *collector) addResettingTimer(name string, m metrics.ResettingTimer) {
}

func (c *collector) addLabel(name string, m metrics.Label) {
c.writeLabel(mutateKey(name), m.String())
labels := make([]string, 0, len(m.Value()))
for k, v := range m.Value() {
labels = append(labels, fmt.Sprintf(`%s="%s"`, mutateKey(k), fmt.Sprint(v)))
}
c.writeLabel(mutateKey(name), "{"+strings.Join(labels, ", ")+"}")
}

func (c *collector) writeLabel(name string, value interface{}) {
Expand Down

0 comments on commit cd0d177

Please sign in to comment.