Splunk support for OpenTelemetry collection and OTLP
· 3 minute read
Splunk supports OpenTelemetry through the Splunk Distribution of the OpenTelemetry Collector, standard OTLP ingestion paths, and integrations with Splunk Observability Cloud and Splunk platform products. The main architectural decision is whether to use upstream components, Splunk’s supported distribution, or a layered combination.
The Splunk collector distribution
Splunk’s distribution packages upstream collector components with default configuration, deployment tooling, receivers, processors, exporters, and Splunk-specific integrations. It can run in agent mode near hosts or workloads and gateway mode as an aggregation tier.
The distribution exposes standard OTLP receivers over gRPC and HTTP and can receive other formats needed during migration. This makes it possible to standardise application instrumentation before every legacy signal source has moved.
OTLP inside the pipeline
Splunk documents an OTLP exporter for traces, metrics, and logs. OTLP is useful both from applications to collectors and between agent and gateway tiers.
For production, configure TLS, authentication, batching, queued retry, memory limiting, and health endpoints. Expose receivers only on intended interfaces. A default collector configuration is a starting point, not an enterprise security boundary.
Preserve resource identity
Apply OpenTelemetry semantic conventions for service identity and add deployment, environment, cloud, Kubernetes, and host attributes through trusted resource detectors. Splunk-specific enrichment may improve backend experiences, but portable attributes should remain intact so the same signal can be routed elsewhere.
Do not put unbounded values such as user or request identifiers into metric dimensions. Test how log severity, metric temporality, span status, and resource attributes appear after backend mapping.
Size for failure conditions
Collector demand changes with receiver mix, enabled processors, batch size, cardinality, sampling, and export latency. Benchmark the actual configuration. Monitor accepted and refused records, queue utilisation, memory limiter action, dropped data, and failed exports.
An outage in Splunk Observability Cloud should not synchronously block instrumented applications. Use local offload, bounded retry, and an explicit data-loss policy. Add durable transport when particular audit or security events cannot be lost.
Maintain a vendor-neutral boundary
Keep reusable receiver and processing policy separate from the final Splunk exporter where practical. Version the distribution, upstream component set, and configuration. Test upgrades against representative signal fixtures.
Migration checklist
Capture a small golden dataset containing normal requests, errors, high-cardinality attributes, exemplars, and correlated logs. Send it through the proposed collector topology and compare the resulting Splunk fields, service identity, timestamps, units, and trace relationships with the source data. This catches semantic loss that a simple connectivity test cannot reveal.
Roll out by workload class rather than changing every producer at once. Define the owner of agent configuration, gateway capacity, Splunk access tokens, schema changes, and rollback. Record any Splunk-only processors or attributes as explicit dependencies so a future routing decision is based on evidence instead of an assumption of perfect portability.
Splunk’s distribution can reduce operational integration work, while standard OpenTelemetry APIs and OTLP preserve flexibility. The combination works best when teams know which layer is upstream-compatible, which is Splunk-specific, and which operational guarantees they own.
Continue reading
- Vendor-neutral observability platform · Selected work
- Observability systems: design the telemetry path before the dashboard · Guide
- Elastic support for OpenTelemetry and managed OTLP ingestion · Note
- Dynatrace support for OpenTelemetry and native OTLP · Note
- Datadog support for OpenTelemetry and OTLP ingestion · Note
- AWS support for OpenTelemetry with ADOT and CloudWatch · Note