Skip to content

Apache Geronimo Microprofile OpenTracing implementation

Notifications You must be signed in to change notification settings

apache/geronimo-opentracing

Repository files navigation

Geronimo OpenTracing

Geronimo OpenTracing provides an OpenTracing implementation and a Microprofile OpenTracing implementation at once.

Note
sampling is not yet supported because it leads to push inconsistent spans to the backend, however you can always specialize (CDI) your FinishSpan observer to implement it if desired.

Configuration

Note
if you are using Microprofile Config it is used, otherwise it uses system properties.

Key

Description

Default

geronimo.opentracing.filter.active

Should OpenTracing be activated

true

geronimo.opentracing.filter.forcedTracing.urls

Urls for which the tracking should be activated automatically. The urls are actually the requets uri minus the context path.

-

geronimo.opentracing.filter.skippedTracing.urls

Urls for which the tracking should be skipped.

-

geronimo.opentracing.filter.skippedTracing.matcherType

Type of matcher for the url, default is prefix which means a startsWith is used on the url but you can also use regex which compiles the url as a Pattern

prefix

geronimo.opentracing.filter.forcedTracing.matcherType

Type of matcher for the url, default is prefix which means a startsWith is used on the url but you can also use regex which compiles the url as a Pattern

prefix

geronimo.opentracing.filter.forcedTracing.skipDefaultTags

Should HTTP_METHOD, HTTP_URL not be added to tags

false

geronimo.opentracing.server.filter.request.skip.<endpoint class>_<endpoint method>

Should server instrumentation be ignored

false

geronimo.opentracing.server.filter.request.skip

Should server instrumentation be ignored (if previous is not set)

false

geronimo.opentracing.server.filter.request.skipDefaultTags

Should HTTP_METHOD, HTTP_URL not be added to tags

false

geronimo.opentracing.server.filter.request.operationName.usePath

Should the operationName use the @Path annotations instead of class names.

false

geronimo.opentracing.client.filter.request.skip

Should client instrumentation be ignored

false

geronimo.opentracing.client.filter.request.skipDefaultTags

Should HTTP_METHOD, HTTP_URL not be added to tags

false

geronimo.opentracing.client.filter.request.skipPeerTags

Should PEER_HOSTNAME, PEER_PORT not be added to tags

false

geronimo.opentracing.propagation.headers.parentSpanId

Name of the header used to host the parent spanId value

X-B3-ParentSpanId

geronimo.opentracing.propagation.headers.spanId

Name of the header used to host the spanId value

X-B3-SpanId

geronimo.opentracing.propagation.headers.traceId

Name of the header used to host the traceId value

X-B3-TraceId

geronimo.opentracing.propagation.headers.baggagePrefix

Prefix of headers used to host the baggage values

baggage-

geronimo.opentracing.id.generator

counter (to generate longs), uuid (to generate random uuids) or hex (to use the hexa representation of the uuid generator). Specifies which kind of trace and span id are in use.

counter

geronimo.opentracing.id.generator.hex.prefix

For hex generator, a prefix to prepend to all ids.

-

geronimo.opentracing.span.converter.zipkin.active

Should spans converted to a zipkin representation. True until there is a standard opentracing format.

true

geronimo.opentracing.span.converter.zipkin.serviceName

The local serviceName.

hostname-jvmid

geronimo.opentracing.span.converter.zipkin.logger.active

Should a logger named org.apache.geronimo.opentracing.zipkin log each span as a Zipkin JSON. This allows to use a logger implementation to push the spans to any backend (like log4j2 kafka appender). It uses JUL as a facade.

true

geronimo.opentracing.span.converter.zipkin.logger.wrapAsList

Should zipkin JSON be logged wrapped in a list.

true

ExecutorServices

To monitor a CDI executor service, you can decorate it with @TracedExecutorService.

Extension module

geronimo-opentracing-extension provides a TracingProxyFactory module allowing to use java proxies (on interfaces) to add tracing to all methods of the decorated instance.