- Evaluate ClickStack alongside Datadog without touching application code, using your existing agents to send the same telemetry to both platforms.
- Ease a migration, moving to ClickStack while keeping your current collection layer in place and adopting OpenTelemetry instrumentation gradually.
- Run both stacks in parallel over the long term, using each platform for what it does best.
Why run ClickStack alongside Datadog
For most teams, the reason to move observability data out of Datadog is cost. Log and trace volumes grow as applications scale and more services are instrumented, leaving a choice between higher spend and keeping less of the telemetry you produce. Those cost controls then limit what you can see during an investigation: sampled traces, unindexed logs, rolled-up metrics, and short retention windows all reduce the context available when you need it most. ClickStack is built on ClickHouse, which for large log and tracing workloads can be over 100x more cost-efficient than Datadog. That difference in storage economics is what makes running ClickStack alongside Datadog worthwhile:- Longer retention. Set retention to match your operational needs rather than your budget, and keep the events you may need weeks or months later.
- Full-fidelity data. Store every log and trace without sampling, so investigations run against complete data rather than a subset.
- No API rate limits. Query your telemetry as a database rather than through a metered API, with no per-query or per-endpoint throttling.
- Full SQL access. Analyze logs, metrics, and traces with SQL, and join them with business or infrastructure data already in ClickHouse.
- Agentic workloads. Expose your telemetry to AI agents through the ClickStack MCP server and run unlimited analytical queries directly against ClickHouse.
How the Datadog receiver works
In a typical OpenTelemetry deployment, telemetry is sent to an OpenTelemetry collector before it reaches a backend. The collector receives data from agent-mode collectors and from OpenTelemetry SDKs instrumenting applications, applies any filtering or transformations, batches events, and exports them to the target destination. The Datadog receiver adds another input to this architecture. It exposes an endpoint that understands the protocols used by Datadog agents and SDKs, and converts incoming Datadog payloads into the OpenTelemetry data model. From there they pass through the normal collector pipeline like any other telemetry. Existing Datadog agents are simply reconfigured to send logs and traces to the receiver running on a ClickStack collector. Applications keep their existing Datadog SDKs, and the agents already deployed across your infrastructure stay in place. Because a collector pipeline can use more than one exporter, the same telemetry can be sent to Datadog and to ClickStack at the same time. This is what makes side-by-side evaluation and long-term parallel operation possible: you compare both platforms using identical data, then decide independently whether to migrate.What the receiver handles
The receiver translates Datadog payloads into their correct OpenTelemetry representation so that ClickStack can interpret, correlate, and query the data without any Datadog-specific logic:- Log records. Datadog millisecond timestamps are converted to nanoseconds and used to populate the OpenTelemetry timestamp, observed timestamp, body, and severity fields, so records no longer appear at the Unix epoch.
- Resource attributes and severity. Datadog statuses such as
info,warn, anderrormap to the corresponding OpenTelemetrySeverityNumberandSeverityText. Hostnames, service names, environments, and known container, cloud, and Kubernetes tags are promoted to standard resource attributes. - Trace and log correlation. The
dd.trace_idanddd.span_idfields populate the OpenTelemetry trace and span identifiers, and the receiver reconstructs full 128-bit trace IDs from Datadog’s split representation. Enabled by default, this lets Datadog-sourced logs and spans correlate with services instrumented using OpenTelemetry. - Structured JSON logs. A
decode_json_messageoption, enabled by default, performs the JSON processing that normally happens in the Datadog backend, extracting the body, timestamp, severity, trace identifiers, resource fields, and remaining attributes. - Compatibility with current agents. Datadog Agent 7.59 and later compresses HTTP payloads with Zstandard by default. The receiver supports Zstandard alongside gzip, so current agents connect without their payloads being rejected.
Enabling the Datadog receiver
The Datadog receiver is included in the ClickStack distribution of the OpenTelemetry collector, listening on port8126. It is disabled by default and enabled with the ENABLE_DATADOG_RECEIVER environment variable.
Once enabled, you point your Datadog agent at the receiver and authenticate it with a ClickStack ingestion key. Where that key comes from depends on your deployment: with Managed ClickStack you run a standalone collector and set the key yourself at startup, while with Open Source ClickStack the key is generated for you and copied from the ClickStack interface (HyperDX). Select your deployment below.
- Managed ClickStack
- Open Source ClickStack
With Managed ClickStack you deploy a standalone ClickStack collector that ingests into your ClickHouse Cloud service. You secure the collector at startup with an authentication token that you choose, and reuse that same token as the Datadog agent’s API key.Run the standalone ClickStack collector, pointing it at your ClickHouse Cloud service. Enable the Datadog receiver with The receiver is now available at
1
Deploy a collector with the receiver enabled
ClickStack OpenTelemetry collector vs standard OpenTelemetry collectorThe Datadog receiver is built into and pre-configured in the ClickStack distribution of the OpenTelemetry collector. If you prefer to use the standard OpenTelemetry Collector Contrib distribution, you’ll need to configure the receiver yourself. All of our changes and improvements to the receiver are pushed upstream, so they’re available there too. For configuration options, see the Datadog receiver README.
ENABLE_DATADOG_RECEIVER=true, expose port 8126, and secure ingestion by setting your own OTLP_AUTH_TOKEN:http://localhost:8126, and the token in OTLP_AUTH_TOKEN is the key you pass to the Datadog agent. For more detail on securing the collector, including the Helm equivalent, see “Securing the collector”.2
Configure the Datadog agent
Update the agent configuration file at This configuration:
/opt/datadog-agent/etc/datadog.yaml to send logs, traces, and metrics to the receiver. Use the value of OTLP_AUTH_TOKEN as the API key, and point each destination at the receiver endpoint:- Sends metrics, traces, and logs to the receiver rather than to Datadog.
- Disables the v3 metrics intake, since ClickStack supports the Datadog v2 metrics endpoint.
- Turns off remote updates and remote configuration, which depend on the Datadog backend.
3
Restart the agent
Restart the Datadog agent so it picks up the new configuration. On macOS:Telemetry from the agent now flows into ClickStack, where you can explore it in HyperDX.
Worked example
The following example uses a sample application to show the full path from an instrumented app through the Datadog agent into ClickStack.1
Clone and run the sample app
The example uses the Hacker News demo app, instrumented with Datadog on the Follow the instructions in the README to run the app.
datadog-instrumentation branch. Clone that branch:2
Launch ClickStack with the receiver enabled
Start the all-in-one image with the Datadog receiver enabled. Here we map the receiver to host port The receiver is available at
18126 so it doesn’t clash with the local Datadog agent, which also uses 8126:http://127.0.0.1:18126.3
Install and configure the Datadog agent
Install the Datadog agent. On macOS:Update See Enabling the Datadog receiver for the full agent configuration and for where to find your ingestion key.
/opt/datadog-agent/etc/datadog.yaml to point at the receiver on port 18126, using your ClickStack ingestion key as the API key, then restart the agent:4
Explore your telemetry in ClickStack
Open the HyperDX interface at http://localhost:8080 and explore the traces, logs, and metrics captured from the Datadog agent.