Datadog with Cribl Stream

The endpoint, auth, and message-type settings the page documents.

What it is for

Cribl Stream sends log, metric, and trace events to Datadog, which supports metrics of type gauge, counter, rate, and distribution via its REST API. Three primary Datadog endpoints must be accessible from your Cribl environment, copied below from the Datadog Destination page:

Logs: http-intake.logs.{domain}
Metrics: api.{domain}
APM Traces and APM Stats: trace.agent.{domain}

In each endpoint, the {domain} placeholder is the specific Datadog region you are using. It defaults to datadoghq.com for the US region, and you configure an alternative region with Datadog site under Optional Settings. The supported domains the Datadog Destination page lists are:

US: datadoghq.com (default)
US3: us3.datadoghq.com
US5: us5.datadoghq.com
Europe: datadoghq.eu
US1-FED: ddog-gov.com
AP1: ap1.datadoghq.com
Custom: custom.datadoghq.com

Configuring the destination

On the top bar, select Products, then Cribl Stream, and pick a Worker Group. Configure via QuickConnect (Routing > QuickConnect in Stream, Collect in Edge) or the Routes path (Data > Destinations), then select Add Destination.

The New Destination modal starts under General Settings with Output ID (a unique name identifying this Destination definition) and an optional Description.

Under Authentication, the Authentication method dropdown offers Manual (a field for an API key available in your Datadog profile), Secret (an API key (text secret) drop-down selecting a stored secret that references the API access token, with a Create link to store a new, reusable secret), and API key (enter your Datadog organization's API key).

The Optional Settings section documents:

When events also include the ddtags internal field, its value must be a single string of comma-separated key:value pairs (for example, env:dev, app:myapp), not an array. Cribl Stream merges UI tags with the event ddtags value, and event tags do not override the tags configured here.

Optionally adjust four further tabs, then select Save and Commit & Deploy. The Persistent Queue Settings tab displays when Backpressure behavior is set to Persistent Queue. Its Mode menu picks when the queue engages: Error (Destination unavailable or in an error state), Backpressure (when backpressure is detected, until it resolves), and Always On (immediately queue all events). A Worker/Edge Node that starts with an invalid Mode automatically switches to Error; this might happen on versions that do not support the other modes (older than 4.9.0). Also on this tab: File size limit (defaults to 10 MB), Queue size limit (defaults to 5 GB), and Backpressure duration limit (defaults to 30 seconds; displays only when Mode is Backpressure).

On Cribl-managed Cloud Workers (with an Enterprise plan), that tab exposes only Mode and Backpressure duration limit plus the Clear Persistent Queue button, and a maximum queue size of 1 GB disk space is automatically allocated per PQ-enabled Destination, per Worker Process. The limit is not configurable.

The Processing tab offers a Pipeline or Pack to process data before this output sends it, plus System fields added automatically to events that use the output, including cribl_pipe by default and supporting wildcards.

Under Retries, Honor Retry-After header honors a Retry-After header provided the delay is no longer than 180 seconds, and any received header takes precedence over all other Retries options. By default, 1xx and 3xx series are dropped, 408 and 429 are retried in memory or the persistent queue (if enabled), any other 4xx is dropped, and any 5xx is retried the same way. Settings for failed HTTP requests adds per-code retry entries such as Pre-backoff interval (ms) (defaults to 1000) and Backoff multiplier (default 2). Retry timed-out HTTP requests exposes the same backoff settings for timed-out requests.

Some of the documented Advanced Settings:

Using it

When this Destination receives APM trace or stats events, it forwards them to the trace.agent.{domain} endpoint: traces originally received by a Datadog Agent Source on /v0.3/traces, /v0.4/traces, /v0.5/traces, or /api/v0.2/traces go to Datadog's APM intake, and APM client stats received on /v0.6/stats or /api/v0.2/stats go to the stats intake. The Destination preserves the original payload format and routes events by each event's structure.

If an event contains the internal field __criblMetrics, Cribl Stream sends it to Datadog as a metric event, serializing the payload to match Datadog's Submit Metrics API format. Name, type, value, and dimensions come from __criblMetrics; the built-in _time field controls the outbound timestamp, and if _time is missing or not numeric, Cribl Stream uses the current time. All other events are sent as logs.

If you need to proxy HTTP/S requests, the page points to the System Proxy Configuration documentation.

The configuration modal has troubleshooting tabs: Live Data (Start Capture to view real-time events), Logs (delivery logs with errors and warnings), and Test (Run Test to verify the Destination is set up and reachable).

What the docs flag

Frequently asked questions

Which endpoints does the Cribl Stream Datadog destination send to?

It sends to three primary Datadog endpoints: one for logs (http-intake.logs.{domain}), one for metrics (api.{domain}), and one for APM Traces and APM Stats (trace.agent.{domain}). The {domain} placeholder is the Datadog region you are using, and it defaults to datadoghq.com for the US region.

What authentication methods does Cribl Stream support for a Datadog destination?

The Authentication section offers Manual, Secret, and API key methods. Manual and API key each take an API key that you enter directly, while Secret selects a stored secret that references the API access token.

What does the Cribl Stream Datadog destination send if I do not set a Message field?

Cribl Stream sends a JSON representation of the whole event. That applies regardless of whether Send logs as is set to JSON or plain text.

How does Cribl Stream decide which events become Datadog metrics?

If an event contains the internal field __criblMetrics, Cribl Stream sends it to Datadog as a metric event, and all other events are sent as logs. The metric name, type, value, and dimensions come from __criblMetrics, and the built-in _time field controls the outbound timestamp.

Source

Verified against Cribl Stream 4.20 documentation on October 15, 2026.