Telemetry spec defines the behaviors that allow MicroProfile applications to easily participate in an environment where distributed tracing is enabled via OpenTelemetry. The OpenTelemetry specification describes the cross-language requirements and expectations for all OpenTelemetry implementations. This specification is based on the Java implementation v1.39.0 of OpenTelemetry. An implementation of this MicroProfile Telemetry MAY consume a later patch release of the Java implementation as long as the required TCKs pass successfully.
Functional changes
A full list of changes delivered in the 2.0 release can be found at MicroProfile Telemetry 2.0 Milestone.
Incompatible Changes
- The Semantic Conventions for HTTP Spans differ from the conventions used with MicroProfile Telemetry 1.1 due to stabilization of HTTP semantic conventions in OpenTelemetry. Changes to attributes are described in HTTP semantic convention stability migration guide.
- For runtimes that can simultaneously run multiple applications, in MicroProfile Telemetry 1.1 the OTEL_SDK_DISABLED environment variable could be set to false to enable all applications to use separate OpenTelemetry SDK instances. Setting OTEL_SDK_DISABLED to false in MicroProfile Telemetry 2.0 results in a single OpenTelemetry SDK instance being created for shared use between the runtime and applications. To enable all applications to use separate OpenTelemetry SDK instances in MicroProfile Telemetry 2.0, do not set the OTEL_SDK_DISABLED environment variable and set otel.sdk.disabled to false in a microprofile-config.properties file packaged with each application or using any other MicroProfile Config source that is only visible to applications.
API/SPI Changes
- Consume the OpenTelemetry Java release v1.39.0. The full comparison with the v1.29.0 supported by MicroProfile Telemetry 1.1 can be found here.
- Adopt OpenTelemetry Metrics API (141, 149)
- Add an API maven artifact which depends on the relevant Open Telemetry API artifacts (210)
Other Changes
- Consume the latest OpenTelemetry API (150)
- Adopt OpenTelemetry Logging (146)
- Provide a way to specify runtime configuration for OpenTelemetry (169)
- Specify metrics provided by platform (151)
- TCK: Test required metrics present (143)
- TCK: support Meter injection (145)
- TCK: remove the dependency on Jakarta Concurrency (137)