Describe your environment
This is for the OpenTelemetry demo. This is the loadgenerator service in the demo that uses Locust (2.15.1) to generate a load for the demo application. It uses python 3.11-slim-buster as the base image for Python runtime. In code we leverage the urllib3 instrumentation package with a call to URLLib3Instrumentor().instrument() at the top of the the locustfile.py
The http.client.duration metric has a description that does not conform with the OpenTelemetry semantic convention. This creates an issue when used with OpenTelemetry instrumented services that emit the same metric from a different language SDK (ie: Javascript). The OpenTelemetry Collector's, Prometheus exporter will specifically drop a metric if received that has the same name but a different description from a metric previously received.
Steps to reproduce
Run the demo and look at the OpenTelemetry collector logs to show an error on the Prometheus export. The error will be for the http.client.duration metric, indicating the Help text (description) does not match what was received prior for the same metric name.
What is the expected behavior?
The description for the http.client.duration metric should be: Measures the duration of outbound HTTP requests.
This is defined in the OpenTelemetry semantic convention for this metric.
What is the actual behavior?
The description for the http.client.duration metric is: measures the duration outbound HTTP requests
Additional context
|
description="measures the duration outbound HTTP requests", |
Describe your environment
This is for the OpenTelemetry demo. This is the loadgenerator service in the demo that uses Locust (2.15.1) to generate a load for the demo application. It uses python 3.11-slim-buster as the base image for Python runtime. In code we leverage the
urllib3instrumentation package with a call toURLLib3Instrumentor().instrument()at the top of the the locustfile.pyThe
http.client.durationmetric has a description that does not conform with the OpenTelemetry semantic convention. This creates an issue when used with OpenTelemetry instrumented services that emit the same metric from a different language SDK (ie: Javascript). The OpenTelemetry Collector's, Prometheus exporter will specifically drop a metric if received that has the same name but a different description from a metric previously received.Steps to reproduce
Run the demo and look at the OpenTelemetry collector logs to show an error on the Prometheus export. The error will be for the
http.client.durationmetric, indicating the Help text (description) does not match what was received prior for the same metric name.What is the expected behavior?
The description for the
http.client.durationmetric should be:Measures the duration of outbound HTTP requests.This is defined in the OpenTelemetry semantic convention for this metric.
What is the actual behavior?
The description for the
http.client.durationmetric is:measures the duration outbound HTTP requestsAdditional context
opentelemetry-python-contrib/instrumentation/opentelemetry-instrumentation-urllib3/src/opentelemetry/instrumentation/urllib3/__init__.py
Line 176 in e318c94