---
title: Datadog agent
slug: telemetry-pipeline/datadog-agent
docTags: 
createdAt: 2025-04-21T00:48:40.455Z
---

## Datadog Agent Source

The Datadog Agent source receives **logs, metrics, and traces** collected by a Datadog Agent and ingests them over **HTTP or HTTPS**.
&#x20;It is commonly used as a **compatibility and migration layer**, allowing Datadog Agents to forward data into a custom observability pipeline.

This source can run both as a **sidecar** or a centralized **aggregator**.

## Collection Model

- Push-based ingestion over HTTP/HTTPS&#x20;
- Datadog Agents send observability payloads to the configured endpoint&#x20;
- Incoming data is decoded and normalized&#x20;
- Signals can be routed independently or together downstream&#x20;

This source enables seamless reuse of existing Datadog Agent deployments.

## Network Binding

### address (required, string)

Defines the socket address the source listens on for incoming connections.

Operational notes:

- Must include a port&#x20;
- Can bind to all interfaces or a specific network interface&#x20;
- Should be exposed only to trusted Datadog Agents&#x20;

## Signal Control

### disable\_logs (optional, bool)

Prevents ingestion of log events.

### disable\_metrics (optional, bool)

Prevents ingestion of metric events.

Metrics support is currently **beta**.

### disable\_traces (optional, bool)

Prevents ingestion of trace events.

Trace support is currently **alpha**.

### multiple\_outputs (optional, bool)

Controls whether logs, metrics, and traces are exposed as **separate outputs**.

When enabled:

- Logs are available as \<source>.logs&#x20;
- Metrics as \<source>.metrics&#x20;
- Traces as \<source>.traces&#x20;

This enables independent routing and scaling per signal type.

## Decoding and Parsing

### decoding (optional, object)

Controls how incoming payloads are decoded into structured events.

The decoder may:

- Determine the signal type&#x20;
- Parse timestamps&#x20;
- Apply schema validation&#x20;
- Convert binary formats into structured data&#x20;

### Supported Codecs

The Datadog Agent source supports multiple decoding codecs, including:

- Raw bytes&#x20;
- JSON&#x20;
- Syslog&#x20;
- GELF&#x20;
- InfluxDB line protocol&#x20;
- Protobuf&#x20;
- Avro&#x20;
- OTLP (logs, metrics, traces)&#x20;
- Native Vector formats&#x20;
- VRL-based custom decoding&#x20;

Some codecs are experimental and may evolve over time.

### VRL Decoding

When VRL decoding is enabled:

- Each incoming event is passed through a VRL program&#x20;
- The final .target value becomes the decoded event&#x20;
- Compilation or runtime errors result in decoding failures&#x20;

This enables advanced customization and enrichment at ingest time.

## Framing Configuration

### framing (optional, object)

Controls how raw byte streams are split into individual events.

Supported framing strategies include:

- Byte-based framing&#x20;
- Character-delimited&#x20;
- Newline-delimited&#x20;
- Length-delimited&#x20;
- Octet-counting&#x20;
- Chunked GELF&#x20;
- Varint length-delimited&#x20;

Correct framing is critical for high-throughput or binary payloads.

## HTTP Connection Management

### keepalive (optional, object)

Controls HTTP connection lifecycle behavior.

Key behaviors:

- Limits maximum connection age&#x20;
- Adds jitter to avoid synchronized reconnects&#x20;
- Helps prevent connection storms in large-scale deployments&#x20;

### send\_timeout\_secs (optional, float)

Defines how long the source waits before returning an HTTP 503 Service Unavailable.

This protects the system when:

- Downstream components are overloaded&#x20;
- Backpressure builds up&#x20;
- Datadog Agent timeouts must be handled gracefully&#x20;

## Datadog-Specific Features

### parse\_ddtags (optional, bool)

Parses the ddtags field from incoming log events and expands it into structured key-value pairs.

Useful for:

- Preserving Datadog tagging semantics&#x20;
- Improving downstream filtering and aggregation&#x20;

### split\_metric\_namespace (optional, bool)

Splits metric names at the first . into:

- A namespace&#x20;
- A metric name&#x20;

This is useful when downstream systems enforce namespace-based metric models.

### store\_api\_key (optional, bool)

Stores incoming Datadog API keys in event metadata.

When enabled:

- Events forwarded to a Datadog sink can reuse the original API key&#x20;
- Facilitates hybrid or partial Datadog forwarding scenarios&#x20;

## TLS Configuration

### tls (optional, object)

Controls TLS behavior for incoming connections.

Supported capabilities:

- Server certificates and private keys&#x20;
- Custom CA trust chains&#x20;
- Client certificate verification&#x20;
- ALPN protocol negotiation&#x20;
- Hostname and certificate verification&#x20;

Disabling verification is strongly discouraged in production environments.

## Acknowledgements and Reliability

- Source-level acknowledgements are deprecated&#x20;
- End-to-end acknowledgements are controlled globally or at sink level&#x20;
- At-least-once delivery guarantees may result in duplicate events&#x20;
- Downstream systems should be idempotent&#x20;

## Security Considerations

- Restrict network access to trusted Datadog Agents&#x20;
- Use TLS for all production deployments&#x20;
- Avoid exposing the endpoint publicly&#x20;
- Apply least-privilege routing and filtering downstream&#x20;
- Monitor dropped and timed-out events&#x20;

## Common Use Cases

- Migrating away from Datadog without redeploying agents&#x20;
- Dual-shipping observability data&#x20;
- Centralized ingestion for multiple environments&#x20;
- Normalizing Datadog telemetry into vendor-neutral pipelines&#x20;
- Acting as a compatibility layer for legacy setups
