opentelemetry-collector-contrib: failed to translate metric from otel-python histogram using prometheusexporter

Seeing this error message:

otel-collector_1  | 2022-08-20T22:03:26.430Z	error	prometheusexporter@v0.58.0/accumulator.go:105	failed to translate metric	{"kind": "exporter", "data_type": "metrics", "name": "prometheus", "data_type": "\u0000", "metric_name": "graphql.api.request.time"}
otel-collector_1  | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*lastValueAccumulator).addMetric
otel-collector_1  | 	github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter@v0.58.0/accumulator.go:105
otel-collector_1  | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*lastValueAccumulator).Accumulate
otel-collector_1  | 	github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter@v0.58.0/accumulator.go:82
otel-collector_1  | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*collector).processMetrics
otel-collector_1  | 	github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter@v0.58.0/collector.go:66
otel-collector_1  | github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*prometheusExporter).ConsumeMetrics
otel-collector_1  | 	github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter@v0.58.0/prometheus.go:88

And it looks like this is due to a histogram metric being reported by the PeriodicExportingMetricReader exporting my histogram metric which hasn’t had any data reported in the past period. Below is the output from a file exporter for some more debugging information. I believe this will be fixed by #9006 but let me know if that is incorrect.

Metrics dump
[
    {
        "resourceMetrics":
        [
            {
                "resource":
                {
                    "attributes":
                    [
                        {
                            "key": "telemetry.sdk.language",
                            "value":
                            {
                                "stringValue": "python"
                            }
                        },
                        {
                            "key": "telemetry.sdk.name",
                            "value":
                            {
                                "stringValue": "opentelemetry"
                            }
                        },
                        {
                            "key": "telemetry.sdk.version",
                            "value":
                            {
                                "stringValue": "1.12.0"
                            }
                        },
                        {
                            "key": "service.name",
                            "value":
                            {
                                "stringValue": "test"
                            }
                        }
                    ]
                },
                "scopeMetrics":
                [
                    {
                        "scope":
                        {
                            "name": "graphql-api",
                            "version": "1.0.0"
                        },
                        "metrics":
                        [
                            {
                                "name": "graphql.api.request.time",
                                "description": "Request time metrics for GraphQL API.",
                                "unit": "ms",
                                "histogram":
                                {
                                    "dataPoints":
                                    [
                                        {
                                            "attributes":
                                            [
                                                {
                                                    "key": "status",
                                                    "value":
                                                    {
                                                        "stringValue": "Success"
                                                    }
                                                }
                                            ],
                                            "startTimeUnixNano": "1660706168040247000",
                                            "timeUnixNano": "1660706170294892000",
                                            "count": "2",
                                            "sum": 0.0000030994415283203125,
                                            "bucketCounts":
                                            [
                                                "0",
                                                "2",
                                                "0",
                                                "0",
                                                "0",
                                                "0",
                                                "0",
                                                "0",
                                                "0",
                                                "0",
                                                "0"
                                            ],
                                            "explicitBounds":
                                            [
                                                0,
                                                5,
                                                10,
                                                25,
                                                50,
                                                75,
                                                100,
                                                250,
                                                500,
                                                1000
                                            ],
                                            "min": 0.0000011920928955078125,
                                            "max": 0.0000019073486328125
                                        }
                                    ],
                                    "aggregationTemporality": "AGGREGATION_TEMPORALITY_CUMULATIVE"
                                }
                            },
                            {
                                "name": "graphql.api.requests",
                                "description": "Usage metrics for GraphQL API.",
                                "unit": "1",
                                "sum":
                                {
                                    "dataPoints":
                                    [
                                        {
                                            "attributes":
                                            [
                                                {
                                                    "key": "status",
                                                    "value":
                                                    {
                                                        "stringValue": "Success"
                                                    }
                                                }
                                            ],
                                            "startTimeUnixNano": "1660706168040307000",
                                            "timeUnixNano": "1660706170294892000",
                                            "asInt": "2"
                                        }
                                    ],
                                    "aggregationTemporality": "AGGREGATION_TEMPORALITY_CUMULATIVE",
                                    "isMonotonic": true
                                }
                            }
                        ]
                    }
                ]
            }
        ]
    },
    {
        "resourceMetrics":
        [
            {
                "resource":
                {
                    "attributes":
                    [
                        {
                            "key": "telemetry.sdk.language",
                            "value":
                            {
                                "stringValue": "python"
                            }
                        },
                        {
                            "key": "telemetry.sdk.name",
                            "value":
                            {
                                "stringValue": "opentelemetry"
                            }
                        },
                        {
                            "key": "telemetry.sdk.version",
                            "value":
                            {
                                "stringValue": "1.12.0"
                            }
                        },
                        {
                            "key": "service.name",
                            "value":
                            {
                                "stringValue": "test"
                            }
                        }
                    ]
                },
                "scopeMetrics":
                [
                    {
                        "scope":
                        {
                            "name": "graphql-api",
                            "version": "1.0.0"
                        },
                        "metrics":
                        [
                            {
                                "name": "graphql.api.request.time",
                                "description": "Request time metrics for GraphQL API.",
                                "unit": "ms"
                            },
                            {
                                "name": "graphql.api.requests",
                                "description": "Usage metrics for GraphQL API.",
                                "unit": "1",
                                "sum":
                                {
                                    "dataPoints":
                                    [
                                        {
                                            "attributes":
                                            [
                                                {
                                                    "key": "status",
                                                    "value":
                                                    {
                                                        "stringValue": "Success"
                                                    }
                                                }
                                            ],
                                            "startTimeUnixNano": "1660706168040307000",
                                            "timeUnixNano": "1660706185345493000",
                                            "asInt": "2"
                                        }
                                    ],
                                    "aggregationTemporality": "AGGREGATION_TEMPORALITY_CUMULATIVE",
                                    "isMonotonic": true
                                }
                            }
                        ]
                    }
                ]
            }
        ]
    }
]

