mirror of
https://github.com/prometheus/prometheus.git
synced 2025-08-05 21:57:09 +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/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // 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/spf13/pflag v1.0.5 // 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/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/otlptranslator v0.0.0-20250320144820-d800c8b0eb07 h1:YaJ1JqyKGIUFIMUpMeT22yewZMXiTt5sLgWG1D/m4Yc=
|
||||
github.com/prometheus/otlptranslator v0.0.0-20250320144820-d800c8b0eb07/go.mod h1:ZO/4EUanXL7wbvfMHcS+rq9sCBxICdaU8RBFkVg5wv0=
|
||||
github.com/prometheus/otlptranslator v0.0.0-20250527173959-2573485683d5 h1:LCbPeVKZSu9RS4CsaDCOmDCcribskJ8c6H5u1VvyxY0=
|
||||
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.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
|
||||
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()
|
||||
|
||||
converter := NewPrometheusConverter()
|
||||
namer := otlptranslator.MetricNamer{
|
||||
WithMetricSuffixes: true,
|
||||
}
|
||||
annots, err := converter.addExponentialHistogramDataPoints(
|
||||
context.Background(),
|
||||
metric.ExponentialHistogram().DataPoints(),
|
||||
@ -768,7 +771,7 @@ func TestPrometheusConverter_addExponentialHistogramDataPoints(t *testing.T) {
|
||||
Settings{
|
||||
ExportCreatedMetric: true,
|
||||
},
|
||||
otlptranslator.BuildCompliantMetricName(metric, "", true),
|
||||
namer.Build(translatorMetricFromOtelMetric(metric)),
|
||||
pmetric.AggregationTemporalityCumulative,
|
||||
)
|
||||
require.NoError(t, err)
|
||||
@ -1129,6 +1132,9 @@ func TestPrometheusConverter_addCustomBucketsHistogramDataPoints(t *testing.T) {
|
||||
metric := tt.metric()
|
||||
|
||||
converter := NewPrometheusConverter()
|
||||
namer := otlptranslator.MetricNamer{
|
||||
WithMetricSuffixes: true,
|
||||
}
|
||||
annots, err := converter.addCustomBucketsHistogramDataPoints(
|
||||
context.Background(),
|
||||
metric.Histogram().DataPoints(),
|
||||
@ -1137,7 +1143,7 @@ func TestPrometheusConverter_addCustomBucketsHistogramDataPoints(t *testing.T) {
|
||||
ExportCreatedMetric: true,
|
||||
ConvertHistogramsToNHCB: true,
|
||||
},
|
||||
otlptranslator.BuildCompliantMetricName(metric, "", true),
|
||||
namer.Build(translatorMetricFromOtelMetric(metric)),
|
||||
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.
|
||||
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}
|
||||
resourceMetricsSlice := md.ResourceMetrics()
|
||||
|
||||
@ -114,12 +144,7 @@ func (c *PrometheusConverter) FromMetrics(ctx context.Context, md pmetric.Metric
|
||||
continue
|
||||
}
|
||||
|
||||
var promName string
|
||||
if settings.AllowUTF8 {
|
||||
promName = otlptranslator.BuildMetricName(metric, settings.Namespace, settings.AddMetricSuffixes)
|
||||
} else {
|
||||
promName = otlptranslator.BuildCompliantMetricName(metric, settings.Namespace, settings.AddMetricSuffixes)
|
||||
}
|
||||
promName := namer.Build(translatorMetricFromOtelMetric(metric))
|
||||
c.metadata = append(c.metadata, prompb.MetricMetadata{
|
||||
Type: otelMetricTypeToPromMetricType(metric),
|
||||
MetricFamilyName: promName,
|
||||
|
@ -48,7 +48,8 @@ func TestFromMetrics(t *testing.T) {
|
||||
metricSlice := scopeMetricsSlice.At(j).Metrics()
|
||||
for k := 0; k < metricSlice.Len(); k++ {
|
||||
metric := metricSlice.At(k)
|
||||
promName := otlptranslator.BuildCompliantMetricName(metric, "", false)
|
||||
namer := otlptranslator.MetricNamer{}
|
||||
promName := namer.Build(translatorMetricFromOtelMetric(metric))
|
||||
expMetadata = append(expMetadata, prompb.MetricMetadata{
|
||||
Type: otelMetricTypeToPromMetricType(metric),
|
||||
MetricFamilyName: promName,
|
||||
|
Loading…
Reference in New Issue
Block a user