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  }