Eclipse MicroProfile OpenTracing

Payara Server 6.0.0 provides MicroProfile OpenTracing 3.0

Background

The Open Tracing API was created to allow easier tracing of the flow of a request in microservices environment across service boundaries.

The complete specification can be found on the Eclipse MicroProfile website.

Breaking changes introduced in MicroProfile OpenTracing 3.0 are listed in the official specification under Incompatible Changes

Support for MicroProfile Open Tracing is provided via compatibility layer for OpenTelemetry.

To achieve full compatibility in naming the spans with the spec a span convention needs to be configured as described in Span Naming Convention.

Text and Binary Carriers Support

The Payara Platform implementation of the io.opentracing.Tracer interface supports the following carriers:

  • TextMap carriers with HTTP_HEADERS and TEXT_MAP formats

JAX-WS Support

The Payara Platform’s MicroProfile implementation supports tracing of requests that are handled by SOAP Web Services implemented via the JAX-WS API. Since JAX-WS is only supported on Payara Server Full Profile, this support is not covered on Payara Micro.

OpenTracing Configuration

Additionally you can configure the notifiers for Request Tracing Service by using the asadmin commands and also using the Administration console.

Span Naming Convention

By default span names for JAX-RS endpoints follow recommendations set forth by OpenTelementry Semantic Conventions. In order to have span names follow naming conventions defined by MicroProfile OpenTelemetry, following MicropProfile Config property must be set for application or globally for the server or domain:

payara.telemetry.span-convention=opentracing-class-method

All valid values for the property are documented in OpenTelemetry Span Convention Settings

Using Alternate OpenTracing Implementations

It is not possible to use other OpenTracing implementations in Payara Platform 6. It is however possible to deploy and configure other OpenTelemetry exporters (i. e. zipkin) into the server or ship them with application. Please consult OpenTelemetry Configuration.