mirror of
https://github.com/prometheus/prometheus.git
synced 2025-08-06 14:17:12 +02:00
Update otlptranslator with new API (#16626)
* Update otlptranslator with new API Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com> --------- Signed-off-by: Arthur Silva Sens <arthursens2005@gmail.com>
This commit is contained in:
parent
ab1b1db128
commit
24057883a1
2
go.mod
2
go.mod
@ -189,7 +189,7 @@ require (
|
|||||||
github.com/pkg/errors v0.9.1 // indirect
|
github.com/pkg/errors v0.9.1 // indirect
|
||||||
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
|
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||||
github.com/prometheus/otlptranslator v0.0.0-20250320144820-d800c8b0eb07
|
github.com/prometheus/otlptranslator v0.0.0-20250527173959-2573485683d5
|
||||||
github.com/prometheus/procfs v0.15.1 // indirect
|
github.com/prometheus/procfs v0.15.1 // indirect
|
||||||
github.com/spf13/pflag v1.0.5 // indirect
|
github.com/spf13/pflag v1.0.5 // indirect
|
||||||
github.com/stretchr/objx v0.5.2 // indirect
|
github.com/stretchr/objx v0.5.2 // indirect
|
||||||
|
4
go.sum
4
go.sum
@ -428,8 +428,8 @@ github.com/prometheus/common/assets v0.2.0 h1:0P5OrzoHrYBOSM1OigWL3mY8ZvV2N4zIE/
|
|||||||
github.com/prometheus/common/assets v0.2.0/go.mod h1:D17UVUE12bHbim7HzwUvtqm6gwBEaDQ0F+hIGbFbccI=
|
github.com/prometheus/common/assets v0.2.0/go.mod h1:D17UVUE12bHbim7HzwUvtqm6gwBEaDQ0F+hIGbFbccI=
|
||||||
github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg=
|
github.com/prometheus/exporter-toolkit v0.14.0 h1:NMlswfibpcZZ+H0sZBiTjrA3/aBFHkNZqE+iCj5EmRg=
|
||||||
github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA=
|
github.com/prometheus/exporter-toolkit v0.14.0/go.mod h1:Gu5LnVvt7Nr/oqTBUC23WILZepW0nffNo10XdhQcwWA=
|
||||||
github.com/prometheus/otlptranslator v0.0.0-20250320144820-d800c8b0eb07 h1:YaJ1JqyKGIUFIMUpMeT22yewZMXiTt5sLgWG1D/m4Yc=
|
github.com/prometheus/otlptranslator v0.0.0-20250527173959-2573485683d5 h1:LCbPeVKZSu9RS4CsaDCOmDCcribskJ8c6H5u1VvyxY0=
|
||||||
github.com/prometheus/otlptranslator v0.0.0-20250320144820-d800c8b0eb07/go.mod h1:ZO/4EUanXL7wbvfMHcS+rq9sCBxICdaU8RBFkVg5wv0=
|
github.com/prometheus/otlptranslator v0.0.0-20250527173959-2573485683d5/go.mod h1:v1PzmPjSnNkmZSDvKJ9OmsWcmWMEF5+JdllEcXrRfzM=
|
||||||
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
|
||||||
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||||
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
|
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
|
||||||
|
@ -761,6 +761,9 @@ func TestPrometheusConverter_addExponentialHistogramDataPoints(t *testing.T) {
|
|||||||
metric := tt.metric()
|
metric := tt.metric()
|
||||||
|
|
||||||
converter := NewPrometheusConverter()
|
converter := NewPrometheusConverter()
|
||||||
|
namer := otlptranslator.MetricNamer{
|
||||||
|
WithMetricSuffixes: true,
|
||||||
|
}
|
||||||
annots, err := converter.addExponentialHistogramDataPoints(
|
annots, err := converter.addExponentialHistogramDataPoints(
|
||||||
context.Background(),
|
context.Background(),
|
||||||
metric.ExponentialHistogram().DataPoints(),
|
metric.ExponentialHistogram().DataPoints(),
|
||||||
@ -768,7 +771,7 @@ func TestPrometheusConverter_addExponentialHistogramDataPoints(t *testing.T) {
|
|||||||
Settings{
|
Settings{
|
||||||
ExportCreatedMetric: true,
|
ExportCreatedMetric: true,
|
||||||
},
|
},
|
||||||
otlptranslator.BuildCompliantMetricName(metric, "", true),
|
namer.Build(translatorMetricFromOtelMetric(metric)),
|
||||||
pmetric.AggregationTemporalityCumulative,
|
pmetric.AggregationTemporalityCumulative,
|
||||||
)
|
)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
@ -1129,6 +1132,9 @@ func TestPrometheusConverter_addCustomBucketsHistogramDataPoints(t *testing.T) {
|
|||||||
metric := tt.metric()
|
metric := tt.metric()
|
||||||
|
|
||||||
converter := NewPrometheusConverter()
|
converter := NewPrometheusConverter()
|
||||||
|
namer := otlptranslator.MetricNamer{
|
||||||
|
WithMetricSuffixes: true,
|
||||||
|
}
|
||||||
annots, err := converter.addCustomBucketsHistogramDataPoints(
|
annots, err := converter.addCustomBucketsHistogramDataPoints(
|
||||||
context.Background(),
|
context.Background(),
|
||||||
metric.Histogram().DataPoints(),
|
metric.Histogram().DataPoints(),
|
||||||
@ -1137,7 +1143,7 @@ func TestPrometheusConverter_addCustomBucketsHistogramDataPoints(t *testing.T) {
|
|||||||
ExportCreatedMetric: true,
|
ExportCreatedMetric: true,
|
||||||
ConvertHistogramsToNHCB: true,
|
ConvertHistogramsToNHCB: true,
|
||||||
},
|
},
|
||||||
otlptranslator.BuildCompliantMetricName(metric, "", true),
|
namer.Build(translatorMetricFromOtelMetric(metric)),
|
||||||
pmetric.AggregationTemporalityCumulative,
|
pmetric.AggregationTemporalityCumulative,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -65,8 +65,38 @@ func NewPrometheusConverter() *PrometheusConverter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func translatorMetricFromOtelMetric(metric pmetric.Metric) otlptranslator.Metric {
|
||||||
|
m := otlptranslator.Metric{
|
||||||
|
Name: metric.Name(),
|
||||||
|
Unit: metric.Unit(),
|
||||||
|
Type: otlptranslator.MetricTypeUnknown,
|
||||||
|
}
|
||||||
|
switch metric.Type() {
|
||||||
|
case pmetric.MetricTypeGauge:
|
||||||
|
m.Type = otlptranslator.MetricTypeGauge
|
||||||
|
case pmetric.MetricTypeSum:
|
||||||
|
if metric.Sum().AggregationTemporality() == pmetric.AggregationTemporalityCumulative {
|
||||||
|
m.Type = otlptranslator.MetricTypeMonotonicCounter
|
||||||
|
} else {
|
||||||
|
m.Type = otlptranslator.MetricTypeNonMonotonicCounter
|
||||||
|
}
|
||||||
|
case pmetric.MetricTypeSummary:
|
||||||
|
m.Type = otlptranslator.MetricTypeSummary
|
||||||
|
case pmetric.MetricTypeHistogram:
|
||||||
|
m.Type = otlptranslator.MetricTypeHistogram
|
||||||
|
case pmetric.MetricTypeExponentialHistogram:
|
||||||
|
m.Type = otlptranslator.MetricTypeExponentialHistogram
|
||||||
|
}
|
||||||
|
return m
|
||||||
|
}
|
||||||
|
|
||||||
// FromMetrics converts pmetric.Metrics to Prometheus remote write format.
|
// FromMetrics converts pmetric.Metrics to Prometheus remote write format.
|
||||||
func (c *PrometheusConverter) FromMetrics(ctx context.Context, md pmetric.Metrics, settings Settings) (annots annotations.Annotations, errs error) {
|
func (c *PrometheusConverter) FromMetrics(ctx context.Context, md pmetric.Metrics, settings Settings) (annots annotations.Annotations, errs error) {
|
||||||
|
namer := otlptranslator.MetricNamer{
|
||||||
|
Namespace: settings.Namespace,
|
||||||
|
WithMetricSuffixes: settings.AddMetricSuffixes,
|
||||||
|
UTF8Allowed: settings.AllowUTF8,
|
||||||
|
}
|
||||||
c.everyN = everyNTimes{n: 128}
|
c.everyN = everyNTimes{n: 128}
|
||||||
resourceMetricsSlice := md.ResourceMetrics()
|
resourceMetricsSlice := md.ResourceMetrics()
|
||||||
|
|
||||||
@ -114,12 +144,7 @@ func (c *PrometheusConverter) FromMetrics(ctx context.Context, md pmetric.Metric
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
var promName string
|
promName := namer.Build(translatorMetricFromOtelMetric(metric))
|
||||||
if settings.AllowUTF8 {
|
|
||||||
promName = otlptranslator.BuildMetricName(metric, settings.Namespace, settings.AddMetricSuffixes)
|
|
||||||
} else {
|
|
||||||
promName = otlptranslator.BuildCompliantMetricName(metric, settings.Namespace, settings.AddMetricSuffixes)
|
|
||||||
}
|
|
||||||
c.metadata = append(c.metadata, prompb.MetricMetadata{
|
c.metadata = append(c.metadata, prompb.MetricMetadata{
|
||||||
Type: otelMetricTypeToPromMetricType(metric),
|
Type: otelMetricTypeToPromMetricType(metric),
|
||||||
MetricFamilyName: promName,
|
MetricFamilyName: promName,
|
||||||
|
@ -48,7 +48,8 @@ func TestFromMetrics(t *testing.T) {
|
|||||||
metricSlice := scopeMetricsSlice.At(j).Metrics()
|
metricSlice := scopeMetricsSlice.At(j).Metrics()
|
||||||
for k := 0; k < metricSlice.Len(); k++ {
|
for k := 0; k < metricSlice.Len(); k++ {
|
||||||
metric := metricSlice.At(k)
|
metric := metricSlice.At(k)
|
||||||
promName := otlptranslator.BuildCompliantMetricName(metric, "", false)
|
namer := otlptranslator.MetricNamer{}
|
||||||
|
promName := namer.Build(translatorMetricFromOtelMetric(metric))
|
||||||
expMetadata = append(expMetadata, prompb.MetricMetadata{
|
expMetadata = append(expMetadata, prompb.MetricMetadata{
|
||||||
Type: otelMetricTypeToPromMetricType(metric),
|
Type: otelMetricTypeToPromMetricType(metric),
|
||||||
MetricFamilyName: promName,
|
MetricFamilyName: promName,
|
||||||
|
Loading…
Reference in New Issue
Block a user