Most of the time setting only overall
is sufficient. random
and client
are for advanced use cases.
You can configure sampling settings equivalent to Envoy’s:
The value is always a percentage and is between 0 and 100.
Example:
sampling:
overall: 80
random: 60
client: 40
You can add tags to trace metadata by directly supplying the value (literal
) or by taking it from a header (header
).
Example:
tags:
- name: team
literal: core
- name: env
header:
name: x-env
default: prod
- name: version
header:
name: x-version
If a value is missing for header
, default
is used.
If default
isn’t provided, then the tag won’t be added.
You can configure a Datadog backend with a url
and splitService
.
Example:
datadog:
url: http://my-agent:8080 # Required. The url to reach a running datadog agent
splitService: true # Default to false. If true, it will split inbound and outbound requests in different services in Datadog
The splitService
property determines if Datadog service names should be split based on traffic direction and destination.
For example, with splitService: true
and a backend
service that communicates with a couple of databases,
you would get service names like backend_INBOUND
, backend_OUTBOUND_db1
, and backend_OUTBOUND_db2
in Datadog.
In most cases the only field you’ll want to set is url
.
Example:
zipkin:
url: http://jaeger-collector:9411/api/v2/spans # Required. The url to a zipkin collector to send traces to
traceId128bit: false # Default to false which will expose a 64bits traceId. If true, the id of the trace is 128bits
apiVersion: httpJson # Default to httpJson. It can be httpJson, httpProto and is the version of the zipkin API
sharedSpanContext: false # Default to true. If true, the inbound and outbound traffic will share the same span.
The only field you can set is endpoint
.
Example:
openTelemetry:
endpoint: otel-collector:4317 # Required. Address of OpenTelemetry collector