Features of the EDOT Java Agent
The EDOT Java agent is adistribution ofOpenTelemetry 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 theOpenTelemetry Java Instrumentation.
- Features ofOpenTelemetry Java Instrumentation withdifferent default configuration.
In addition to the features listed, refer toSupported technologies.
The EDOT Java agent includes the following resource attributes providers fromopentelemetry-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 theInferred Spans Extension fromopentelemetry-java-contrib. This extension provides the ability to enhance the traces by creating spans fromasync-profiler data without the need of explicit instrumentation of corresponding spans.
This feature is turned off by default and can be activated by settingOTEL_INFERRED_SPANS_ENABLED totrue. Refer toInferred-spans documentation for configuration options.
The EDOT Java agent includes theSpan Stacktrace Extension fromopentelemetry-java-contrib.
This feature is activated by default and allows to capture a stacktrace for spans that have a duration above a threshold. TheOTEL_JAVA_EXPERIMENTAL_SPAN_STACKTRACE_MIN_DURATION configuration option, which defaults to5ms, allows to configure the minimal duration threshold. A negative value turns off the feature.
Refer tospan-stacktrace for configuration options.
Experimental runtime metrics are turned on by default.
SetOTEL_INSTRUMENTATION_RUNTIME_TELEMETRY_EMIT_EXPERIMENTAL_TELEMETRY tofalse to turn them off.
Elasticsearch and Kibana work best with metrics provided in delta-temporality. Therefore, the EDOT Java changes the default value ofOTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE toDELTA. You can override this default if needed, though some provided Kibana dashboards will not work correctly if you do it.
You can manage EDOT Java configurations through theAPM Agent Central Configuration feature in the Applications UI.
Refer toCentral configuration for more information.
Universal Profiling integration provides the ability to correlate traces with profiling data from the Elastic universal profiler. This feature is off by default.
Refer touniversal-profiling-integration for details and configuration options.
Baggage provides a key-value store that allows to storeand propagate contextual information to traces, metrics, and logs across services.
This feature requires minimal code changes for creating and accessing the baggage using theOpenTelemetry Java API. Baggage entries can be automatically added to spans and logs through theseconfiguration settings:
OTEL_JAVA_EXPERIMENTAL_SPAN_ATTRIBUTES_COPY_FROM_BAGGAGE_INCLUDEOTEL_JAVA_EXPERIMENTAL_LOG_ATTRIBUTES_COPY_FROM_BAGGAGE_INCLUDE
Refer tobaggage-processor and thebaggage example for more details.