| = 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`. |