Thanos supports different tracing backends that implements opentracing.Tracer
interface.
All clients are configured using --tracing.config-file
to reference to the configuration file or --tracing.config
to put yaml config directly.
config
flags? #You can either pass YAML file defined below in --tracing.config-file
or pass the YAML content directly using --tracing.config
. We recommend the latter as it gives an explicit static view of configuration for each component. It also saves you the fuss of creating and managing additional file.
Don’t be afraid of multiline flags!
In Kubernetes it is as easy as (on Thanos sidecar example):
- args:
- sidecar
- |
--objstore.config=type: GCS
config:
bucket: <bucket>
- --prometheus.url=http://localhost:9090
- |
--tracing.config=type: STACKDRIVER
config:
service_name: ""
project_id: <project>
sample_factor: 16
- --tsdb.path=/prometheus-data
pkg/tracing/<provider>
opentracing.Tracer
interfaceAt that point, anyone can use your provider by spec.
Current tracing supported backends:
Client for https://github.com/jaegertracing/jaeger tracing.
type: JAEGER
config:
service_name: ""
disabled: false
rpc_metrics: false
tags: ""
sampler_type: ""
sampler_param: 0
sampler_manager_host_port: ""
sampler_max_operations: 0
sampler_refresh_interval: 0s
reporter_max_queue_size: 0
reporter_flush_interval: 0s
reporter_log_spans: false
endpoint: ""
user: ""
password: ""
agent_host: ""
agent_port: 0
Client for https://cloud.google.com/trace/ tracing.
type: STACKDRIVER
config:
service_name: ""
project_id: ""
sample_factor: 0
Client for https://www.elastic.co/products/apm tracing.
type: ELASTIC_APM
config:
service_name: ""
service_version: ""
service_environment: ""