Skip to main content
The Edge distribution includes support for all protocols: Datadog APIs and OTLP. Use this when your environment sends telemetry in multiple formats.

Supported Endpoints

EndpointMethodProtocolDescription
/api/v2/logsPOSTDatadogLog ingestion
/api/v1/seriesPOSTDatadogMetrics ingestion
/v1/logsPOSTOTLPLog export
/v1/metricsPOSTOTLPMetrics export
/healthGET-Health check

Configuration

config.json
{
  "listen_address": "0.0.0.0",
  "listen_port": 8080,
  "upstream_url": "https://agent-http-intake.logs.datadoghq.com",
  "logs_url": "https://agent-http-intake.logs.datadoghq.com",
  "metrics_url": "https://api.datadoghq.com",
  "log_level": "info",
  "policy_providers": [
    {
      "id": "local",
      "type": "file",
      "path": "policies.json"
    }
  ]
}
You can configure separate upstream URLs for logs (logs_url) and metrics (metrics_url). If not specified, they fall back to upstream_url.

Running

docker run -d \
  --name edge \
  -p 8080:8080 \
  -v $(pwd)/config.json:/etc/edge/config.json \
  -v $(pwd)/policies.json:/etc/edge/policies.json \
  ghcr.io/usetero/edge:latest \
  /etc/edge/config.json

When to Use This Distribution

Use the Edge distribution when:
  • Mixed telemetry sources: Some applications use Datadog agents, others use OpenTelemetry
  • Migration: Transitioning from one protocol to another
  • Multi-vendor: Sending data to multiple backends that prefer different protocols
  • Flexibility: Want a single deployment that handles everything
For single-protocol environments, prefer the focused distributions: Focused distributions have a smaller binary size and attack surface.

Features

  • Handles Datadog /api/v2/logs and /api/v1/series endpoints
  • Handles OTLP /v1/logs and /v1/metrics endpoints
  • Policy-based filtering (DROP/KEEP) for logs and metrics
  • Separate upstream URLs for logs and metrics
  • Async policy loading (server starts immediately while policies load in background)
  • Fail-open behavior (errors pass data through unchanged)
  • Lock-free policy updates via atomic snapshots
  • Graceful shutdown with signal handling

Unified Policies

Policies work the same regardless of the incoming protocol. A log filter policy applies to both Datadog logs and OTLP logs.
{
  "id": "drop-debug",
  "name": "Drop debug logs from all sources",
  "log": {
    "match": [{ "log_field": "severity_text", "regex": "^(debug|DEBUG)$" }],
    "keep": "none"
  }
}
This policy drops debug logs whether they arrive via /api/v2/logs (Datadog) or /v1/logs (OTLP).

Protocol-Specific Filtering

To apply policies only to specific protocols, match on protocol-specific attributes:
{
  "id": "sample-datadog-agent-logs",
  "name": "Sample logs from Datadog agents",
  "log": {
    "match": [{ "log_attribute": "ddsource", "exists": true }],
    "keep": "10%"
  }
}
The ddsource attribute is specific to Datadog, so this policy only affects Datadog-format logs.

Resource Considerations

The Edge distribution:
  • Has a larger binary size than focused distributions
  • Loads all protocol modules at startup
  • Uses slightly more memory
For most deployments, this overhead is negligible. Consider focused distributions only if you’re running Edge in constrained environments (embedded systems, very small containers).

Next Steps

Datadog

Datadog-specific configuration

OTLP

OTLP-specific configuration