java.lang.Object
io.helidon.tracing.jaeger.JaegerTracerBuilder
- All Implemented Interfaces:
Builder<JaegerTracerBuilder,,Tracer> TracerBuilder<JaegerTracerBuilder>,Supplier<Tracer>
The JaegerTracerBuilder is a convenience builder for
Tracer to use with Jaeger.
Unless You want to explicitly depend on Jaeger in Your code, please
use TracerBuilder.create(String) or
TracerBuilder.create(io.helidon.config.Config) that is abstracted.
The Jaeger tracer uses environment variables and system properties to override the defaults.
Except for protocol and service these are honored, unless overridden in configuration
or through the builder methods.
See Jaeger documentation
for details.
The following table lists jaeger specific defaults and configuration options.
| option | default | description |
|---|---|---|
service |
Required service name | |
protocol |
http |
The protocol to use. By default http is used. To switch to agent
mode, use udp |
host |
127.0.0.1 for http, library default for udp |
Host to used - used by both UDP and HTTP endpoints |
port |
14268 for http, library default for udp |
Port to be used - used by both UDP and HTTP endpoints |
path |
/api/traces |
Path to be used when using http |
token |
Authentication token to use | |
username |
User to use to authenticate (basic authentication) | |
password |
Password to use to authenticate (basic authentication) | |
propagation |
library default | Propagation type to use, supports jaeger and b3 |
log-spans |
library default | Whether reporter should log spans |
max-queue-size |
library default | Maximal queue size of the reporter |
flush-interval-ms |
library default | Reporter flush interval in milliseconds |
sampler-type |
library default | Sampler type (const, probabilistic, ratelimiting, or remote) |
sampler-param |
library default | Numeric parameter specifying details for the sampler type (see Jaeger docs) |
| sampler-manager | library default | host and port of the sampler manager |
tags |
see TracerBuilder |
|
boolean-tags |
see TracerBuilder |
|
int-tags |
see TracerBuilder |
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumSampler type definition. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDefault constructor, does not modify any state. -
Method Summary
Modifier and TypeMethodDescriptionaddPropagation(io.jaegertracing.Configuration.Propagation propagation) Add propagation type to use.addTracerTag(String key, boolean value) Tracer level tags that get added to all reported spans.addTracerTag(String key, Number value) Tracer level tags that get added to all reported spans.addTracerTag(String key, String value) Tracer level tags that get added to all reported spans.Configure username and password for basic authentication.build()Builds theTracerfor Jaeger based on the configured parameters.collectorHost(String host) Host to use to connect to tracing collector.collectorPath(String path) Override path to use.collectorPort(int port) Port to use to connect to tracing collector.collectorProtocol(String protocol) Protocol to use (such ashttporhttps) to connect to tracing collector.Load configuration of tracer from configuration of the application.static JaegerTracerBuilderCreate a new builder based on values in configuration.enabled(boolean enabled) When enabled, tracing will be sent.flushInterval(long value, TimeUnit timeUnit) The reporter's flush interval.static JaegerTracerBuilderforService(String serviceName) Get a JaegerTracerbuilder for processing tracing data of a service with a given name.logSpans(boolean logSpans) Whether the reporter should also log the spans.maxQueueSize(int maxQueueSize) The reporter's maximum queue size.registerGlobal(boolean global) When enabled, the created instance is also registered as a global tracer.samplerManager(String samplerManagerHostPort) The host name and port when using the remote controlled sampler.samplerParam(Number samplerParam) The sampler parameter (number).samplerType(JaegerTracerBuilder.SamplerType samplerType) Sampler type.serviceName(String name) Service name of the traced service.Authentication token sent as a "Bearer" to the endpoint.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.helidon.tracing.TracerBuilder
collectorUri
-
Constructor Details
-
JaegerTracerBuilder
protected JaegerTracerBuilder()Default constructor, does not modify any state.
-
-
Method Details
-
forService
Get a JaegerTracerbuilder for processing tracing data of a service with a given name.- Parameters:
serviceName- name of the service that will be using the tracer.- Returns:
Tracerbuilder for Jaeger.
-
create
Create a new builder based on values in configuration. This requires at least a key "service" in the provided config.- Parameters:
config- configuration to load this builder from- Returns:
- a new builder instance.
- See Also:
-
serviceName
Description copied from interface:TracerBuilderService name of the traced service.- Specified by:
serviceNamein interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
name- name of the service using the tracer- Returns:
- updated builder instance
-
collectorProtocol
Description copied from interface:TracerBuilderProtocol to use (such ashttporhttps) to connect to tracing collector. Default is defined by each tracing integration.- Specified by:
collectorProtocolin interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
protocol- protocol to use- Returns:
- updated builder instance
-
collectorHost
Description copied from interface:TracerBuilderHost to use to connect to tracing collector. Default is defined by each tracing integration.- Specified by:
collectorHostin interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
host- host to use- Returns:
- updated builder instance
-
collectorPort
Description copied from interface:TracerBuilderPort to use to connect to tracing collector. Default is defined by each tracing integration.- Specified by:
collectorPortin interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
port- port to use- Returns:
- updated builder instance
-
collectorPath
Override path to use.- Specified by:
collectorPathin interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
path- path to override the default- Returns:
- updated builder instance
-
enabled
Description copied from interface:TracerBuilderWhen enabled, tracing will be sent. If enabled is false, tracing should use a no-op tracer.- Specified by:
enabledin interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
enabled- set tofalseto disable distributed tracing- Returns:
- updated builder instance
-
addTracerTag
Description copied from interface:TracerBuilderTracer level tags that get added to all reported spans.- Specified by:
addTracerTagin interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
key- name of the tagvalue- value of the tag- Returns:
- updated builder instance
-
addTracerTag
Description copied from interface:TracerBuilderTracer level tags that get added to all reported spans.- Specified by:
addTracerTagin interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
key- name of the tagvalue- numeric value of the tag- Returns:
- updated builder instance
-
addTracerTag
Description copied from interface:TracerBuilderTracer level tags that get added to all reported spans.- Specified by:
addTracerTagin interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
key- name of the tagvalue- boolean value of the tag- Returns:
- updated builder instance
-
registerGlobal
Description copied from interface:TracerBuilderWhen enabled, the created instance is also registered as a global tracer.- Specified by:
registerGlobalin interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
global- whether to register this tracer as a global tracer once built- Returns:
- updated builder instance
-
basicAuth
Configure username and password for basic authentication.- Parameters:
username- username to usepassword- password to use- Returns:
- updated builder instance
-
addPropagation
Add propagation type to use.- Parameters:
propagation- propagation value- Returns:
- updated builder instance
-
config
Description copied from interface:TracerBuilderLoad configuration of tracer from configuration of the application. The configuration keys are specific for each tracer integration and documented in these integration projects.- Specified by:
configin interfaceTracerBuilder<JaegerTracerBuilder>- Parameters:
config- configuration node of the tracer configuration- Returns:
- updated builder instance
-
samplerManager
The host name and port when using the remote controlled sampler.- Parameters:
samplerManagerHostPort- host and port of the sampler manager- Returns:
- updated builder instance
-
samplerParam
The sampler parameter (number).- Parameters:
samplerParam- parameter of the sampler- Returns:
- updated builder instance
-
samplerType
Sampler type.See Sampler types.
- Parameters:
samplerType- type of the sampler- Returns:
- updated builder instance
-
flushInterval
The reporter's flush interval.- Parameters:
value- amount in the unit specifiedtimeUnit- the time unit- Returns:
- updated builder instance
-
maxQueueSize
The reporter's maximum queue size.- Parameters:
maxQueueSize- maximal size of the queue- Returns:
- updated builder instance
-
logSpans
Whether the reporter should also log the spans.- Parameters:
logSpans- whether to log spans- Returns:
- updated builder instance
-
token
Authentication token sent as a "Bearer" to the endpoint.- Parameters:
token- token to authenticate- Returns:
- updated builder instance
-
build
Builds theTracerfor Jaeger based on the configured parameters.- Specified by:
buildin interfaceBuilder<JaegerTracerBuilder,Tracer> - Specified by:
buildin interfaceTracerBuilder<JaegerTracerBuilder>- Returns:
- the tracer
-