Ingest data from Zipkin
The following configuration example shows how you configure a Collector instance to accept Zipkin data, transform it to OTLP, and send it to the Dynatrace backend.
Limitations
B3 requirements
Pay attention to the B3 requirements, to avoid having spans being dropped because of shared and duplicated span identifiers. See the propagator specification for more details.
For example, if you are using Spring Code Sleuth, you can use the following configuration setting to disable span sharing:
spring:sleuth:supports-join: false
Single Collector routing
Make sure to route all related Zipkin/B3 spans via the same Collector instance, to guarantee full ingestion. If you ingest some spans using OneAgent alone, they may not be properly linked and not show up as connected to your Zipkin spans.
Prerequisites
- One of the following Collector distributions with the Zipkin receiver:
- The Dynatrace Collector
- OpenTelemetry Contrib
- A custom Builder version
- The Dynatrace API endpoint URL to which the data should be exported
- An API token with the relevant access scope (only required for SaaS and ActiveGate)
Demo configuration
receivers:zipkin:exporters:otlphttp:endpoint: ${env:DT_ENDPOINT}headers:Authorization: "Api-Token ${env:DT_API_TOKEN}"service:pipelines:traces:receivers: [zipkin]processors: []exporters: [otlphttp]
Validate your settings to avoid any configuration issues.
Components
For our configuration, we configure the following components.
Receivers
Under receivers
, we specify the zipkin
receiver as active receiver component for our Collector instance.
The Zipkin receiver can be customized with a few more attributes, which we leave with their default values in our example.
Exporters
Under exporters
, we specify the default otlphttp
exporter and configure it with our Dynatrace API URL and the required authentication token.
For this purpose, we set the following two environment variables and reference them in the configuration values for endpoint
and Authorization
.
DT_ENDPOINT
contains the base URL of the Dynatrace API endpoint (for example,https://{your-environment-id}.live.dynatrace.com/api/v2/otlp
)DT_API_TOKEN
contains the API token
Service pipelines
Under service
, we eventually assemble our receiver and exporter objects into a traces pipeline, which will handle our Zipkin transformation to OTLP.