Clean up perUnits ending with underscores

Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>
This commit is contained in:
Arthur Silva Sens 2025-01-03 11:49:23 -03:00
parent f8bc738548
commit 2026c5bf77
No known key found for this signature in database
2 changed files with 11 additions and 0 deletions

View file

@ -164,6 +164,9 @@ func normalizeName(metric pmetric.Metric, namespace string) string {
// addUnitTokens will add the suffixes to the nameTokens if they are not already present.
// It will also remove trailing underscores from the main suffix to avoid double underscores
// when joining the tokens.
//
// If the 'per' unit ends with underscore, the underscore will be removed. If the per unit is just
// 'per_', it will be entirely removed.
func addUnitTokens(nameTokens []string, mainUnitSuffix, perUnitSuffix string) []string {
if slices.Contains(nameTokens, mainUnitSuffix) {
mainUnitSuffix = ""
@ -173,6 +176,11 @@ func addUnitTokens(nameTokens []string, mainUnitSuffix, perUnitSuffix string) []
perUnitSuffix = ""
}
if perUnitSuffix == "per_" {
perUnitSuffix = ""
}
perUnitSuffix = strings.TrimSuffix(perUnitSuffix, "_")
if perUnitSuffix != "" {
mainUnitSuffix = strings.TrimSuffix(mainUnitSuffix, "_")
}

View file

@ -174,6 +174,9 @@ func TestAddUnitTokens(t *testing.T) {
{[]string{"token1", "per"}, "main", "per", []string{"token1", "per", "main"}},
{[]string{"token1", "main"}, "main", "per", []string{"token1", "main", "per"}},
{[]string{"token1"}, "main_", "per", []string{"token1", "main", "per"}},
{[]string{"token1"}, "main_unit", "per_seconds_", []string{"token1", "main_unit", "per_seconds"}}, // trailing underscores are removed
{[]string{"token1"}, "main_unit", "per_", []string{"token1", "main_unit"}}, // 'per_' is removed enterily
}
for _, test := range tests {