mirror of
https://github.com/jlengrand/helidon.git
synced 2026-03-10 08:21:17 +00:00
Extracted common parts into shared section. Signed-off-by: Tomas Langer <tomas.langer@oracle.com>
99 lines
4.9 KiB
Plaintext
99 lines
4.9 KiB
Plaintext
///////////////////////////////////////////////////////////////////////////////
|
||
|
||
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
|
||
----
|
||
|