Files
helidon/docs/shared/tracing/tracer-jaeger.adoc
Tomas Langer 6881ec8787 Update for MP tracing documentation. (#2397)
Extracted common parts into shared section.

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>
2020-09-25 23:07:09 +02:00

99 lines
4.9 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
///////////////////////////////////////////////////////////////////////////////
Copyright (c) 2019, 2020 Oracle and/or its affiliates.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
///////////////////////////////////////////////////////////////////////////////
Helidon is integrated with the Jaeger tracer.
The Jaeger builder is loaded through `ServiceLoader` and configured. You could
also use the Jaeger builder directly, though this would create a source-code dependency
on the Jaeger tracer.
== Prerequisites
To use Jaeger as a tracer,
add the following dependency to your project:
[source,xml]
----
<dependency>
<groupId>io.helidon.tracing</groupId>
<artifactId>helidon-tracing-jaeger</artifactId>
</dependency>
----
== Configuring Jaeger
The Jaeger tracer supports the following configuration options:
|===
|Key |Default value |Builder method |Description
|service |N/A |serviceName |Name of the service, to distinguish traces crossing service boundaries;
Jaeger is using lower-case only, name will be automatically lower-cased
|protocol |http |collectorProtocol |Protocol of the Jaeger trace collector (`udp`, `http` or `https`), to switch
to agent mode, use `udp`
|host |localhost |collectorHost |Host of the Jaeger trace collector (IP Address, hostname, or FQDN)
|port |14268 |collectorPort |Port of the Jaeger trace collector
|path |/api/traces |collectorPath |Path of the Jaeger trace collector
|token |N/A |token |Authentication token to use (token authentication)
|username |N/A |username |User to authenticate (basic authentication)
|password |N/A |password |Password of the user to authenticate (basic authentication)
|propagation |library default |addPropagation |Propagation type (`jaeger` or `b3`)
|log-spans |library default |logSpans |Whether to log spans (boolean)
|max-queue-size |library default |maxQueueSize |Maximal queue size of the reporter (int)
|flush-interval-ms|library default |flushInterval |Reporter flush interval in milliseconds
|sampler-type |library default |samplerType |Sampler type (`probabilistic`, `ratelimiting`, `remote`)
|sampler-param |library default |samplerParam |Numeric parameter specifying details for the sampler type
|sampler-manager|library default |samplerManager |Host and port of the sampler manager for `remote` type
|enabled |true |enabled |If set to false, tracing would be disabled
|tags |N/A |addTracerTag(String, String) |`String` tags to add to each span
|boolean-tags |N/A |addTracerTag(String, boolean)|`boolean` tags to add to each span
|int-tags |N/A |addTracerTag(String, int) |`int` tags to add to each span
|===
The following is an example of a Jaeger configuration, specified in the YAML format.
[source,yaml]
----
tracing:
service: "helidon-full-http"
protocol: "https" # JAEGER_ENDPOINT (if not udp, http is expected and endpoint is filled)
host: "192.168.1.3" # JAEGER_ENDPOINT
port: 14240 # JAEGER_ENDPOINT
path: "/api/traces/mine" # JAEGER_ENDPOINT
token: "token" # JAEGER_AUTH_TOKEN
# Either token or username/password
#username: "user" # JAEGER_USER
#password: "pass" # JAEGER_PASSWORD
propagation: "jaeger" # JAEGER_PROPAGATION either "jaeger" or "b3"
log-spans: false # JAEGER_REPORTER_LOG_SPANS
max-queue-size: 42 # JAEGER_REPORTER_MAX_QUEUE_SIZE
flush-interval-ms: 10001 # JAEGER_REPORTER_FLUSH_INTERVAL
sampler-type: "remote"# JAEGER_SAMPLER_TYPE (https://www.jaegertracing.io/docs/latest/sampling/#client-sampling-configuration)
sampler-param: 0.5 # JAEGER_SAMPLER_PARAM (number)
sampler-manager: "localhost:47877" # JAEGER_SAMPLER_MANAGER_HOST_PORT
tags:
tag1: "tag1-value" # JAEGER_TAGS
tag2: "tag2-value" # JAEGER_TAGS
boolean-tags:
tag3: true # JAEGER_TAGS
tag4: false # JAEGER_TAGS
int-tags:
tag5: 145 # JAEGER_TAGS
tag6: 741 # JAEGER_TAGS
----