Compare commits

...

4 Commits

Author SHA1 Message Date
zjubfd
cb9e50bdf6 Merge pull request #1223 from bnb-chain/develop
hotfix: fix the incorrect format of prometheus label
2022-12-01 17:12:31 +08:00
zjubfd
cd0d177f57 Merge pull request #1222 from j75689/fix/build-info
metrics: fix the label format of prometheus server
2022-12-01 17:07:09 +08:00
j75689
ecc12f6493 metrics: fix the label format of prometheus server 2022-12-01 16:54:10 +08:00
nathanhopp
b6b274eba2 metrics fix: edit mutate key to replace - with _ (#1217) 2022-12-01 10:13:50 +08:00
2 changed files with 9 additions and 14 deletions

View File

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

View File

@@ -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{}) {
@@ -126,5 +130,7 @@ func (c *collector) writeSummaryPercentile(name, p string, value interface{}) {
}
func mutateKey(key string) string {
return strings.Replace(key, "/", "_", -1)
key = strings.Replace(key, "/", "_", -1)
key = strings.Replace(key, "-", "_", -1)
return key
}