Browse Source

bugfix: Fix otlp translation of foreign characters

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>
pull/15249/head
Arthur Silva Sens 3 weeks ago
parent
commit
ea06f1a1d1
No known key found for this signature in database
  1. 2
      storage/remote/otlptranslator/prometheus/normalize_label.go
  2. 6
      storage/remote/otlptranslator/prometheus/normalize_name.go

2
storage/remote/otlptranslator/prometheus/normalize_label.go

@ -49,7 +49,7 @@ func NormalizeLabel(label string) string {
// Return '_' for anything non-alphanumeric.
func sanitizeRune(r rune) rune {
if unicode.IsLetter(r) || unicode.IsDigit(r) {
if unicode.IsLower(r) || unicode.IsUpper(r) || unicode.IsDigit(r) {
return r
}
return '_'

6
storage/remote/otlptranslator/prometheus/normalize_name.go

@ -237,11 +237,13 @@ func removeSuffix(tokens []string, suffix string) []string {
// Clean up specified string so it's Prometheus compliant
func CleanUpString(s string) string {
return strings.Join(strings.FieldsFunc(s, func(r rune) bool { return !unicode.IsLetter(r) && !unicode.IsDigit(r) }), "_")
return strings.Join(strings.FieldsFunc(s, func(r rune) bool { return !unicode.IsUpper(r) && !unicode.IsLower(r) && !unicode.IsDigit(r) }), "_")
}
func RemovePromForbiddenRunes(s string) string {
return strings.Join(strings.FieldsFunc(s, func(r rune) bool { return !unicode.IsLetter(r) && !unicode.IsDigit(r) && r != '_' && r != ':' }), "_")
return strings.Join(strings.FieldsFunc(s, func(r rune) bool {
return !unicode.IsUpper(r) && !unicode.IsLower(r) && !unicode.IsDigit(r) && r != '_' && r != ':'
}), "_")
}
// Retrieve the Prometheus "basic" unit corresponding to the specified "basic" unit

Loading…
Cancel
Save