From 8590bc2ded834eebb8e1de34a8893a9b9a126b76 Mon Sep 17 00:00:00 2001 From: Artyom Antonov Date: Mon, 8 Jun 2026 13:44:00 +0500 Subject: [PATCH 1/3] feat(influx2otel): add an option to set name separator --- influx2otel/metrics.go | 21 ++++++++++++++----- influx2otel/metrics_telegraf_prometheus_v1.go | 4 ++-- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/influx2otel/metrics.go b/influx2otel/metrics.go index 7c37cf97..81db9524 100644 --- a/influx2otel/metrics.go +++ b/influx2otel/metrics.go @@ -16,12 +16,21 @@ import ( ) type LineProtocolToOtelMetrics struct { - logger common.Logger + logger common.Logger + nameSeparator string } func NewLineProtocolToOtelMetrics(logger common.Logger) (*LineProtocolToOtelMetrics, error) { return &LineProtocolToOtelMetrics{ - logger: logger, + logger: logger, + nameSeparator: "_", + }, nil +} + +func NewLineProtocolToOtelMetricsWithSeparator(logger common.Logger, nameSeparator string) (*LineProtocolToOtelMetrics, error) { + return &LineProtocolToOtelMetrics{ + logger: logger, + nameSeparator: nameSeparator, }, nil } @@ -33,7 +42,8 @@ func (c *LineProtocolToOtelMetrics) NewBatch() *MetricsBatch { histogramDataPointsByMDPK: make(map[pmetric.Metric]map[dataPointKey]pmetric.HistogramDataPoint), summaryDataPointsByMDPK: make(map[pmetric.Metric]map[dataPointKey]pmetric.SummaryDataPoint), - logger: c.logger, + logger: c.logger, + nameSeparator: c.nameSeparator, } } @@ -44,7 +54,8 @@ type MetricsBatch struct { histogramDataPointsByMDPK map[pmetric.Metric]map[dataPointKey]pmetric.HistogramDataPoint summaryDataPointsByMDPK map[pmetric.Metric]map[dataPointKey]pmetric.SummaryDataPoint - logger common.Logger + logger common.Logger + nameSeparator string } // measurement - metric name @@ -235,7 +246,7 @@ func (b *MetricsBatch) addPointWithUnknownSchema(measurement string, tags map[st continue } - metricName := fmt.Sprintf("%s_%s", measurement, k) + metricName := fmt.Sprintf("%s%s%s", measurement, b.nameSeparator, k) metric, attributes, err := b.lookupMetric(metricName, tags, common.InfluxMetricValueTypeGauge) if err != nil { return err diff --git a/influx2otel/metrics_telegraf_prometheus_v1.go b/influx2otel/metrics_telegraf_prometheus_v1.go index 765796fb..03618b84 100644 --- a/influx2otel/metrics_telegraf_prometheus_v1.go +++ b/influx2otel/metrics_telegraf_prometheus_v1.go @@ -130,7 +130,7 @@ func (b *MetricsBatch) convertGaugeV1(measurement string, tags map[string]string continue } - metricName := fmt.Sprintf("%s_%s", measurement, k) + metricName := fmt.Sprintf("%s%s%s", measurement, b.nameSeparator, k) metric, attributes, err := b.lookupMetric(metricName, tags, common.InfluxMetricValueTypeGauge) if err != nil { return err @@ -220,7 +220,7 @@ func (b *MetricsBatch) convertSumV1(measurement string, tags map[string]string, continue } - metricName := fmt.Sprintf("%s_%s", measurement, k) + metricName := fmt.Sprintf("%s%s%s", measurement, b.nameSeparator, k) metric, attributes, err := b.lookupMetric(metricName, tags, common.InfluxMetricValueTypeSum) if err != nil { return err From db200540d054963456fe7760849f28c5360d3f81 Mon Sep 17 00:00:00 2001 From: Artyom Antonov Date: Tue, 23 Jun 2026 20:57:32 +0500 Subject: [PATCH 2/3] Add tests --- .../metrics_telegraf_prometheus_v1_test.go | 164 ++++++++++++++++++ influx2otel/metrics_unknown_schema_test.go | 57 ++++++ 2 files changed, 221 insertions(+) diff --git a/influx2otel/metrics_telegraf_prometheus_v1_test.go b/influx2otel/metrics_telegraf_prometheus_v1_test.go index d8830766..f0405d88 100644 --- a/influx2otel/metrics_telegraf_prometheus_v1_test.go +++ b/influx2otel/metrics_telegraf_prometheus_v1_test.go @@ -534,3 +534,167 @@ func TestAddPoint_v1_untypedSummary(t *testing.T) { assertMetricsEqual(t, expect, b.GetMetrics()) } + +func TestAddPoint_v1_gauge_separator(t *testing.T) { + // Use a dot to separate name and fields + c, err := influx2otel.NewLineProtocolToOtelMetricsWithSeparator(new(common.NoopLogger), ".") + require.NoError(t, err) + + b := c.NewBatch() + err = b.AddPoint("cache_age_seconds", + map[string]string{ + "container.name": "42", + "otel.library.name": "My Library", + "otel.library.version": "latest", + "engine_id": "0", + }, + map[string]interface{}{ + "gauge": float64(23.9), + }, + time.Unix(0, 1395066363000000123).UTC(), + common.InfluxMetricValueTypeGauge) + require.NoError(t, err) + + err = b.AddPoint("cache_age_seconds", + map[string]string{ + "container.name": "42", + "otel.library.name": "My Library", + "otel.library.version": "latest", + "engine_id": "1", + }, + map[string]interface{}{ + "custom_gauge": float64(11.9), + }, + time.Unix(0, 1395066363000000123).UTC(), + common.InfluxMetricValueTypeGauge) + require.NoError(t, err) + + expect := pmetric.NewMetrics() + rm := expect.ResourceMetrics().AppendEmpty() + rm.Resource().Attributes().PutStr("container.name", "42") + isMetrics := rm.ScopeMetrics().AppendEmpty() + isMetrics.Scope().SetName("My Library") + isMetrics.Scope().SetVersion("latest") + m := isMetrics.Metrics().AppendEmpty() + m.SetName("cache_age_seconds") + m.SetEmptyGauge() + dp := m.Gauge().DataPoints().AppendEmpty() + dp.Attributes().PutStr("engine_id", "0") + dp.SetTimestamp(pcommon.NewTimestampFromTime(time.Unix(0, 1395066363000000123))) + dp.SetDoubleValue(23.9) + m = isMetrics.Metrics().AppendEmpty() + m.SetName("cache_age_seconds.custom_gauge") // Uses a dot to separate name and fields + m.SetEmptyGauge() + dp = m.Gauge().DataPoints().AppendEmpty() + dp.Attributes().PutStr("engine_id", "1") + dp.SetTimestamp(pcommon.NewTimestampFromTime(time.Unix(0, 1395066363000000123))) + dp.SetDoubleValue(11.9) + + assertMetricsEqual(t, expect, b.GetMetrics()) +} +func TestAddPoint_v1_sum_separator(t *testing.T) { + // Use a dot to separate name and fields + c, err := influx2otel.NewLineProtocolToOtelMetricsWithSeparator(new(common.NoopLogger), ".") + require.NoError(t, err) + + b := c.NewBatch() + err = b.AddPoint("http_requests_total", + map[string]string{ + "container.name": "42", + "otel.library.name": "My Library", + "otel.library.version": "latest", + "method": "post", + "code": "200", + }, + map[string]interface{}{ + "counter": float64(1027), + }, + time.Unix(0, 1395066363000000123).UTC(), + common.InfluxMetricValueTypeSum) + require.NoError(t, err) + + err = b.AddPoint("http_requests_total", + map[string]string{ + "container.name": "42", + "otel.library.name": "My Library", + "otel.library.version": "latest", + "method": "post", + "code": "400", + }, + map[string]interface{}{ + "custom_counter": float64(3), + }, + time.Unix(0, 1395066363000000123).UTC(), + common.InfluxMetricValueTypeSum) + require.NoError(t, err) + + expect := pmetric.NewMetrics() + rm := expect.ResourceMetrics().AppendEmpty() + rm.Resource().Attributes().PutStr("container.name", "42") + isMetrics := rm.ScopeMetrics().AppendEmpty() + isMetrics.Scope().SetName("My Library") + isMetrics.Scope().SetVersion("latest") + m := isMetrics.Metrics().AppendEmpty() + m.SetName("http_requests_total") + m.SetEmptySum() + m.Sum().SetIsMonotonic(true) + m.Sum().SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + dp := m.Sum().DataPoints().AppendEmpty() + dp.Attributes().PutStr("code", "200") + dp.Attributes().PutStr("method", "post") + dp.SetTimestamp(pcommon.NewTimestampFromTime(time.Unix(0, 1395066363000000123))) + dp.SetDoubleValue(1027) + m = isMetrics.Metrics().AppendEmpty() + m.SetName("http_requests_total.custom_counter") // Uses a dot to separate name and fields + m.SetEmptySum() + m.Sum().SetIsMonotonic(true) + m.Sum().SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + dp = m.Sum().DataPoints().AppendEmpty() + dp.Attributes().PutStr("code", "400") + dp.Attributes().PutStr("method", "post") + dp.SetTimestamp(pcommon.NewTimestampFromTime(time.Unix(0, 1395066363000000123))) + dp.SetDoubleValue(3) + + assertMetricsEqual(t, expect, b.GetMetrics()) +} +func TestAddPoint_v1_untyped_separator(t *testing.T) { + // Use a dot to separate name and fields + c, err := influx2otel.NewLineProtocolToOtelMetricsWithSeparator(new(common.NoopLogger), ".") + require.NoError(t, err) + + b := c.NewBatch() + err = b.AddPoint("some_custom_metric", + map[string]string{ + "container.name": "42", + "otel.library.name": "My Library", + "otel.library.version": "latest", + }, + map[string]any{ + "count": int64(1), + "something_else": float64(2.3), + }, + time.Unix(0, 1395066363000000123).UTC(), + common.InfluxMetricValueTypeUntyped) + require.NoError(t, err) + + expect := pmetric.NewMetrics() + rm := expect.ResourceMetrics().AppendEmpty() + rm.Resource().Attributes().PutStr("container.name", "42") + isMetrics := rm.ScopeMetrics().AppendEmpty() + isMetrics.Scope().SetName("My Library") + isMetrics.Scope().SetVersion("latest") + m := isMetrics.Metrics().AppendEmpty() + m.SetName("some_custom_metric.count") // Uses a dot to separate name and fields + m.SetEmptyGauge() + dp := m.Gauge().DataPoints().AppendEmpty() + dp.SetTimestamp(pcommon.NewTimestampFromTime(time.Unix(0, 1395066363000000123))) + dp.SetIntValue(1) + m = isMetrics.Metrics().AppendEmpty() + m.SetName("some_custom_metric.something_else") // Uses a dot to separate name and fields + m.SetEmptyGauge() + dp = m.Gauge().DataPoints().AppendEmpty() + dp.SetTimestamp(pcommon.NewTimestampFromTime(time.Unix(0, 1395066363000000123))) + dp.SetDoubleValue(2.3) + + assertMetricsEqual(t, expect, b.GetMetrics()) +} diff --git a/influx2otel/metrics_unknown_schema_test.go b/influx2otel/metrics_unknown_schema_test.go index 9f5456d8..a9e0c58b 100644 --- a/influx2otel/metrics_unknown_schema_test.go +++ b/influx2otel/metrics_unknown_schema_test.go @@ -68,3 +68,60 @@ func TestUnknownSchema(t *testing.T) { assertMetricsEqual(t, expect, b.GetMetrics()) } + +func TestUnknownSchema_CustomSeparator(t *testing.T) { + // Use a dot to separate name and fields + c, err := influx2otel.NewLineProtocolToOtelMetricsWithSeparator(new(common.NoopLogger), ".") + require.NoError(t, err) + + b := c.NewBatch() + err = b.AddPoint("cpu", + map[string]string{ + "container.name": "42", + "otel.library.name": "My Library", + "otel.library.version": "latest", + "cpu": "cpu4", + "host": "777348dc6343", + }, + map[string]interface{}{ + "usage_user": 0.10090817356207936, + "usage_system": 0.3027245206862381, + "some_int_key": int64(7), + }, + time.Unix(0, 1395066363000000123), + common.InfluxMetricValueTypeUntyped) + require.NoError(t, err) + + expect := pmetric.NewMetrics() + rm := expect.ResourceMetrics().AppendEmpty() + rm.Resource().Attributes().PutStr("container.name", "42") + isMetrics := rm.ScopeMetrics().AppendEmpty() + isMetrics.Scope().SetName("My Library") + isMetrics.Scope().SetVersion("latest") + m := isMetrics.Metrics().AppendEmpty() + m.SetName("cpu.usage_user") // Uses a dot to separate name and fields + m.SetEmptyGauge() + dp := m.Gauge().DataPoints().AppendEmpty() + dp.Attributes().PutStr("cpu", "cpu4") + dp.Attributes().PutStr("host", "777348dc6343") + dp.SetTimestamp(pcommon.Timestamp(1395066363000000123)) + dp.SetDoubleValue(0.10090817356207936) + m = isMetrics.Metrics().AppendEmpty() + m.SetName("cpu.usage_system") // Uses a dot to separate name and fields + m.SetEmptyGauge() + dp = m.Gauge().DataPoints().AppendEmpty() + dp.Attributes().PutStr("cpu", "cpu4") + dp.Attributes().PutStr("host", "777348dc6343") + dp.SetTimestamp(pcommon.Timestamp(1395066363000000123)) + dp.SetDoubleValue(0.3027245206862381) + m = isMetrics.Metrics().AppendEmpty() + m.SetName("cpu.some_int_key") // Uses a dot to separate name and fields + m.SetEmptyGauge() + dp = m.Gauge().DataPoints().AppendEmpty() + dp.Attributes().PutStr("cpu", "cpu4") + dp.Attributes().PutStr("host", "777348dc6343") + dp.SetTimestamp(pcommon.Timestamp(1395066363000000123)) + dp.SetIntValue(7) + + assertMetricsEqual(t, expect, b.GetMetrics()) +} From 6ad72fb9f7e8040bec99a05e1523a02766d8ca5c Mon Sep 17 00:00:00 2001 From: Artyom Antonov Date: Wed, 19 Aug 2026 13:34:30 +0500 Subject: [PATCH 3/3] Add a config struct, similar to otel2influx --- influx2otel/metrics.go | 25 ++++++----- influx2otel/metrics_statsd_schema_test.go | 18 +++++--- .../metrics_telegraf_prometheus_v1_test.go | 44 +++++++++++++------ .../metrics_telegraf_prometheus_v2_test.go | 27 ++++++++---- influx2otel/metrics_unknown_schema_test.go | 7 ++- 5 files changed, 81 insertions(+), 40 deletions(-) diff --git a/influx2otel/metrics.go b/influx2otel/metrics.go index 81db9524..1b3f83e2 100644 --- a/influx2otel/metrics.go +++ b/influx2otel/metrics.go @@ -15,22 +15,27 @@ import ( "github.com/influxdata/influxdb-observability/common" ) +type LineProtocolToOtelMetricsConfig struct { + Logger common.Logger + NameSeparator string +} + +func DefaultLineProtocolToOtelMetricsConfig() *LineProtocolToOtelMetricsConfig { + return &LineProtocolToOtelMetricsConfig{ + Logger: new(common.NoopLogger), + NameSeparator: "_", + } +} + type LineProtocolToOtelMetrics struct { logger common.Logger nameSeparator string } -func NewLineProtocolToOtelMetrics(logger common.Logger) (*LineProtocolToOtelMetrics, error) { - return &LineProtocolToOtelMetrics{ - logger: logger, - nameSeparator: "_", - }, nil -} - -func NewLineProtocolToOtelMetricsWithSeparator(logger common.Logger, nameSeparator string) (*LineProtocolToOtelMetrics, error) { +func NewLineProtocolToOtelMetrics(config *LineProtocolToOtelMetricsConfig) (*LineProtocolToOtelMetrics, error) { return &LineProtocolToOtelMetrics{ - logger: logger, - nameSeparator: nameSeparator, + logger: config.Logger, + nameSeparator: config.NameSeparator, }, nil } diff --git a/influx2otel/metrics_statsd_schema_test.go b/influx2otel/metrics_statsd_schema_test.go index d1ac9796..279ea9b1 100644 --- a/influx2otel/metrics_statsd_schema_test.go +++ b/influx2otel/metrics_statsd_schema_test.go @@ -14,7 +14,8 @@ import ( ) func TestStatsdTimingSchema(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -106,7 +107,8 @@ func TestStatsdTimingSchema(t *testing.T) { } func TestStatsCounter(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) // statsd metric: @@ -142,7 +144,8 @@ func TestStatsCounter(t *testing.T) { } func TestStatsDeltaCounter(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) // statsd metric: @@ -179,7 +182,8 @@ func TestStatsDeltaCounter(t *testing.T) { } func TestStatsGauge(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) // statsd metric: @@ -214,7 +218,8 @@ func TestStatsGauge(t *testing.T) { } func TestStatsdSetsSchema(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) // statsd metric: @@ -249,7 +254,8 @@ func TestStatsdSetsSchema(t *testing.T) { } func TestDeltaTemporalityStatsdCounter(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) // statsd metric: diff --git a/influx2otel/metrics_telegraf_prometheus_v1_test.go b/influx2otel/metrics_telegraf_prometheus_v1_test.go index f0405d88..cc7ccd54 100644 --- a/influx2otel/metrics_telegraf_prometheus_v1_test.go +++ b/influx2otel/metrics_telegraf_prometheus_v1_test.go @@ -14,7 +14,8 @@ import ( ) func TestAddPoint_v1_gauge(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -68,7 +69,8 @@ func TestAddPoint_v1_gauge(t *testing.T) { } func TestAddPoint_v1_untypedGauge(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -122,7 +124,8 @@ func TestAddPoint_v1_untypedGauge(t *testing.T) { } func TestAddPoint_v1_untyped(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -163,7 +166,8 @@ func TestAddPoint_v1_untyped(t *testing.T) { } func TestAddPoint_v1_sum(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -223,7 +227,8 @@ func TestAddPoint_v1_sum(t *testing.T) { } func TestAddPoint_v1_untypedSum(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -283,7 +288,8 @@ func TestAddPoint_v1_untypedSum(t *testing.T) { } func TestAddPoint_v1_histogram(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -332,7 +338,8 @@ func TestAddPoint_v1_histogram(t *testing.T) { } func TestAddPoint_v1_histogram_missingInfinityBucket(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -380,7 +387,8 @@ func TestAddPoint_v1_histogram_missingInfinityBucket(t *testing.T) { } func TestAddPoint_v1_untypedHistogram(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -428,7 +436,8 @@ func TestAddPoint_v1_untypedHistogram(t *testing.T) { } func TestAddPoint_v1_summary(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -488,7 +497,8 @@ func TestAddPoint_v1_summary(t *testing.T) { } func TestAddPoint_v1_untypedSummary(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -536,8 +546,10 @@ func TestAddPoint_v1_untypedSummary(t *testing.T) { } func TestAddPoint_v1_gauge_separator(t *testing.T) { + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + config.NameSeparator = "." // Use a dot to separate name and fields - c, err := influx2otel.NewLineProtocolToOtelMetricsWithSeparator(new(common.NoopLogger), ".") + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -592,9 +604,12 @@ func TestAddPoint_v1_gauge_separator(t *testing.T) { assertMetricsEqual(t, expect, b.GetMetrics()) } + func TestAddPoint_v1_sum_separator(t *testing.T) { + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + config.NameSeparator = "." // Use a dot to separate name and fields - c, err := influx2otel.NewLineProtocolToOtelMetricsWithSeparator(new(common.NoopLogger), ".") + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -657,9 +672,12 @@ func TestAddPoint_v1_sum_separator(t *testing.T) { assertMetricsEqual(t, expect, b.GetMetrics()) } + func TestAddPoint_v1_untyped_separator(t *testing.T) { + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + config.NameSeparator = "." // Use a dot to separate name and fields - c, err := influx2otel.NewLineProtocolToOtelMetricsWithSeparator(new(common.NoopLogger), ".") + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() diff --git a/influx2otel/metrics_telegraf_prometheus_v2_test.go b/influx2otel/metrics_telegraf_prometheus_v2_test.go index 6768d269..28a45712 100644 --- a/influx2otel/metrics_telegraf_prometheus_v2_test.go +++ b/influx2otel/metrics_telegraf_prometheus_v2_test.go @@ -14,7 +14,8 @@ import ( ) func TestAddPoint_v2_gauge(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -68,7 +69,8 @@ func TestAddPoint_v2_gauge(t *testing.T) { } func TestAddPoint_v2_untypedGauge(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -122,7 +124,8 @@ func TestAddPoint_v2_untypedGauge(t *testing.T) { } func TestAddPoint_v2_sum(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -182,7 +185,8 @@ func TestAddPoint_v2_sum(t *testing.T) { } func TestAddPoint_v2_untypedSum(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -240,7 +244,8 @@ func TestAddPoint_v2_untypedSum(t *testing.T) { } func TestAddPoint_v2_histogram(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -380,7 +385,8 @@ func TestAddPoint_v2_histogram(t *testing.T) { } func TestAddPoint_v2_histogram_missingInfinityBucket(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -504,7 +510,8 @@ func TestAddPoint_v2_histogram_missingInfinityBucket(t *testing.T) { } func TestAddPoint_v2_untypedHistogram(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -628,7 +635,8 @@ func TestAddPoint_v2_untypedHistogram(t *testing.T) { } func TestAddPoint_v2_summary(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -764,7 +772,8 @@ func TestAddPoint_v2_summary(t *testing.T) { } func TestAddPoint_v2_untypedSummary(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() diff --git a/influx2otel/metrics_unknown_schema_test.go b/influx2otel/metrics_unknown_schema_test.go index a9e0c58b..1f91d324 100644 --- a/influx2otel/metrics_unknown_schema_test.go +++ b/influx2otel/metrics_unknown_schema_test.go @@ -14,7 +14,8 @@ import ( ) func TestUnknownSchema(t *testing.T) { - c, err := influx2otel.NewLineProtocolToOtelMetrics(new(common.NoopLogger)) + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch() @@ -70,8 +71,10 @@ func TestUnknownSchema(t *testing.T) { } func TestUnknownSchema_CustomSeparator(t *testing.T) { + config := influx2otel.DefaultLineProtocolToOtelMetricsConfig() + config.NameSeparator = "." // Use a dot to separate name and fields - c, err := influx2otel.NewLineProtocolToOtelMetricsWithSeparator(new(common.NoopLogger), ".") + c, err := influx2otel.NewLineProtocolToOtelMetrics(config) require.NoError(t, err) b := c.NewBatch()