From a9f3960c4e957a9334c8efeb2bf941b0febac5a5 Mon Sep 17 00:00:00 2001 From: Dominik Rosiek <58699848+sumo-drosiek@users.noreply.github.com> Date: Fri, 19 Jan 2024 11:03:35 +0100 Subject: [PATCH] fix(sumologicexporter): fix prometheus formatter for non-string data point labels (#1428) * fix: fix prometheus formatter for non-string data point labels Signed-off-by: Dominik Rosiek * chore: changelog Signed-off-by: Dominik Rosiek * Rename 3646.fixed.txt to 1428.fixed.txt * Update .changelog/1428.fixed.txt --------- Signed-off-by: Dominik Rosiek --- .changelog/1428.fixed.txt | 1 + pkg/exporter/sumologicexporter/prometheus_formatter.go | 2 +- .../sumologicexporter/prometheus_formatter_test.go | 10 ++++++++-- 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 .changelog/1428.fixed.txt diff --git a/.changelog/1428.fixed.txt b/.changelog/1428.fixed.txt new file mode 100644 index 0000000000..7eee6b9332 --- /dev/null +++ b/.changelog/1428.fixed.txt @@ -0,0 +1 @@ +fix(sumologicexporter): fix prometheus formatter for non-string data point diff --git a/pkg/exporter/sumologicexporter/prometheus_formatter.go b/pkg/exporter/sumologicexporter/prometheus_formatter.go index a711032cbb..c5e4a860a8 100644 --- a/pkg/exporter/sumologicexporter/prometheus_formatter.go +++ b/pkg/exporter/sumologicexporter/prometheus_formatter.go @@ -68,7 +68,7 @@ func (f *prometheusFormatter) tags2String(attr pcommon.Map, labels pcommon.Map) attr.CopyTo(mergedAttributes) labels.Range(func(k string, v pcommon.Value) bool { - mergedAttributes.PutStr(k, v.Str()) + mergedAttributes.PutStr(k, v.AsString()) return true }) length := mergedAttributes.Len() diff --git a/pkg/exporter/sumologicexporter/prometheus_formatter_test.go b/pkg/exporter/sumologicexporter/prometheus_formatter_test.go index 5f34e196bb..86132467f7 100644 --- a/pkg/exporter/sumologicexporter/prometheus_formatter_test.go +++ b/pkg/exporter/sumologicexporter/prometheus_formatter_test.go @@ -57,10 +57,16 @@ func TestTags2String(t *testing.T) { require.NoError(t, err) _, attributes := exampleIntMetric() + attributes.PutInt("int", 200) + + labels := pcommon.NewMap() + labels.PutInt("l_int", 200) + labels.PutStr("l_str", "two") + assert.Equal( t, - prometheusTags(`{test="test_value",test2="second_value"}`), - f.tags2String(attributes, pcommon.NewMap()), + prometheusTags(`{test="test_value",test2="second_value",int="200",l_int="200",l_str="two"}`), + f.tags2String(attributes, labels), ) }