Reference¶
Look-up facts for the OpenTelemetry Collector engine: versions and the release train, module and component stability, component type renames and deprecations, default ports, and the configuration keys that the how-to guides and explanation rely on. Every row was checked on 2026-09-25 against the upstream CHANGELOGs, metadata.yaml files, and READMEs of opentelemetry-collector, opentelemetry-collector-contrib, opentelemetry-collector-releases, and opentelemetry-operator, with release timestamps cross-checked on the Go module proxy (proxy.golang.org). Project-level facts (spec, OTLP, semantic conventions, Operator CRDs and injection annotations) live in the sibling OpenTelemetry reference.
Versions And Release Train¶
| Artifact | Latest (date) | Notes |
|---|---|---|
| Collector core | v1.67.0 / v0.161.0 (2026-09-14) | Dual tag: stable modules v1.x, everything else v0.x |
| Collector contrib | v0.161.0 (2026-09-15) | Tagged the day after core |
| Collector releases (distributions) | v0.161.0 | Builds otelcol, otelcol-contrib, otelcol-k8s, otelcol-otlp, otelcol-ebpf-profiler, and the new experimental otelcol-prometheus |
Collector Builder (ocb) |
v0.161.0 (2026-09-14) | Module go.opentelemetry.io/collector/cmd/builder |
| OpAMP Supervisor | v0.161.0 (2026-09-15) | Module .../cmd/opampsupervisor in contrib, component stability alpha |
| OpenTelemetry Operator | v0.159.0 (2026-09-14) | versions.txt pins Collector 0.159.0 and Target Allocator 0.159.0 |
| Collector Helm chart | 0.173.1 (appVersion 0.160.0) | Chart open-telemetry/opentelemetry-collector |
| OpAMP specification | v0.20.0, status Beta | opamp-spec repo |
| Next scheduled release | v0.162.0 on 2026-09-28 | Per the release schedule in docs/release.md |
Recent core releases (dates from the Go module proxy):
| Core release | Date | Headline user-facing change |
|---|---|---|
| v1.67.0 / v0.161.0 | 2026-09-14 | Removal of deprecated pprofile, scraperhelper, ZapOptions APIs. confmap escaped-URI expansion fix |
| v1.66.0 / v0.160.0 | 2026-09-01 | Go 1.26 minimum. windows/amd64 declared Tier 1. confighttp flat keepalive fields deprecated in favor of a keepalive section |
| v1.65.0 / v0.159.0 | 2026-08-17 | pkg.exporterhelper.queueBatchEnabled gate (batching on by default in NewDefaultQueueConfig). Batch-size metrics now recorded post-batching |
| v1.64.0 / v0.158.0 | 2026-08-04 | New queue_batch processor to replace batch. memory_limiter extension promoted to beta |
| v1.63.0 / v0.157.0 | 2026-07-21 | service.partialReload (alpha) and service.partialReloadReceivers (beta) gates. config.schema.yaml bootstrapped for core components. Batch-size histogram buckets changed to powers of two (128 B to 16 MiB) |
| v1.62.0 / v0.156.0 | 2026-07-06 | Receivers always start after all other components (startup race fix). memory_limiter GC backoff (max_gc_interval_when_soft_limited/_hard_limited, default 30s) |
| v1.61.0 / v0.155.0 | 2026-06-23 | Stabilized feature gates removed. schemagen moved into core. Memory limiter metrics renamed to otelcol_processor_memory_limiter_* |
Release policy facts (docs/release.md):
- "All OpenTelemetry Collector repositories have very short 2 week release cycles." Measured intervals for v1.58.0 through v1.67.0 were 13 to 15 days.
- No LTS or end-of-life window is published. Patch releases carry a high bar.
- Security fixes: a release "in at most 30 days since they are publicly announced". Critical vulnerabilities (CVSSv3 >= 9.0) warrant a release within five business days.
Module Stability¶
versions.yaml in the core repo splits modules into two module sets:
| Module set | Version | Members (abridged) |
|---|---|---|
stable |
v1.67.0 | pdata, component, confmap plus the env/file/http/https/yaml providers, featuregate, client, consumer, pipeline, receiver, processor, exporter, extension, extension/extensionauth, and config/configauth, configgrpc, configopaque, configoptional, configcompression, configretry, configtls, confignet, configmiddleware |
beta |
v0.161.0 | The otelcol and service packages, confighttp, connector, exporterhelper, processorhelper, receiverhelper, scraper, pdata/pprofile, cmd/builder, cmd/mdatagen, cmd/schemagen, and every core component (otlpreceiver, otlpexporter, otlphttpexporter, debugexporter, batchprocessor, queuebatchprocessor, memorylimiterprocessor, zpagesextension, memorylimiterextension, forwardconnector, and others) |
Collector 1.0 is not out
pdata reached v1.0.0 on 2023-11-27, and more APIs have joined the stable set since. The Collector binary, the service/otelcol packages, and all components are still v0.x. The public roadmap to v1 (2024) remains the reference plan. No 1.0 date is published.
Component Stability Levels¶
Levels are declared per signal in each component's metadata.yaml and README (docs/component-stability.md):
| Level | Meaning (abridged from upstream) |
|---|---|
| Development | Not all pieces in place. Configuration may break often. Not for production |
| Alpha | Limited non-critical workloads. Configuration may change with minimal notice (changelog entry is enough) |
| Beta | Configuration options deemed stable. Breaking changes should be rare and ship with a migration path |
| Stable | General availability. Must stay compatible between minor versions except for critical security fixes |
| Deprecated | Planned for removal. Kept for at least two minor releases |
| Unmaintained | No active code owner. Removed from official distributions after 3 months unmaintained |
A component can be versioned 1.x only when it is stable for at least one signal.
Component Stability Table¶
Declared levels at v0.161.0 (core and contrib metadata.yaml). "Type" is the configuration key. A second name in parentheses is a deprecated alias that still works.
| Component | Type | Repo | Stability |
|---|---|---|---|
| OTLP receiver | otlp |
core | stable: traces, metrics, logs. alpha: profiles |
| OTLP gRPC exporter | otlp_grpc (otlp) |
core | stable: traces, metrics, logs. alpha: profiles |
| OTLP HTTP exporter | otlp_http (otlphttp) |
core | stable: traces, metrics, logs. alpha: profiles |
| Debug exporter | debug |
core | alpha: traces, metrics, logs, profiles |
| Batch processor | batch |
core | beta: traces, metrics, logs |
| Queue/batch processor | queue_batch |
core | development: all four signals. Not in any distribution yet |
| Memory limiter processor | memory_limiter |
core | beta: traces, metrics, logs. alpha: profiles |
| Memory limiter extension | memory_limiter |
core | beta |
| zPages extension | zpages |
core | beta |
| Forward connector | forward |
core | beta: same-signal. alpha: profiles |
| Load-balancing exporter | load_balancing (loadbalancing) |
contrib | beta: traces, logs. alpha: metrics |
| Tail sampling processor | tail_sampling |
contrib | beta: traces |
| Probabilistic sampler processor | probabilistic_sampler |
contrib | beta: traces. alpha: logs |
| Kubernetes attributes processor | k8s_attributes (k8sattributes) |
contrib | stable: logs, metrics, traces. development: profiles |
| Transform processor | transform |
contrib | beta: traces, metrics, logs. development: profiles |
| Filter processor | filter |
contrib | alpha: traces, metrics, logs. development: profiles |
| Resource detection processor | resource_detection (resourcedetection) |
contrib | beta: traces, metrics, logs |
| Attributes / resource processors | attributes / resource |
contrib | beta: traces, metrics, logs |
| Routing connector | routing |
contrib | alpha: same-signal |
| Span metrics connector | span_metrics (spanmetrics) |
contrib | alpha: traces to metrics |
| Service graph connector | service_graph (servicegraph) |
contrib | alpha: traces to metrics |
| Count / failover connectors | count / failover |
contrib | alpha |
| Prometheus receiver | prometheus |
contrib | beta: metrics |
| Filelog receiver | file_log (filelog) |
contrib | beta: logs |
| Host metrics receiver | host_metrics (hostmetrics) |
contrib | beta: metrics. development: logs |
| Kubelet stats receiver | kubelet_stats (kubeletstats) |
contrib | beta: metrics |
| Kafka receiver / exporter | kafka |
contrib | beta: traces, metrics, logs |
| Prometheus remote write exporter | prometheus_remote_write (prometheusremotewrite) |
contrib | beta: metrics |
| pprof receiver | pprof |
contrib | alpha: profiles |
| File storage extension | file_storage |
contrib | beta |
| Pebble tail storage extension | pebble_tail_storage |
contrib | alpha |
| Health check extension | health_check |
contrib | alpha |
| OpAMP extension | opamp |
contrib | alpha |
Component Type Renames¶
Contrib is moving component types to snake_case (tracking issue #45339). Old names stay as deprecated aliases unless noted.
| Old type | New type | Since |
|---|---|---|
otlp (exporter) |
otlp_grpc |
core v0.144.0 |
otlphttp |
otlp_http |
core v0.144.0 |
k8sattributes |
k8s_attributes |
v0.146.0 |
filelog |
file_log |
v0.149.0 |
hostmetrics |
host_metrics |
v0.151.0 |
spanmetrics / servicegraph |
span_metrics / service_graph |
v0.151.0 |
kubeletstats / metricstransform |
kubelet_stats / metrics_transform |
v0.152.0 |
loadbalancing |
load_balancing |
v0.153.0 |
resourcedetection |
resource_detection |
v0.153.0 |
prometheusremotewrite |
prometheus_remote_write |
v0.154.0 |
cumulativetodelta |
cumulative_to_delta |
v0.157.0 |
deltatocumulative / deltatorate |
delta_to_cumulative / delta_to_rate |
v0.158.0 |
sqlquery / azuremonitor (exporter) |
sql_query / azure_monitor |
v0.159.0 |
windowsperfcounters / icmpcheckreceiver |
windows_perf_counters / icmp_check |
v0.160.0 |
dynamic_sampling |
adaptive_tail_sampling |
v0.160.0, no alias |
Deprecations And Removals¶
| Item | Status | Replacement |
|---|---|---|
Routing processor (routing) |
Deprecated contrib v0.116.0, removed v0.133.0 | Routing connector |
Routing connector request context |
Deprecated v0.156.0 | otelcol.* OTTL paths |
| Batch processor | Still beta. Replacement exists but is development-stage | queue_batch processor (v0.158.0) or exporter-side sending_queue::batch |
service::telemetry::metrics::address |
Deprecated v0.111.0, ignored by default since v0.123.0 | service::telemetry::metrics::readers |
confighttp flat keepalive fields (idle_conn_timeout, max_idle_conns, disable_keep_alives, server idle_timeout, keep_alives_enabled) |
Deprecated v0.160.0 (warning, still work) | keepalive::* section |
| Legacy memory limiter metric names | Renamed v0.155.0 | otelcol_processor_memory_limiter_* |
service_name/service_instance_id/service_version labels on every internal metric |
Removed v0.149.0 | Join on target_info |
| SAPM exporter | Removed v0.148.0 | OTLP exporters |
| JMX receiver | Code removed v0.157.0 | TBD, see contrib issue #45740 |
| Mezmo exporter | Deprecated v0.158.0, removed v0.161.0 | OTLP/HTTP exporter |
kafkatopicsobserver extension |
Deprecated v0.152.0, dropped from contrib distribution v0.159.0 | Kafka receiver directly |
Tail sampling invert_match decisions |
Deprecated (gate processor.tailsamplingprocessor.disableinvertdecisions) |
drop and not policies |
Supervisor reports_remote_config |
Deprecated v0.161.0 | accepts_remote_config enables both capabilities |
Default Ports¶
| Port | Component | Default bind |
|---|---|---|
| 4317 | OTLP receiver, gRPC | localhost:4317 |
| 4318 | OTLP receiver, HTTP | localhost:4318 |
| 8888 | Internal telemetry, Prometheus pull reader | localhost:8888 since v0.111.0 (was :8888) |
| 13133 | health_check extension |
localhost:13133 |
| 55679 | zpages extension |
localhost:55679 |
| 1777 | pprof extension |
localhost:1777 |
Localhost defaults inside containers
Receivers and extensions bind to localhost by default. In a container or pod you must set endpoint: 0.0.0.0:<port> (or the pod IP) explicitly for other pods to reach them. The Helm chart's default config binds to ${env:MY_POD_IP} for this reason.
Internal Telemetry Settings¶
Key under service::telemetry |
Default | Notes |
|---|---|---|
metrics::level |
normal |
none, basic, normal, detailed |
metrics::readers |
Prometheus pull on localhost:8888 |
When you define readers yourself, without_type_suffix/without_units are no longer set for you |
metrics::views |
none | Added v0.123.0 |
logs::level |
INFO |
DEBUG, WARN, ERROR |
traces |
off | Experimental. OTLP exporter via processors[*]::batch::exporter::otlp |
resource::detection/development |
off | Experimental (v0.157.0). Detectors container, host, process, service |
Exporter Queue And Retry Defaults¶
From exporter/exporterhelper/README.md:
| Key | Default | Meaning |
|---|---|---|
retry_on_failure::enabled |
true |
|
retry_on_failure::initial_interval |
5s |
|
retry_on_failure::max_interval |
30s |
Backoff cap |
retry_on_failure::multiplier |
1.5 |
|
retry_on_failure::max_elapsed_time |
300s |
0 = retry forever |
sending_queue::enabled |
true |
|
sending_queue::num_consumers |
10 |
|
sending_queue::queue_size |
1000 |
Units set by sizer |
sending_queue::sizer |
requests |
requests, items, bytes (slowest) |
sending_queue::block_on_overflow |
false |
false = reject when full |
sending_queue::wait_for_result |
false |
|
sending_queue::storage |
none | Storage extension ID, enables the persistent queue |
sending_queue::batch |
disabled | batch: {} enables flush_timeout 200ms, min_size 8192, max_size 0, sizer items |
sending_queue::batch::partition::metadata_keys |
empty | Per-metadata batching (v0.147.0) |
timeout |
5s |
Per send attempt |
Processor And Extension Keys¶
| Component | Key | Default |
|---|---|---|
memory_limiter |
check_interval |
0s (must be set) |
memory_limiter |
limit_mib / limit_percentage |
one of them is required |
memory_limiter |
spike_limit_mib |
20% of limit_mib. Soft limit = limit_mib - spike_limit_mib |
batch |
send_batch_size / timeout / send_batch_max_size |
8192 / 200ms / 0 |
tail_sampling |
decision_wait |
30s |
tail_sampling |
num_traces |
50000 |
tail_sampling |
block_on_overflow |
false (option since v0.133.0) |
tail_sampling |
decision_cache::sampled_cache_size / non_sampled_cache_size |
0 (disabled) |
tail_sampling |
sampling_strategy |
trace-complete (alternative span-ingest) |
tail_sampling |
num_shards |
1, maximum 256. Not combinable with tail_storage |
tail_sampling |
tail_storage |
none. Needs gate processor.tailsamplingprocessor.tailstorageextension |
load_balancing |
routing_key |
traceID for traces, service for logs and metrics |
load_balancing |
resolver::dns::interval / timeout |
5s / 1s |
file_storage |
directory |
/var/lib/otelcol/file_storage (Linux) |
file_storage |
timeout |
1s |
file_storage |
max_size |
unlimited. Added v0.156.0 |
file_storage |
compaction::rebound_needed_threshold_mib / rebound_trigger_threshold_mib / check_interval |
100 / 10 / 5s |
pebble_tail_storage |
max_storage_size_mib |
unbounded. Added v0.159.0 |
Feature Gates Of Note¶
| Gate | Stage | Effect |
|---|---|---|
service.profilesSupport |
alpha (since v0.112.0) | Required to declare profiles pipelines |
service.AllowNoPipelines |
alpha | Start with zero pipelines |
service.partialReload / service.partialReloadReceivers |
alpha / beta (v0.157.0) | Restart only receivers on receiver-only config change |
telemetry.newPipelineTelemetry |
alpha (v0.123.0) | Component-identifying attributes on internal telemetry |
pkg.exporterhelper.queueBatchEnabled |
added v0.159.0 | Batching on by default in NewDefaultQueueConfig() |
processor.tailsamplingprocessor.tailstorageextension |
off by default | Allows tail_storage (for example Pebble) |
processor.tailsamplingprocessor.usetracestate |
alpha (v0.157.0) | Probabilistic policy honors W3C tracestate randomness |
Enable gates with --feature-gates=<id>[,<id>]. Prefix an ID with - to disable a beta gate.
Auth Extension Matrix¶
Authenticator types defined by the stable config/configauth and extension/extensionauth modules, and the contrib extensions that implement them:
| Direction | Authenticates | Contrib extensions (type, stability) |
|---|---|---|
| Server | Incoming requests (receivers) | basicauth (beta), bearertokenauth (beta), oidc (beta) |
| Client | Outgoing requests (exporters) | asapclient (beta), basicauth, bearertokenauth, oauth2client (beta), sigv4auth (beta) |
basicauth and bearertokenauth implement both directions. headers_setter (alpha) sets headers but is not an authenticator.
OpAMP Supervisor Capability Status¶
From the Supervisor README at v0.161.0:
| Capability | Status |
|---|---|
| AcceptsRemoteConfig, ReportsEffectiveConfig, ReportsRemoteConfig | Implemented. accepts_remote_config defaults to false |
| ReportsOwnTraces / Metrics / Logs | Implemented |
| AcceptsOpAMPConnectionSettings, AcceptsOtherConnectionSettings, AcceptsRestartCommand, ReportsAvailableComponents | Implemented |
| ReportsHealth | Implemented with caveats |
| AcceptsPackages, ReportsPackageStatuses | Not implemented. Enabling accepts_packages fails startup ("not yet fully implemented"). Tracked in contrib issue #47272 |
| ReportsStatus | Open (#38729) |
| Updating the Collector binary | Open (#33947). Groundwork (agent_binary, tar.gz archives) landed v0.159.0 |
Other Supervisor switches: agent::use_hup_config_reload (non-Windows only), agent::automatic_config_rollback (default off), startup fallback config until connected (v0.154.0).
Target Allocator Facts¶
| Fact | Value |
|---|---|
| Purpose | Discovers Prometheus scrape targets (including ServiceMonitor/PodMonitor CRs) and assigns them to Collector replicas, which pull their share over HTTP service discovery |
| Enabling | spec.targetAllocator.enabled: true on an OpenTelemetryCollector (mode: statefulset in the docs), or a separate TargetAllocator CR (opentelemetry.io/v1alpha1) linked with the label opentelemetry.io/target-allocator: <name> |
| Allocation strategies | consistent-hashing (default), least-weighted, per-node (DaemonSet only, optional fallback via allocation_strategy_config.per_node.fallback_strategy) |
| Filter strategies | relabel-config (default) or none (explicit none accepted since v0.159.0) |
| Receiver rewrite | The Operator rewrites the prometheus receiver to target_allocator: {endpoint, interval: 30s, collector_id: $POD_NAME} |
| mTLS | Per-CR spec.mtls. cert-manager by default. User-provided Secrets possible since v0.157.0 |
| Self-telemetry | Prometheus /metrics, and OTLP export since v0.157.0 |
Security Advisories Of Note¶
| CVE | Component | Fixed in | Severity |
|---|---|---|---|
| CVE-2026-55701 | GitHub receiver did not enforce required_headers on webhook requests |
contrib v0.151.0 | CVSS 6.9 (medium) per third-party trackers |
| CVE-2026-47256 | Sentry exporter path traversal via service.name in API URLs |
contrib v0.154.0 | CVSS 5.3 (medium) per third-party trackers |
The project's list of advisories is at opentelemetry.io/docs/security/cve. Both fixes are confirmed in the contrib CHANGELOG. Severity scores come from third-party trackers and are not re-verified here.
Builder Manifest Keys¶
| Key | Purpose |
|---|---|
dist::name, description, version, output_path, module |
Binary name, metadata, output directory, Go module path |
dist::debug_compilation |
Keep debug symbols (default strips with -s -w) |
dist::cgo_enabled |
Default false, matching official releases |
receivers, processors, exporters, extensions, connectors, providers, converters |
Lists of gomod entries (plus optional import, name, path) |
telemetry |
Telemetry provider module (added v0.146.0) |
replaces |
go.mod replace directives |
conf_resolver::default_uri_scheme |
For example env, so ${HOST} means ${env:HOST} |
| Flags | --config, --skip-generate, --skip-get-modules, --skip-compilation, --skip-strict-versioning (temporary), --ldflags, --gcflags |
Sources¶
- Core CHANGELOG and versions.yaml
- Contrib CHANGELOG
- Releases repo and its CHANGELOG
- Release process and schedule
- Component stability
- exporterhelper README, tailsamplingprocessor README, filestorage README, loadbalancingexporter README
- Internal telemetry docs
- Builder README
- OpAMP Supervisor README
- Target Allocator docs
- OpenTelemetry CVE list