Skip to content

Commit ece74f8

Browse files
committed
optimize BuildFQName function
Signed-off-by: Jan-Otto Kröpke <[email protected]>
1 parent aef8aed commit ece74f8

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

prometheus/metric.go

+16-8
Original file line numberDiff line numberDiff line change
@@ -108,15 +108,23 @@ func BuildFQName(namespace, subsystem, name string) string {
108108
if name == "" {
109109
return ""
110110
}
111-
switch {
112-
case namespace != "" && subsystem != "":
113-
return strings.Join([]string{namespace, subsystem, name}, "_")
114-
case namespace != "":
115-
return strings.Join([]string{namespace, name}, "_")
116-
case subsystem != "":
117-
return strings.Join([]string{subsystem, name}, "_")
111+
112+
sb := strings.Builder{}
113+
sb.Grow(len(namespace) + len(subsystem) + len(name) + 2)
114+
115+
if namespace != "" {
116+
sb.WriteString(namespace)
117+
sb.WriteString("_")
118118
}
119-
return name
119+
120+
if subsystem != "" {
121+
sb.WriteString(subsystem)
122+
sb.WriteString("_")
123+
}
124+
125+
sb.WriteString(name)
126+
127+
return sb.String()
120128
}
121129

122130
type invalidMetric struct {

0 commit comments

Comments
 (0)