diff options
Diffstat (limited to 'pkg/metricsx/metricsx.go')
-rw-r--r-- | pkg/metricsx/metricsx.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/pkg/metricsx/metricsx.go b/pkg/metricsx/metricsx.go new file mode 100644 index 0000000..bc37843 --- /dev/null +++ b/pkg/metricsx/metricsx.go @@ -0,0 +1,39 @@ +// Package metricsx extends github.com/VictoriaMetrics/metrics. +package metricsx + +import "strings" + +func splitName(name string) (base, arg string) { + if n := len(name); n != 0 { + base = name + for i, r := range base { + if r == '{' { + if j := len(base) - 1; j > i && base[j] == '}' { + base, arg = base[:i], base[i+1:j] + break + } + } + } + } + return +} + +func formatName(base, arg string, args ...string) string { + var b strings.Builder + b.WriteString(base) + b.WriteByte('{') + if arg != "" { + b.WriteString(arg) + } + for i := 1; i < len(args); i += 2 { + if arg != "" || i > 1 { + b.WriteByte(',') + } + b.WriteString(args[i-1]) + b.WriteString("=\"") + b.WriteString(args[i]) + b.WriteByte('"') + } + b.WriteByte('}') + return b.String() +} |