github.com/argoproj/argo-cd/v3@v3.2.1/util/metrics/metrics.go (about) 1 package metrics 2 3 import ( 4 "fmt" 5 "regexp" 6 ) 7 8 // Prometheus invalid labels, more info: https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels. 9 var invalidPromLabelChars = regexp.MustCompile(`[^a-zA-Z0-9_]`) 10 11 func NormalizeLabels(prefix string, labels []string) []string { 12 results := []string{} 13 for _, label := range labels { 14 // prometheus labels don't accept dash in their name 15 curr := invalidPromLabelChars.ReplaceAllString(label, "_") 16 result := fmt.Sprintf("%s_%s", prefix, curr) 17 results = append(results, result) 18 } 19 return results 20 }