in pkg/xcontext/metrics/prometheus/metrics.go [418:456]
func TagValueToString(vI interface{}) string {
switch v := vI.(type) {
case int:
r := getPrebakedString(int32(v))
if len(r) != 0 {
return r
}
return strconv.FormatInt(int64(v), 10)
case uint64:
r := getPrebakedString(int32(v))
if len(r) != 0 {
return r
}
return strconv.FormatUint(v, 10)
case int64:
r := getPrebakedString(int32(v))
if len(r) != 0 {
return r
}
return strconv.FormatInt(v, 10)
case string:
return strings.Replace(v, ",", "_", -1)
case bool:
switch v {
case true:
return "true"
case false:
return "false"
}
case []byte:
return string(v)
case nil:
return "null"
case interface{ String() string }:
return strings.Replace(v.String(), ",", "_", -1)
}
return "<unknown_type>"
}