Prerequisites
- A managed or self-managed ClickHouse Observability service.
- A running Datadog Agent collecting the signals you want to migrate. For traces, your application must already send traces to that Agent through a Datadog SDK.
- Network access from the Agent to your Datadog receiver endpoint.
Set up your destination
- Fully managed
- Self-managed
Open your service and navigate to Team Settings → Data → Managed Telemetry. Copy the OTLP HTTP endpoint and API key.The Datadog endpoint uses the same hostname with port
8126. No additional collector is required. Use these values in the Agent configuration below:Configure the Datadog Agent
Update your Agent’sdatadog.yaml configuration file. Typical locations are /etc/datadog-agent/datadog.yaml on Linux and /opt/datadog-agent/etc/datadog.yaml on macOS.
Merge the following settings into your existing configuration, using the destination values from the tab above:
YOUR_DATADOG_URL with the full destination URL and YOUR_DATADOG_HOST_PORT with its hostname:port, without a scheme. Set logs_no_ssl to the value specified for your destination.
disable-convert-traces keeps Agent trace payloads compatible with the Datadog receiver. With Datadog Agent 7.85.2 and collector core 0.155.0, the Agent’s default indexed payload was accepted with HTTP 200 but produced no spans. Use the setting above for trace forwarding, and preserve any other entries in your existing apm_config.features list.DD_API_KEY.
This configuration redirects the Agent’s logs, traces, and metrics from Datadog to ClickHouse Observability. To evaluate it first, apply it to a test Agent before updating your wider deployment.
Restart and verify
Restart the Agent to apply the configuration. On Linux:- Logs: select your Logs source and filter by the application’s
ServiceName. - Traces: select your Traces source and filter by the application’s
ServiceName. - Metrics: search for a metric emitted by your application or Agent. For a DogStatsD test, emit a named gauge and check its value.
TraceId: the receiver can use the tracer’s base service as the resource service name while retaining a per-span service override in the service.name span attribute. Set DD_SERVICE in your application’s tracing configuration to establish its base service name.