APIcast icon indicating copy to clipboard operation
APIcast copied to clipboard

OpenTelemetry instrumentation does not use environment variable OTEL_RESOURCE_ATTRIBUTES

Open janbakker2525 opened this issue 2 years ago • 1 comments

OTEL instrumentation does not use environment variable OTEL_RESOURCE_ATTRIBUTES

Version

nginx version: openresty/1.19.3.1 quay.io/3scale/apicast:3scale-2.14-stable --> 2023-11-10T09:56:41.963416283Z

Steps To Reproduce

Set up OTEL as follows. Envars:

OPENTELEMETRY=1
OPENTELEMETRY_CONFIG=/tmp/otel.toml
OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer xxxx
OTEL_EXPORTER_OTLP_ENDPOINT=http://splunk-otel-collector-local.temo-splunk-accept.svc.cluster.local:4317/
OTEL_RESOURCE_ATTRIBUTES=deployment.environment=pcss-accept
OTEL_SERVICE_NAME=api-gateway

FIle /tmp/otel.toml

# OTEL configuration
exporter = "otlp"
processor = "batch"

[exporters.otlp]
# Alternatively, the OTEL_EXPORTER_OTLP_ENDPOINT environment variable can also be used.
# However that currently fails with image quay.io/3scale/apicast:3scale-2.14-stable
host = "splunk-otel-collector-local.temo-splunk-accept.svc.cluster.local"
port = 4317

[processors.batch]
max_queue_size = 2048
schedule_delay_millis = 5000
max_export_batch_size = 512
Current Result

OTEL data is sent to the endpoint, however

  • the environment is not specified so the data ends up in the default environment where we would expect it in pcss-accept
  • the TraceId of the parent request is lost (already in https://github.com/open-telemetry/opentelemetry-cpp-contrib/issues/143)
Expected Result

OTEL data is sent to the endpoint with the environment specified and with the TraceId of the parent request.

Additional Information

N/A

janbakker2525 avatar Nov 13 '23 16:11 janbakker2525

Checking the opentelemetry docs, look like we will need to explicitly set the the env directive to be able to use other environment variables

env OTEL_EXPORTER_OTLP_HEADERS;
env OTEL_EXPORTER_OTLP_ENDPOINT;
....

http {
  .
  .
  .
}

tkan145 avatar Nov 13 '23 23:11 tkan145