metrics: fix the label format of prometheus server
This commit is contained in:
parent
b6b274eba2
commit
ecc12f6493
@ -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{})
|
||||
}
|
||||
|
||||
@ -27,7 +24,6 @@ func NewStandardLabel() *StandardLabel {
|
||||
// StandardLabel is the standard implementation of a Label.
|
||||
type StandardLabel struct {
|
||||
value map[string]interface{}
|
||||
jsonStr string
|
||||
}
|
||||
|
||||
// Value returns label values.
|
||||
@ -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
|
||||
}
|
||||
|
@ -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{}) {
|
||||
|
Loading…
Reference in New Issue
Block a user