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 |
Service name | |
protocol |
http |
The protocol to use. By default http is used. |
host |
127.0.0.1 |
Host to use |
port |
14250 | Port to be used |
path |
Path to be used. | |
exporter-timeout |
10 seconds | Timeout of exporter |
private-key-pem |
Client private key in PEM format | |
client-cert-pem |
Client certificate in PEM format | |
trusted-cert-pem |
Trusted certificates in PEM format | |
sampler-type |
const with param set to 1 |
Sampler type const (0 to disable, 1 to always enabled),
ratio (sample param contains the ratio as a double) |
sampler-param |
sampler type default | Numeric parameter specifying details for the sampler type. |
tags |
see TracerBuilder |
|
boolean-tags |
see TracerBuilder |
|
int-tags |
see TracerBuilder |
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Supported Jaeger trace context propagation formats.static enum
Sampler type definition.static enum
Span Processor type. -
Constructor Summary
ModifierConstructorDescriptionprotected
Default constructor, does not modify any state. -
Method Summary
Modifier and TypeMethodDescriptionaddPropagation
(JaegerTracerBuilder.PropagationFormat propagationFormat) Add propagation format 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.build()
Builds theTracer
for Jaeger based on the configured parameters.clientCertificate
(Resource resource) Certificate of client in PEM format.collectorHost
(String host) Host to use to connect to tracing collector.collectorPath
(String path) Path on the collector host to use when sending data to tracing collector.collectorPort
(int port) Port to use to connect to tracing collector.collectorProtocol
(String protocol) Protocol to use (such ashttp
orhttps
) to connect to tracing collector.Load configuration of tracer from configuration of the application.static JaegerTracerBuilder
Create a new builder based on values in configuration.enabled
(boolean enabled) When enabled, tracing will be sent.exporterTimeout
(Duration exporterTimeout) Timeout of exporter requests.static JaegerTracerBuilder
forService
(String serviceName) Get a JaegerTracer
builder for processing tracing data of a service with a given name.maxExportBatchSize
(int maxExportBatchSize) Maximum Export Batch Size of exporter requests.maxQueueSize
(int maxQueueSize) Maximum Queue Size of exporter requests.privateKey
(Resource resource) Private key in PEM format.registerGlobal
(boolean global) When enabled, the created instance is also registered as a global tracer.samplerParam
(Number samplerParam) The sampler parameter (number).samplerType
(JaegerTracerBuilder.SamplerType samplerType) Sampler type.scheduleDelay
(Duration scheduleDelay) Schedule Delay of exporter requests.serviceName
(String name) Service name of the traced service.spanProcessorType
(JaegerTracerBuilder.SpanProcessorType spanProcessorType) Span Processor type used.trustedCertificates
(Resource resource) Trusted certificates in PEM format.<B> B
Access the underlying builder by specific type.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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 JaegerTracer
builder for processing tracing data of a service with a given name.- Parameters:
serviceName
- name of the service that will be using the tracer.- Returns:
Tracer
builder 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:TracerBuilder
Service name of the traced service.- Specified by:
serviceName
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
name
- name of the service using the tracer- Returns:
- updated builder instance
-
collectorProtocol
Description copied from interface:TracerBuilder
Protocol to use (such ashttp
orhttps
) to connect to tracing collector. Default is defined by each tracing integration.- Specified by:
collectorProtocol
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
protocol
- protocol to use- Returns:
- updated builder instance
-
collectorPort
Description copied from interface:TracerBuilder
Port to use to connect to tracing collector. Default is defined by each tracing integration.- Specified by:
collectorPort
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
port
- port to use- Returns:
- updated builder instance
-
collectorPath
Description copied from interface:TracerBuilder
Path on the collector host to use when sending data to tracing collector. Default is defined by each tracing integration.- Specified by:
collectorPath
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
path
- path to use- Returns:
- updated builder instance
-
collectorHost
Description copied from interface:TracerBuilder
Host to use to connect to tracing collector. Default is defined by each tracing integration.- Specified by:
collectorHost
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
host
- host to use- Returns:
- updated builder instance
-
addTracerTag
Description copied from interface:TracerBuilder
Tracer level tags that get added to all reported spans.- Specified by:
addTracerTag
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
key
- name of the tagvalue
- value of the tag- Returns:
- updated builder instance
-
addTracerTag
Description copied from interface:TracerBuilder
Tracer level tags that get added to all reported spans.- Specified by:
addTracerTag
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
key
- name of the tagvalue
- numeric value of the tag- Returns:
- updated builder instance
-
addTracerTag
Description copied from interface:TracerBuilder
Tracer level tags that get added to all reported spans.- Specified by:
addTracerTag
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
key
- name of the tagvalue
- boolean value of the tag- Returns:
- updated builder instance
-
config
Description copied from interface:TracerBuilder
Load 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:
config
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
config
- configuration node of the tracer configuration- Returns:
- updated builder instance
-
privateKey
Private key in PEM format.- Parameters:
resource
- key resource- Returns:
- updated builder
-
clientCertificate
Certificate of client in PEM format.- Parameters:
resource
- certificate resource- Returns:
- updated builder
-
trustedCertificates
Trusted certificates in PEM format.- Parameters:
resource
- trusted certificates resource- Returns:
- updated builder
-
spanProcessorType
public JaegerTracerBuilder spanProcessorType(JaegerTracerBuilder.SpanProcessorType spanProcessorType) Span Processor type used.- Parameters:
spanProcessorType
- to use- Returns:
- updated builder
-
exporterTimeout
Timeout of exporter requests.- Parameters:
exporterTimeout
- timeout to use- Returns:
- updated builder
-
scheduleDelay
Schedule Delay of exporter requests.- Parameters:
scheduleDelay
- timeout to use- Returns:
- updated builder
-
maxQueueSize
Maximum Queue Size of exporter requests.- Parameters:
maxQueueSize
- to use- Returns:
- updated builder
-
maxExportBatchSize
Maximum Export Batch Size of exporter requests.- Parameters:
maxExportBatchSize
- to use- Returns:
- updated builder
-
enabled
Description copied from interface:TracerBuilder
When enabled, tracing will be sent. If enabled is false, tracing should use a no-op tracer.- Specified by:
enabled
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
enabled
- set tofalse
to disable distributed tracing- Returns:
- updated builder instance
-
registerGlobal
Description copied from interface:TracerBuilder
When enabled, the created instance is also registered as a global tracer.- Specified by:
registerGlobal
in interfaceTracerBuilder<JaegerTracerBuilder>
- Parameters:
global
- whether to register this tracer as a global tracer once built- Returns:
- updated builder instance
-
unwrap
Description copied from interface:TracerBuilder
Access the underlying builder by specific type. This is a dangerous operation that will succeed only if the builder contains the expected type. This practically removes abstraction capabilities of this builder.- Specified by:
unwrap
in interfaceTracerBuilder<JaegerTracerBuilder>
- Type Parameters:
B
- type of the builder- Parameters:
builderClass
- type to access- Returns:
- instance of the builder
-
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
-
addPropagation
Add propagation format to use. Default propagation isb3
andjaeger
, to be compatible both with 3.0 (backward), and with 4.x, which usesjaeger
as default. If any propagation is specified either in configuration or through this method, defaults will not be honored.- Parameters:
propagationFormat
- propagation value- Returns:
- updated builder instance
-
build
Builds theTracer
for Jaeger based on the configured parameters.- Specified by:
build
in interfaceBuilder<JaegerTracerBuilder,
Tracer> - Returns:
- the tracer
-