Configuration
Configure the Elastic Distribution of OpenTelemetry Python (EDOT Python) to send data to Elastic.
Configuration method
Configuration of the OpenTelemetry SDK should be performed through the mechanisms documented on the OpenTelemetry website. EDOT Python is typically configured with OTEL_*
environment variables defined by the OpenTelemetry spec. For example:
export OTEL_RESOURCE_ATTRIBUTES=service.name=<app-name>
export OTEL_EXPORTER_OTLP_ENDPOINT=https://my-deployment.apm.us-west1.gcp.cloud.es.io
export OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer P....l"
opentelemetry-instrument <command to start your service>
Configuration options
Because the Elastic Distribution of OpenTelemetry Python is an extension of OpenTelemetry Python, it supports both:
- General OpenTelemetry configuration options
- Specific configuration options that are only available in EDOT Python
OpenTelemetry configuration options
EDOT Python supports all configuration options listed in the OpenTelemetry General SDK Configuration documentation and OpenTelemetry Python.
Logs
Instrument Python logging
module to format and forward logs in OTLP format is disabled by default and gated under a configuration environment variable:
export OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true
[!NOTE] Enabling this will make any call to logging.basicConfig from your application a no-op.
Differences from OpenTelemetry Python
EDOT Python uses different defaults than OpenTelemetry Python for the following configuration options:
Option | EDOT Python default | OpenTelemetry Python default |
---|---|---|
OTEL_EXPERIMENTAL_RESOURCE_DETECTORS | process_runtime,os,otel,telemetry_distro,service_instance,_gcp,aws_ec2,aws_ecs,aws_elastic_beanstalk,azure_app_service,azure_vm | otel |
OTEL_METRICS_EXEMPLAR_FILTER | always_off | trace_based |
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE | DELTA | CUMULATIVE |
[!NOTE]
OTEL_EXPERIMENTAL_RESOURCE_DETECTORS
cloud resource detectors are dynamically set. When running in a Kubernetes Pod it will be set toprocess_runtime,os,otel,telemetry_distro,service_instance,_gcp,aws_eks
.
Configuration options that are only available in EDOT Python
ELASTIC_OTEL_
options are specific to Elastic and will always live in EDOT Python (they will not be added upstream):
Option(s) | Default | Description |
---|---|---|
ELASTIC_OTEL_SYSTEM_METRICS_ENABLED | false | When sets to true , sends system namespace metrics. |