Skip to content

Latest commit

 

History

History
66 lines (52 loc) · 3.58 KB

README.adoc

File metadata and controls

66 lines (52 loc) · 3.58 KB

MicroProfile Telemetry Tracing

OpenTracing moves to OpenTelemetry

With the merge of OpenTracing and OpenCensus, OpenTelemetry holds the future. OpenTelemetry consists of Tracing, Logging, Metrics and Baggage support.

This tracing directory only focuses on the Tracing aspect (including Baggage use in this context).

Directly adopt the APIs from OpenTelemetry Tracing

This specification directly expose the Tracing APIs from OpenTelemetry and then provide CDI and Jakarta RESTful Web Services integration. The https://github.com/open-telemetry/opentelemetry-java/tree/main/api/all/src/main/java/io/opentelemetry/api/trace Tracer APIs from OpenTelemetry will be exposed. This specification does not plan to reinvent the wheels but rather exposes OpenTelemetry APIs due to the following reasons:

  • OpenTelemetry is a specification under CNCF

  • OpenTelemetry is widely adopted by different vendors and languages

  • OpenTelemetry has Java API and annotations that are readily to be used

  • OpenTelemetry is active and open for the collaboration with us

  • OpenTelemetry is platform technology and we use the effort to make Java libraries to be used directly instead of reinventing our own APIs

  • OpenTelemetry has broad vendor support. Many observability vendors are contributing to the spec, providing a guarantee that traces can be used out of the box, with minimal integrations.

  • OpenTelemetry is serious with backward incompatible changes and communicates openly

MicroProfile Telemetry pulls in a particular version of OpenTelemetry. Whenever we upgrade, we evaluate the backward compatibility status ourselves as well.

MicroProfile Telemetry Tracing

MicroProfile Telemetry pulls in OpenTelemetry Tracing and integrate with CDI and Jakarta RESTful Web Services. It provides three types of instrumentation:

  • Automatic Instrumentation

Jakarta RESTful Web Services (server and client), and MicroProfile REST Clients are automatically enlisted to participate in distributed tracing without code modification as specified in the Tracing API.

  • Manual Instrumentation

Explicit manual instrumentation can be added into a MicroProfile application using annotation or programmatic lookup.

  • Agent Instrumentation

Implementations are free to support the OpenTelemetry Agent Instrumentation.

Configuration

By default, MicroProfile Telemetry Tracing is off. In order to enable any of the Tracing aspects, the configuration otel.sdk.disabled=false must be specified in any of the configuration sources available via MicroProfile Config. This property is read once when the application is starting. Any changes afterwards will not take effect unless the application is restarted.