Skip to content

From Vendor Agents

The vendor compatibility overlay adds a dedicated OpenTelemetry Collector that accepts Datadog, Jaeger, and Splunk HEC wire protocols, translates them to OTLP, and forwards to the base collector. Existing vendor agents can be reconfigured to send their telemetry to observability-stack with only an endpoint URL change — no application code changes required.

If your apps emit…Need this overlay?
OpenTelemetry OTLP (gRPC or HTTP)No. Send directly to the base collector on 4317 or 4318.
Jaeger via modern OpenTelemetry SDK + OTLPNo.
Datadog (dd-trace-* SDKs, DogStatsD)Yes.
Jaeger native wire protocol (jaeger-client-*)Yes.
Splunk HECYes.

SignalFx is not supported. The upstream signalfxreceiver was deprecated with guidance to migrate to OTLP.

flowchart LR
    A["Vendor agents<br/>(Datadog, Jaeger legacy, Splunk HEC)"] -->|Vendor wire protocols| B["OTel Collector<br/>(compat overlay)"]
    G["OTLP apps<br/>(incl. modern Jaeger)"] -->|OTLP| C
    B -->|OTLP| C["OTel Collector<br/>(base)"]
    C --> D["Data Prepper"]
    C --> E["Prometheus"]
    D --> F["OpenSearch"]
    E --> F

OTLP apps bypass the compat hop and send directly to the base collector. All enrichment and downstream routing happens in the base pipeline, as it does for OTLP-native traffic.

Activation uses the standard INCLUDE_COMPOSE_* pattern used by observability-stack overlays:

Terminal window
echo "INCLUDE_COMPOSE_COMPAT=docker-compose.compat.yml" >> .env
docker compose up -d

This adds an otel-collector-compat service with receivers for each supported vendor, plus the bundled Jaeger hotrod demo for validation.

Terminal window
docker compose ps otel-collector-compat
curl -sI http://localhost:8126/info # HTTP 200 = Datadog receiver is live
VendorDefault portsMigration guide
Datadog8126/tcp, 8125/udpDatadog
Jaeger (legacy wire protocol)14250/tcp, 14268/tcpJaeger
Splunk HEC8088/tcpSplunk HEC

Default ports are remappable via environment variables. Useful when a real vendor agent already occupies the default port on the host.

VariableDefaultMaps to
COMPAT_DATADOG_APM_PORT8126Datadog trace-agent
COMPAT_DATADOG_STATSD_PORT8125DogStatsD
COMPAT_JAEGER_GRPC_PORT14250Jaeger gRPC
COMPAT_JAEGER_THRIFT_HTTP_PORT14268Jaeger Thrift HTTP
COMPAT_SPLUNK_HEC_PORT8088Splunk HEC
COMPAT_COLLECTOR_MEMORY_LIMIT256MCompat collector memory limit

Each receiver translates vendor-specific data to the OpenTelemetry data model. Translation behavior is defined by the upstream receivers. See each per-vendor guide for canonical attribute mappings, and:

Once data reaches OpenSearch: