Status | |
---|---|
Stability | alpha |
Distributions | contrib |
This extension allows serving sampling strategies following the Jaeger's remote sampling API. This extension can be configured to proxy requests to a backing remote sampling server, which could potentially be a Jaeger Collector down the pipeline, or a static JSON file from the local file system.
By default, two listeners are made available:
localhost:5778
, following the legacy remote sampling endpoint as defined by Jaegerlocalhost:14250
, following the gRPC remote sampling endpoint, also defined by Jaeger
Note that the port 14250
will clash with the Jaeger Receiver. When both are used, it's recommended to change this extension to use another port.
Although this extension is derived from Jaeger, it can be used by any clients who can consume this standard, such as the OpenTelemetry Java SDK.
At this moment, the reload_interval
option is only effective for the file
source. In the future, this property will be used to control a local cache for a remote
source.
The file
source can be used to load files from the local file system or from remote HTTP/S sources. The remote
source must be used with a gRPC server that provides a Jaeger remote sampling service.
extensions:
jaegerremotesampling:
source:
remote:
endpoint: jaeger-collector:14250
jaegerremotesampling/1:
source:
reload_interval: 1s
file: /etc/otelcol/sampling_strategies.json
jaegerremotesampling/2:
source:
reload_interval: 1s
file: http://jaeger.example.com/sampling_strategies.json
A sampling strategy file could look like:
{
"service_strategies": [
{
"service": "foo",
"type": "probabilistic",
"param": 0.8,
"operation_strategies": [
{
"operation": "op1",
"type": "probabilistic",
"param": 0.2
},
{
"operation": "op2",
"type": "probabilistic",
"param": 0.4
}
]
},
{
"service": "bar",
"type": "ratelimiting",
"param": 5
}
],
"default_strategy": {
"type": "probabilistic",
"param": 0.5,
"operation_strategies": [
{
"operation": "/health",
"type": "probabilistic",
"param": 0.0
},
{
"operation": "/metrics",
"type": "probabilistic",
"param": 0.0
}
]
}
}
Source: https://www.jaegertracing.io/docs/1.28/sampling/#collector-sampling-configuration