Open zakimaksyutov opened 9 months ago
There is #32 to support custom resource attributes via config, but supporting environment variables like OTEL_RESOURCE_ATTRIBUTES and OTEL_SERVICE_NAME makes sense as well.
It would also be nice to have the exporter (OTEL_EXPORTER_OTLP_ENDPOINT
) and its headers (OTEL_EXPORTER_OTLP_HEADERS
) to be configurable via environment variables: https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/.
In my Kubernetes setup every pod gets OTEL_RESOURCE_ATTRIBUTES environment variable set which contains everything needed to troubleshoot/monitor our microservices. Every app instrumented with Open Telemetry automatically picks up these resource attributes. But Nginx does not. As a result, through it emits spans and participated in distributed tracing, it doesn't contain everything.
Describe the solution you'd like
nginx-otel module to honor OTEL_RESOURCE_ATTRIBUTES environment variable and emits them as Resource object.
According to Open Telemetry spec, all producers must honor this environment variable.
Describe alternatives you've considered
The closest - with
otel_span_attr
it is potentially possible to inject needed information as span attribute. But this still will not be resource attribute and as a result not aligned with the rest of applications. This also will require nginx.conf changes every time we decide to add something to OTEL_RESOURCE_ATTRIBUTES.