About this issue

  • Original URL
  • State: open
  • Created 2 years ago
  • Reactions: 1
  • Comments: 17 (9 by maintainers)

Most upvoted comments

Any update on this?

Still getting this error when using a GRPC Revicer and a Prometheus Exporter

standalone  | 2023-05-23T14:35:36.385Z  error   prometheusexporter@v0.77.0/accumulator.go:105   failed to translate metric      {"kind": "exporter", "data_type": "metrics", "name": "prometheus", "data_type": "\u0000", "metric_name": "http.client.duration"}

I wanted to mention, in the case it may help in any way, that i’m also seeing this failed to translate metric error when using a different version of the prometheusexporter against metric data coming through an otlp-grpc receiver that’s being provided data from an app through go.opentelemetry.io/otel/exporters/otlp/otlpgrpc.

If this should be reported through a new issue, or there’s any other details y’all may be interested in let me know.

Here’s an example of the error:

2022-10-07T19:47:36.788Z        error   prometheusexporter@v0.56.0/accumulator.go:105   failed to translate metric      {"kind": "exporter", "data_type": "metrics", "name": "prometheus", "data_type": "\u0000", "metric_name": "tfc-agent.update-status.milliseconds"}
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*lastValueAccumulator).addMetric
        github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter@v0.56.0/accumulator.go:105
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*lastValueAccumulator).Accumulate
        github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter@v0.56.0/accumulator.go:82
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*collector).processMetrics
        github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter@v0.56.0/collector.go:58
github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter.(*prometheusExporter).ConsumeMetrics
        github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusexporter@v0.56.0/prometheus.go:88
go.opentelemetry.io/collector/exporter/exporterhelper.(*metricsRequest).export
        go.opentelemetry.io/collector@v0.56.0/exporter/exporterhelper/metrics.go:65
go.opentelemetry.io/collector/exporter/exporterhelper.(*timeoutSender).send
        go.opentelemetry.io/collector@v0.56.0/exporter/exporterhelper/common.go:225
go.opentelemetry.io/collector/exporter/exporterhelper.(*retrySender).send
        go.opentelemetry.io/collector@v0.56.0/exporter/exporterhelper/queued_retry.go:147
go.opentelemetry.io/collector/exporter/exporterhelper.(*metricsSenderWithObservability).send
        go.opentelemetry.io/collector@v0.56.0/exporter/exporterhelper/metrics.go:132
go.opentelemetry.io/collector/exporter/exporterhelper.(*queuedRetrySender).send
        go.opentelemetry.io/collector@v0.56.0/exporter/exporterhelper/queued_retry.go:83
go.opentelemetry.io/collector/exporter/exporterhelper.NewMetricsExporter.func2
        go.opentelemetry.io/collector@v0.56.0/exporter/exporterhelper/metrics.go:112
go.opentelemetry.io/collector/consumer.ConsumeMetricsFunc.ConsumeMetrics
        go.opentelemetry.io/collector@v0.56.0/consumer/metrics.go:36
go.opentelemetry.io/collector/processor/processorhelper.NewMetricsProcessor.func1
        go.opentelemetry.io/collector@v0.56.0/processor/processorhelper/metrics.go:69
go.opentelemetry.io/collector/consumer.ConsumeMetricsFunc.ConsumeMetrics
        go.opentelemetry.io/collector@v0.56.0/consumer/metrics.go:36
go.opentelemetry.io/collector/processor/batchprocessor.(*batchMetrics).export
        go.opentelemetry.io/collector@v0.56.0/processor/batchprocessor/batch_processor.go:297
go.opentelemetry.io/collector/processor/batchprocessor.(*batchProcessor).sendItems
        go.opentelemetry.io/collector@v0.56.0/processor/batchprocessor/batch_processor.go:176
go.opentelemetry.io/collector/processor/batchprocessor.(*batchProcessor).startProcessingCycle
        go.opentelemetry.io/collector@v0.56.0/processor/batchprocessor/batch_processor.go:133