Skip to content

Setting any value to OTEL_EXPORTER_OTLP_PROTOCOL has no effect. #2586

@moriyoshi

Description

@moriyoshi

Describe your environment

$ uname -srvmpio
Linux 4.19.128-microsoft-standard #1 SMP Tue Jun 23 12:58:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ python -VV
Python 3.9.9 (main, Dec 19 2021, 23:35:26)
[GCC 9.3.0]
$ grep ^opentelemetry pyproject.toml
opentelemetry-sdk = "^1.10.0"
opentelemetry-exporter-otlp-proto-http = "^1.10.0"
opentelemetry-exporter-otlp-proto-grpc = "^1.10.0"
opentelemetry-sdk-extension-aws = "^2.0.1"
opentelemetry-distro = "^0.29b0"
opentelemetry-instrumentation-django = "^0.29b0"

Steps to reproduce
I am using opentelemetry-instrument to wire up the components.

What is the expected behavior?
According to the documentation, one may choose the transport protocol for the OTLP exporter through OTEL_EXPORTER_OTLP_PROTOCOL, but it doesn't seem to apply to OTel Python, as the variable is referenced from nowhere.

What is the actual behavior?
Instead I had to set OTEL_*_EXPORTER to either otlp_proto_grpc or otlp_proto_http to change the protocol.

Additional context
The current SDK's architecture for the implementation lookup is not great IMO. This needs to be addressed.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions