| navigation_title | description | applies_to | products | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Features |
Explore the features of the Elastic Distribution of OpenTelemetry (EDOT) Java Agent, including inherited OpenTelemetry features and exclusive Elastic enhancements like inferred spans and universal profiling integration. |
|
|
The EDOT Java agent is a distribution of OpenTelemetry Java Instrumentation agent. It inherits all the features of the OpenTelemetry Java Instrumentation to capture logs, metrics, and traces.
The EDOT Java agent also provides:
- Exclusive features that are not available in the OpenTelemetry Java Instrumentation.
- Features of OpenTelemetry Java Instrumentation with different default configuration.
In addition to the features listed, refer to Supported technologies.
The EDOT Java agent includes the following resource attributes providers from opentelemetry-java-contrib:
- AWS: aws-resources. Turned on by default.
- GCP: gcp-resources. Turned on by default.
- Application server service name detection: resource-providers.
The EDOT Java agent includes the Inferred Spans Extension from opentelemetry-java-contrib. This extension provides the ability to enhance the traces by creating spans from async-profiler data without the need of explicit instrumentation of corresponding spans.
This feature is turned off by default and can be activated by setting OTEL_INFERRED_SPANS_ENABLED to true. Refer to Inferred-spans documentation for configuration options.
The EDOT Java agent includes the Span Stacktrace Extension from opentelemetry-java-contrib.
This feature is activated by default and allows to capture a stacktrace for spans that have a duration above a threshold. The OTEL_JAVA_EXPERIMENTAL_SPAN_STACKTRACE_MIN_DURATION configuration option, which defaults to 5ms, allows to configure the minimal duration threshold. A negative value turns off the feature.
Refer to span-stacktrace for configuration options.
Experimental runtime metrics are turned on by default.
Set OTEL_INSTRUMENTATION_RUNTIME_TELEMETRY_EMIT_EXPERIMENTAL_TELEMETRY to false to turn them off.
{{es}} and {{kib}} work best with metrics provided in delta-temporality. Therefore, the EDOT Java changes the default value of OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE to DELTA. You can override this default if needed, though some provided {{kib}} dashboards will not work correctly if you do it.
Universal Profiling integration provides the ability to correlate traces with profiling data from the Elastic universal profiler. This feature is turned on by default on supported systems, and turned off otherwise.
Refer to universal-profiling-integration for details and configuration options.
The EDOT Java agent provides the ability to control the agent log verbosity by setting the log level with the ELASTIC_OTEL_JAVAAGENT_LOG_LEVEL configuration option (INFO by default).
The following log levels are supported: TRACE, DEBUG, INFO, WARN, ERROR, FATAL and OFF.
For troubleshooting, the ELASTIC_OTEL_JAVAAGENT_LOG_LEVEL=DEBUG is a recommended alternative to OTEL_JAVAAGENT_DEBUG=true as it provides span information in JSON format.
This feature relies on the OTEL_JAVAAGENT_LOGGING configuration option to be set to elastic (default), the simple value from upstream is not supported.
Setting OTEL_JAVAAGENT_LOGGING=none or ELASTIC_OTEL_JAVAAGENT_LOG_LEVEL=OFF disables agent logging.