Skip to content

OTel Collector

Summary

The OpenTelemetry Collector is a vendor-agnostic pipeline engine that receives, processes, and exports telemetry. One Go codebase runs as either an agent or a gateway and handles traces, metrics, and logs, plus profiles as an alpha signal behind a feature gate. The current train is v1.67.0 / v0.161.0 (2026-09-14), released every two weeks with no LTS line. Collector 1.0 has not shipped: the core APIs are v1.x, but the binary and every component are still v0.x. This is the component-level companion to the OpenTelemetry guidance topic, which covers how organizations deploy it.

Key Facts

Fact Value
Latest Version Core v1.67.0 / v0.161.0 (2026-09-14). Contrib v0.161.0 (2026-09-15)
Next release v0.162.0, scheduled 2026-09-28
Release cadence Every 2 weeks (measured 13 to 15 days). No LTS or EOL policy
Security SLA Fix within 30 days of disclosure. CVSSv3 >= 9.0 within five business days
License Apache-2.0
Governance OpenTelemetry Collector SIG. OpenTelemetry became a CNCF Graduated project in May 2026
Language Go (Go 1.26 minimum since v0.160.0)
Stable Go modules pdata (v1.0.0 since 2023-11-27), component, confmap, consumer, pipeline, receiver/processor/exporter/extension APIs, most config/* packages
Signals Traces, metrics, logs. Profiles alpha (gate service.profilesSupport)
Official distributions 6: otelcol, otelcol-contrib, otelcol-k8s, otelcol-otlp, otelcol-ebpf-profiler, otelcol-prometheus (experimental)
Default ports OTLP 4317 (gRPC) and 4318 (HTTP), internal metrics 8888. All bind to localhost by default
Management OpAMP (spec Beta) via the contrib Supervisor. Kubernetes via the OpenTelemetry Operator v0.159.0
Repositories core, contrib, releases

Overview

Per the project's own repository objectives, the Collector is "unified: single codebase, deployable as an agent or collector with support for traces, metrics and logs." Receivers ingest data and convert it to the internal pdata model. Processors transform, filter, or sample it. Exporters send it on. Connectors join pipelines, and extensions (health, auth, storage, OpAMP) run beside them.

The compact map shows how the pieces fit in a typical Kubernetes deployment.

flowchart LR
    SDK["App SDKs<br/>OTLP"] --> AG["Agent<br/>otelcol-k8s DaemonSet"]
    HOST["kubelet, node,<br/>log files"] --> AG
    AG -->|"load_balancing<br/>routing_key traceID"| GW["Gateway<br/>otelcol-contrib Deployment"]
    TA["Target Allocator"] -.->|"scrape targets"| AG
    SUP["OpAMP Supervisor"] -.->|"remote config"| GW
    OP["OpenTelemetry Operator"] -.->|"CRs, HPA"| GW
    GW --> BE[("Backends:<br/>OTLP, Prometheus RW, Kafka")]

Internals, deployment modes, and design trade-offs are in the explanation. Install, scaling, build, and upgrade recipes are in the how-to guides. Stability levels, defaults, ports, renames, and deprecations are in the reference.

Releases And Versioning

The core repo uses dual versioning: each release pairs a stable v1.x tag (the stable module set) with a v0.x tag for everything else. Contrib and the distributions carry only the v0.x number and are tagged a day later.

  • Cadence: the release policy says "very short 2 week release cycles". Intervals across v1.58.0 to v1.67.0 were 13 to 15 days.
  • No formal LTS, end-of-life, or support-window policy exists. The published commitments are security fixes within 30 days of public disclosure and within five business days for CVSSv3 >= 9.0.
  • Collector 1.0: the roadmap to v1 targets stable configuration and APIs. The config-facing work is visible in 2026 releases (snake_case component renames with aliases, generated config.schema.yaml files, stabilized-and-removed feature gates), but no 1.0 date is published.

Operational Implication

With two-week releases and no LTS, running Collectors means planning regular upgrades rather than freezing versions. See the upgrade routine. The Operator's automatic upgrade handling exists partly to absorb this churn.

Official Distributions

Six distributions are built from opentelemetry-collector-releases as of 2026-09-25:

Distribution Binary Focus
Core otelcol Minimal foundation set
Contrib otelcol-contrib Broad component zoo, including vendor exporters
Kubernetes otelcol-k8s Kubernetes-focused component set
OTLP otelcol-otlp OTLP-only lean build
eBPF Profiling otelcol-ebpf-profiler Whole-host profile collection. Release artifacts since v0.133.0 (2025)
Prometheus otelcol-prometheus Embeds Prometheus exporters (blackbox, postgres, stackdriver, yace) as receivers. Experimental, "not recommended for production" per its README. Not in any tagged release yet: absent from the v0.161.0 tag, present in the v0.162.0 nightly tags (checked 2026-09-28)

Third-party distributions (AWS Distro for OpenTelemetry, Grafana Alloy, Datadog DDOT, Splunk OTel) exist but are not project-published. Anything beyond these is built with the Collector Builder. See Custom Builds With ocb.

What Changed In The Last 12 Months

When Change Source
v0.144.0 (2026-01-20) otlp exporter renamed otlp_grpc, otlphttp renamed otlp_http, with deprecated aliases. Start of the snake_case rename campaign across contrib core and contrib CHANGELOGs
2026-03-26 Profiles signal enters public alpha. Collector support from v0.148.0. Core OTLP components alpha for profiles in v0.149.0 Profiles alpha blog
2026-05 OpenTelemetry becomes a CNCF Graduated project CNCF announcement
v0.151.0 to v0.159.0 pebble_tail_storage extension moves tail-sampling buffers to disk (alpha, gated). Tail sampling gains num_shards, span-ingest, and W3C tracestate support contrib CHANGELOG
v0.155.0 to v0.157.0 Stabilized feature gates removed. schemagen moved into core. Partial reload gates. Receivers start last core CHANGELOG
v0.156.0 file_storage max_size cap. memory_limiter GC backoff core and contrib CHANGELOGs
v0.158.0 to v0.159.0 queue_batch processor (development) to replace batch. Exporter batching gate. Supervisor package-upgrade groundwork core and contrib CHANGELOGs
v0.160.0 Go 1.26 minimum. windows/amd64 Tier 1. confighttp keepalive section core CHANGELOG
2026 otelcol-prometheus distribution added (experimental) releases repo README

Evaluation

Strengths

  • One engine for all signals, with the widest receiver and exporter catalogue in the ecosystem. Backends can be swapped at the exporter without touching SDKs.
  • Fail-fast config validation and typed pipelines catch wiring errors at startup.
  • Custom builds with ocb keep binaries and attack surface small.
  • CNCF graduated governance with multi-vendor maintainers (Grafana Labs, Splunk, Elastic, Datadog, Dynatrace, and others per the releases repo).

Weaknesses

  • Two-week releases with no LTS. Frequent renames and deprecations mean real upgrade work.
  • Most components are alpha or beta. Only the OTLP receiver/exporters and a few processors (for example k8s_attributes) are stable.
  • Stateful features (tail sampling, persistent queues) push operational complexity onto you: sticky routing, disk sizing, at-least-once duplicates.
  • No official benchmarks for tail sampling, batch tuning, or queue sizing (see Benchmarks).

Choosing a distribution

If you need… Pick
Smallest reasonable static build, OTLP-only pipelines otelcol-otlp
Kubernetes install with a Kubernetes-focused component set otelcol-k8s
The wide receiver/exporter/processor zoo, for evaluation otelcol-contrib
A hand-curated component set (including your own Go components) for production ocb custom build
Profile-signal collection via eBPF otelcol-ebpf-profiler
Prometheus exporters without separate exporter processes, for evaluation only otelcol-prometheus

Anti-pattern: do not run contrib everywhere by default when workloads only speak OTLP. The distributions exist precisely so platform teams do not ship unused components into every pod.

Topic Map

  • How-to Guides: install, configure, scale, build (OCB) and upgrade the Collector (v1.67.0/v0.161.0).
  • Reference: versions and release train, component stability, renames and deprecations, default ports, configuration keys.
  • Explanation: pipeline engine and pdata, deployment modes, tail-sampling placement, resiliency and batching, OpAMP, Target Allocator, distributions and the builder, stability model, scaling doctrine.

Sources

Checked 2026-09-25 (repository files via raw.githubusercontent.com, release timestamps via proxy.golang.org, docs pages via the opentelemetry.io source repo). Links first verified HTTP 200 on 2026-08-27.

Source Kind
Collector architecture Primary docs
Collector configuration Primary docs
Internal telemetry Primary docs
Distributions Primary docs
Collector Builder (ocb) Primary docs
Gateway deployment Primary docs
Agent-to-gateway pattern Primary docs
Kubernetes install Primary docs
Resiliency Primary docs
Scaling guide Primary docs: tail-sampling routing, memory-limiter behavior
Benchmarks Primary docs/dashboard: verified absent our three metrics (data.js parsed 2026-08-27)
Load-test data dashboard Primary data: absence verification target
Roadmap to v1 for the Collector Primary blog (2024)
Profiles public alpha Primary blog, 2026-03-26
CNCF graduation announcement CNCF, 2026-05-21
Core repo Primary source, CHANGELOG, versions.yaml, docs/release.md
Core CHANGELOG Primary: v1.67.0/v0.161.0 and history
Contrib CHANGELOG Primary: v0.161.0 and history
Releases repo Primary: distribution list and manifests
Component stability Primary: stability level definitions
pdata package docs Primary
exporterhelper README Primary code doc: queue, retry, batch defaults
filestorage extension README Primary code doc: max_size cap, rebound compaction
memorylimiterprocessor README Primary code doc
loadbalancingexporter README Primary code doc
tailsamplingprocessor README Primary code doc
configauth README Primary code doc: authenticator matrix
configtls README Primary code doc
OpAMP spec Primary spec: Beta, opamp-spec v0.20.0
OpAMP Supervisor README Primary: capability status table
OpAMP Supervisor specification Primary: remote config viable, package upgrades blocked (#47272)
Target Allocator docs Primary: allocation strategies, CR usage
Operator HPA autoscaling Primary docs
Collector Helm chart Primary: chart 0.173.1
OpenTelemetry CVE list Primary: security advisories
Configuration security best practices Primary docs
contrib #31498 Practitioner datapoint: memory scaling law
Elastic Observability Labs study Vendor lab A/B: version-unpinned, confounded bundle
contrib #42326 Pebble PoC numbers (pebble-only)
VictoriaMetrics KubeCon EU 2026 sampling Secondhand relay of #42326 table
contrib #30770 Unresolved PVC-stall anomaly
Cost of tail sampling (Meth) Low-confidence single run. Bot-gated link
contrib issue #35378 Tracker: data loss on DNS change behind the LB exporter
CNCF: Operating OpenTelemetry at scale with OpAMP Practitioner corroboration
KEDA scaling concepts Practitioner corroboration

Provenance: the internals were extracted from three verification passes on 2026-08-27 (pass one: 25 claims confirmed, zero refuted. Pass two: 23 confirmed, 2 overclaims refuted, notably OpAMP spec-level secure auto-update guarantees. Pass three: official benchmark corpus parsed for verified absence, external measured deltas with confounds documented). The 2026-09-25 refresh re-checked versions, component names, stability levels, and defaults against v1.67.0/v0.161.0.

Questions

Resolved by the 2026-08-27 passes:

  • Queue, retry, and persistent-storage semantics: Resiliency Internals and resiliency recipes
  • OpAMP readiness: management plane. Remote config yes (conservatively). Package upgrades no, still true at v0.161.0
  • Auth extension landscape: auth matrix
  • Tail-sampling overhead numbers: Benchmarks and measured numbers. The official corpus is silent. External deltas are Elastic's confounded −65%/+2× and #42326's pebble-only −82%/~7.5×
  • Batch processor under overload: confirmed absence of public measured evidence
  • Queue sizing: units verified (batches under the default sizer, not bytes). The operative ceiling is real disk (#30770 anomaly documented)

Resolved by the 2026-09-25 refresh:

  • Profiles status: public alpha since 2026-03-26, still gated by service.profilesSupport (Profiles Signal)
  • Routing processor: deprecated v0.116.0, removed v0.133.0. Use the routing connector (deprecations)

Open questions:

  • How should secrets be handled beyond the static authenticator matrix? Candidates to study are the configuration security best practices page and secret-provider mechanisms such as confmap providers for vaults.
  • When will version-pinned, variable-isolated Collector performance benchmarks appear? None are published as of 2026-09-28, so quote vendor deltas only with their confounds attached. A BenchmarkTailSampling* entry on the load-test dashboard would answer this.
  • When will queue_batch leave development and join a distribution, and when will batch be deprecated?
  • When will the Supervisor's accepts_packages ship (issues #47272 and #33947)?
  • When will otelcol-prometheus get its first tagged release? As of 2026-09-28 it ships only in v0.162.0 nightly tags, so v0.162.0 is the earliest possible stable release.
  • Is there a dated Collector 1.0 plan beyond the 2024 roadmap post?