Repository navigation
Releases: open-telemetry/opentelemetry-collector-contrib
Release list
v1.3.1/v0.164.1
This patched fixed an dependency issue with any component in contrib that depended on OTTL. See the v1.3.0/v0.164/0 Release Notes for full details on what was released. This version is use in the v0.164.0 release artifacts.
End User Changelog
🧰 Bug fixes 🧰
all: Fix modules requiring the nonexistent v1.2.0 ofpkg/ottlandprocessor/k8sattributesprocessor. (#52356)
API Changelog
v1.3.0/v0.164.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
Unmaintained Components
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
- exporter/logicmonitor
- exporter/azuredataexplorer
- receiver/flinkmetrics
End User Changelog
🛑 Breaking changes 🛑
-
connector/service_graph: Remove stable connector.servicegraph.virtualNode gate (#52239) -
exporter/prometheus: Always preserve leading and consecutive underscores in label names. (#50429)
Remove-pkg.translator.prometheus.PermissiveLabelSanitizationfrom--feature-gates; disabling this gate now causes a startup error. -
exporter/prometheus_remote_write: Always preserve leading and consecutive underscores in label names. (#50429)
Remove-pkg.translator.prometheus.PermissiveLabelSanitizationfrom--feature-gates; disabling this gate now causes a startup error. -
pkg/azurelogs: Promote thepkg.translator.azurelogs.EmitV1LogConventionsandpkg.translator.azurelogs.DontEmitV0LogConventionsfeature gates to beta. (#52096)
code.function.nameandcode.file.pathare now emitted instead ofcode.functionandcode.filepathby default.
The gates no longer control theevent.nameresource attribute, which is always emitted. -
pkg/coreinternal: Promote internal.coreinternal.goldendataset.DontEmitV0HTTPConventions and internal.coreinternal.goldendataset.EmitV1HTTPConventions feature gates to Beta (#45293, #45089)
Both feature gates should be promoted together as per RFC.
goldendataset now generates spans with user_agent.original, network.protocol.name,
network.protocol.version, client.address, and http.response.status_code (semconv v1.40.0)
by default, and no longer generates the deprecated http.user_agent, http.flavor
(semconv v1.19.0), http.client_ip, and http.status_code (semconv v1.25.0) attributes.
The http.status_code migration is now wired to these gates so that round-trip translation
stays consistent with pkg.translator.zipkin's HTTP semantic convention feature gates. -
pkg/ottl: Remove the stableottl.set.allowNilfeature gate. (#48714) -
pkg/translator/pprof: Return an error instead of panicking when profiling data contains invalid profile references. (#51908) -
pkg/zipkin: Promote "pkg.translator.zipkin.EmitV1HttpConventions", "pkg.translator.zipkin.DontEmitV0HttpConventions", "pkg.translator.zipkin.EmitV1ScopeConventions", and "pkg.translator.zipkin.DontEmitV0ScopeConventions" feature gates to Beta. (#50909)
This changes the default behavior to emit the new semantic convention attributes instead of the old deprecated ones.
The Zipkin translator will now usehttp.response.status_code(replacinghttp.status_code),otel.scope.name
(replacingotel.library.name), andotel.scope.version(replacingotel.library.version) by default when emitting spans. -
processor/drain: Reject invalid configurations at startup, including negativemax_clustersand empty attribute names. (#51677)
Startup validation now rejectsmax_node_children<= 0, negativemax_clusters, emptytemplate_attribute,
emptywildcards_attributewhenemit_wildcardsis set, and emptyparameter_key_prefixwhenmasking_rulesare configured. -
processor/filter: remove stable processor.filter.defaultErrorModeIgnore gate (#52238) -
receiver/file_log: Promote thefilelog.protobufCheckpointEncodingfeature gate to stable. Checkpoints are always written as protobuf. (#43266, #52037)
The feature gate can no longer be disabled and will be removed in v0.165.0.
Existing JSON checkpoints are still read and are rewritten as protobuf on the next save. -
receiver/kubelet_stats: Remove the deprecatedaws.volume.id,fs.type,gce.pd.name,glusterfs.endpoints.name,glusterfs.pathandpartitionresource attributes. (#40477) -
receiver/mongodb: Changemongodb.operation.latency.timefrom a gauge to a monotonic cumulative sum (#51909)
opLatencies.*.latencyis a cumulative total, so the metric is now a monotonic sum like every
other cumulative duration in the receiver. It isenabled: falseandstability: development. -
receiver/prometheus: Remove the stablereceiver.prometheusreceiver.IgnoreScopeInfoMetricfeature gate. (#47312)
🚩 Deprecations 🚩
exporter/azuredataexplorer: Mark component as unmaintained (#52055)exporter/logicmonitor: Mark component as unmaintained (#52152)extension/google_client_auth: Rename the googleclientauth extension to google_client_auth. The old name remains available as a deprecated alias. (#45339)processor/probabilistic_sampler: Add theotelcol_processor_probabilistic_sampler_count_spans_processedmetric and deprecateotelcol_processor_probabilistic_sampler_count_traces_sampledin favor of it. (#50954)
The deprecated metric remains available for compatibility.processor/transform: Deprecate theflatten_dataoption in favor of the newflatten.logoption. (#51766)
Replaceflatten_data: truewithflatten: {log: true}.flatten_datawill be removed in a future release.receiver/kafka: Deprecate the built-injaeger_protoandjaeger_jsonencodings in favour ofjaegerencodingextension. (#39113)receiver/kafka: Deprecatepartition_processing.max_buffered_batchesin favour ofpartition_processing.max_prefetch.batches. It will be removed in v0.166.0. (#52253)receiver/kafka: Deprecate the built-injsonlogs encoding in favour ofjsonlogencodingextension. (#39113)receiver/riak: Update the stability of the receiver frombetatounmaintained(#52051)
🚀 New components 🚀
-
extension/redis_fleet_tracker: Add the redis_fleet_tracker extension, which reports a collector fleet's live member count so adaptive_tail_sampling can treat goal_throughput as a fleet-wide budget. (#50577) -
processor/verify: Addverifyprocessor, a new processor that verifies RFC 8785 (JCS) canonical integrity attributes (audit.integrity.value) on log records using HMAC and/or certificate public keys. Designed as the verification counterpart tosigningprocessorfor the OpenTelemetry Audit Logging signal. (#51383)
This initial PR donates the component skeleton (config, factory, README). Concrete verification logic follows in a subsequent PR. -
receiver/gnmi: Introduce the gNMI receiver (#50848) -
receiver/nats: Add the NATS receiver to receive traces, metrics, and logs from a NATS server (skeleton; in development). (#50735)
💡 Enhancements 💡
-
cmd/opampsupervisor: Add anagent::stop_grace_periodconfig option to control how long the Supervisor waits for the Collector to exit after a graceful shutdown signal before forcibly killing it. (#50000)
Defaults to 10s when unset. -
exporter/awscloudwatchlogs: resolve {ClusterName} placeholder via k8s.cluster.name attribute (#51601) -
exporter/awss3: Addaccess_keyandsecret_keyoptions to configure static AWS credentials (#52140) -
exporter/awsxray: Add feature gates to migrate semantic conventions from v1.12.0 to v1.40.0 (#46537)
Four new alpha feature gates control the migration:exporter.awsxray.EmitV1HTTPNetworkConventions: reads HTTP/network span attributes using semconv v1.40.0 keys (e.g. http.request.method, server.address, server.port, client.address).exporter.awsxray.DontEmitV0HTTPNetworkConventions: stops reading deprecated v1.12.0 HTTP/network attribute keys. Requires EmitV1HTTPNetworkConventions to also be enabled.exporter.awsxray.EmitV1DBConventions: reads database span attributes using semconv v1.40.0 keys (db.namespace, db.system.name, db.query.text, user.name).exporter.awsxray.DontEmitV0DBConventions: stops reading deprecated v1.12.0 database attribute keys. Requires EmitV1DBConventions to also be enabled.
All gates default to disabled, preserving existing behavior. Enable the EmitV1 gate first for dual-read, then enable the DontEmitV0 gate once upstream instrumentation has migrated.
-
exporter/clickhouse: Added a Bloom Filter data skipping index (idx_event_name) to the EventName column with a 0.01 false positive rate and granularity 1. (#49310) -
exporter/elasticsearch: Additionally retry context deadlines that expire before the connection is ready, including DNS, TCP handshake, and TLS handshake timeouts. (#52102)
A context deadline after the connection is ready, including while the request is being written or while waiting for the response, is still not retried. -
exporter/elasticsearch: Add opt-intelemetry::include_destination_indexto add the destination index as an attribute to theotelcol.elasticsearch.docs.processedmetric (#52108) -
exporter/elasticsearch: Convert explicit bounds OTLP histograms to exponential histograms (#52113)
In OTel mapping mode, explicit-bounds histograms are stored as the nativeexponential_histogramfield when
connected to Elasticsearch 9.4.0 or later; setversion_detection.enabled: falseto keep T-Digest histograms. -
extension/json_log_encoding: Set the observed timestamp of unmarshaled log records to the time the payload was decoded. (#39113) -
extension/opamp: Report component status attributes in OpAMP health messages. (#50330) -
extension/opamp: Addreports_heartbeatcapability, enabled by default, to allow the OpAMP server to configure the agent's heartbeat interval (#51427) -
extension/redis_storage: AddIncrementByandBatchIncrementByfor atomic integer counters shared ...
v1.2.0/v0.163.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
cmd/opampsupervisor: The supervisor now fails to start when the deprecatedreports_remote_configcapability option is set totrue. (#49763)
Removereports_remote_configfrom the supervisor config;accepts_remote_configenables both the AcceptsRemoteConfig and ReportsRemoteConfig OpAMP capabilities. The option will be removed in v0.165.0. -
connector/failover: Reject emptycondition.error.containsvalues and fail over only for matching downstream errors (#44518)
condition.error.containsnow requires a list of non-empty strings. -
exporter/signalfx: Exclude generatedcontainer_cpu_utilizationmetric by default (#51906)
This metric has been deprecated in favor ofcontainer.cpu.usage. Ifcontainer_cpu_utilization
is still required, please add it to the exporter'sinclude_metricsconfiguration option as shown below.signalfx: include_metrics: - metric_name: container_cpu_utilization -
extension/google_cloud_logentry_encoding: Fix Cloud DNS query logs failing to decode whenvmInstanceIdis in exponent notation.host.idis now a string taken fromvmInstanceIdStringinstead of an int taken fromvmInstanceId. (#51552) -
processor/redaction: Keep every redaction summary attribute intact when data re-enters the processor (#50770)
Only five of the fourteen summary attributes the processor writes survived a second redaction processor. When data
passed through one,redaction.allowed.keys,redaction.allowed.countand the sevenredaction.body.*attributes
were treated as unknown keys, deleted, and reported inredaction.redacted.keys.The processor now treats all fourteen as its own bookkeeping rather than as user data, so they are no longer deleted,
masked, obfuscated or counted as redacted, and the summary accumulates across chained processors as intended.
Previously ablocked_key_patternsorblocked_valuesrule matching one of these attributes replaced the summary
with a masked value, and withredact_all_typesenabled it rewrote the*.countintegers as strings, which made the
running totals read back as zero at the next hop.Chaining two processors also reported the same attribute more than once: the allowed and ignored summaries
describe the record as it currently stands, which every processor re-derives in full, so merging them with an
upstream value counted one attribute twice.redaction.allowed.keysreademail,emailwith
redaction.allowed.countof 2 for a single allowed attribute. Those two outcomes now replace the upstream
value, while the redacted and masked outcomes keep accumulating, because a removed key and an already masked
value cannot be detected again.Two behaviour changes come with this, both of which can affect an existing chained configuration.
A processor whose
summaryis notdebugorinfonow claims no ownership of a summary it finds, so the ordinary
allow list decides whether it survives. This lets a strict egress processor strip an upstream audit trail, which it
could not do before. It also means a downstream processor withallow_all_keys: falsenow removes the five summary
attributes it previously kept unconditionally, unless they are named inallowed_keysorallow_all_keysis set.
summaryis unset by default, which counts as silent, so a chained configuration that never sets it is affected.A key inside a log body named after a summary attribute is now redacted like any other unknown key. The processor
only ever writes its summary to the record attributes, so such a key in a body carries user data. -
receiver/postgresql: Set the default scrape timeout to 60s to cancel blocked PostgreSQL queries. (#50757)
Increasetimeoutfor longer scrapes, or settimeout: 0to restore the unbounded behavior. -
receiver/prometheus_simple: Remove the long-deprecatedtls_enabledandtls_configsettings; usetlsinstead (#51895)
tls_enabled/tls_configwere deprecated in v0.55.0 in favor of the standard
tlsblock (confighttp's TLS settings). Besides being long overdue, keeping both
was a footgun: settingtls_enabled: truesilently overrode anytlsblock.
Migratetls_config(ca_file/cert_file/key_file/insecure_skip_verify) to
the equivalent fields undertls. -
receiver/sql_server: Performance counters read from the SQL ServerDatabasesobject on a direct database connection now carry thesqlserver.database.nameresource attribute and no longer emit an unlabeled_Totalaggregate, which changes the series identity ofsqlserver.database.backup_or_restore.rate. (#51384)
sqlserver.database.backup_or_restore.ratesplits from one series into one per database, and the
unlabeled series it previously reported is gone. Aggregate acrosssqlserver.database.nameinstead.
This brings the direct database connection in line with the Windows performance counter path, which
already discards the aggregate instance before recording.
🚩 Deprecations 🚩
receiver/sql_server: Rename thesqlserverreceiver tosql_server. The oldsqlservertype remains available as a deprecated alias. (#45339)
🚀 New components 🚀
processor/adaptive_tail_sampling: Promote the adaptive_tail_sampling processor to alpha stability and include it in the contrib distribution. (#49311)processor/partitioning: Add the initial skeleton for the partitioning processor. (#39199)processor/rolling_span_latency: Promote the rolling_span_latency processor to alpha stability and include it in the contrib distribution. (#50260)
💡 Enhancements 💡
-
connector/routing: Validate OTTL conditions and statements during configuration. (#51748) -
connector/service_graph: Recognize current semantic-convention attributes (peer.service.name,db.namespace,db.system.name) alongside legacy keys when deriving peer and database-name dimensions. (#22095) -
exporter/cassandra: Add configuration validation and error case tests. (#51730) -
exporter/clickhouse: Adddatabase_engineconfig to set theENGINEused when creating the database, such asReplicated. (#51513)
Whendatabase_engine.nameisReplicated,ON CLUSTERis only applied to theCREATE DATABASEstatement. -
exporter/datadog: Mark exporter/datadogexporter as unsupported on freebsd/amd64. (#15781) -
exporter/datadog: Move theexporter.datadogexporter.AddUnitsfeature gate to beta. Metric units are now sent to Datadog by default. (#15280) -
exporter/elasticsearch: Store OTLP exponential histograms in Elasticsearch's native exponential_histogram field (#51429)
Enabled automatically in OTel mapping mode when connected to Elasticsearch 9.3.0 or later; disable viaversion_detection.enabled: false. -
exporter/elasticsearch: Log the connected Elasticsearch version and build flavor at startup (#51541)
Addsversion_detection(enabled by default); setversion_detection.enabled: falseto opt out. -
exporter/kafka: Add the trace context to Kafka record headers using the propagators configured inservice::telemetry::traces::propagators. (#51078) -
exporter/nats: Implement core NATS publishing, so traces, metrics, and logs are published to per-signal subjects derived from OTTL value expressions. (#50735)
JetStream durable publishing is not yet implemented; a configuredjetstreamblock is rejected at startup until it lands. -
exporter/splunk_hec: Define the exporter's heartbeat metrics in metadata.yaml and generate them via mdatagen. (#49009) -
extension/basicauth: Support sourcing credentials from secret provider extensions, with rotation that does not restart the collector. (#48277)
Configure withhtpasswd.secret_provider(server) orclient_auth.secret_provider(client).
The referenced extension must implement theSecretProviderinterface (GetSecretandOnChange). -
extension/datadog: Mark extension/datadogextension as unsupported on freebsd/amd64. (#15781) -
extension/opamp: Add asocketoption underserver.wsandserver.httpto dial the OpAMP server over a Unix domain socket (transport: unix) or Windows named pipe (transport: npipe). (#50603)
Whensocketis set, theendpointonly supplies the URL scheme, request path, and Host
header; its host and port are ignored. -
extension/pebble_tail_storage: Addon_read_errorto choose between dropping a trace or returning the readable part when stored batches cannot be read or decoded. (#49906)
The default isdrop_trace. Take deletes the stored trace and returns an error, and the tail sampling processor drops the trace without a sampling decision.
Seton_read_error: return_partialto keep the previous best-effort behavior, where Take returns the batches that could still be read.
Two new metrics,otelcol_extension_pebble_tail_storage_read_error_trace_dropsandotelcol_extension_pebble_tail_storage_read_error_partial_returns, count which policy ran. -
internal/kafka: Reuse cached AWS credentials acrossAWS_MSK_IAM_OAUTHBEARERtoken generations instead of resolving them on every SASL authentication. (#50038) -
pkg/ottl: Add thepkg.ottl.functions.enableExperimentalfeature gate, which must be enabled to use experimental OTTL functions. (#51564) -
pkg/ottl: Allowkeep_keysto accept slice values from paths and converter expressions when thepkg.ottl.functions.enableDynamicSliceArgumentsfeature gate is enabled. (#45980) -
pkg/ottl: Improve OTTL parse error diagnostics by reporting the line and column of the input where available. (#51680)
Not all parse errors carry a position: errors that aggregate multiple statem...
v1.1.0/v0.162.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
Unmaintained Components
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
End User Changelog
🛑 Breaking changes 🛑
-
all: Remove the wavefront receiver after a period of deprecation (#51397) -
connector/signal_to_metrics: The default error mode has been changed frompropagatetoignoreto ensure valid OTLP payloads are not dropped (#48419) -
exporter/elasticsearch: Remove the deprecatedflushandnum_workersconfiguration settings. (#42718)
Migratenum_workerstosending_queue::num_consumers,flush::intervalto
sending_queue::batch::flush_timeout, andflush::bytesto
sending_queue::batch::max_sizewithsending_queue::batch::sizerset tobytes.
This also removesConfig.NumWorkers,Config.Flush, andFlushSettingsfrom
the exported Go API. -
exporter/elasticsearch: Ingest OTel profiles as Elasticsearch (9.6.0) datastreams (#50589)
Inotelmapping mode, profiling signals are now written to OTel-native datastreams
(e.g.profiling-events-all.otel-default) that require Elasticsearch 9.6.0 or later.
Sending profiles to an older cluster will result inindex_not_found_exceptionerrors and data loss.
Users on Elasticsearch < 9.6.0 must restrict the exporter to ECS mode viamapping.allowed_modes: [ecs]. -
exporter/elasticsearch: Move OTel profiling serializer toecsserializerpackage and wireecsmapping mode to use it for profiles. (#50589) -
pkg/ottl: Remove the stableottl.PanicDuplicateNameandottl.contexts.enableOTelColContextfeature gates. (#44630, #46437) -
pkg/prometheus: Promote the pkg.translator.prometheus.PermissiveLabelSanitization feature gate from alpha to beta, enabling it by default. (#50429)
Labels starting with a single underscore (e.g._foo) will no longer be
prefixed withkey_by default. To restore the previous behavior, disable the
feature gate:--feature-gates=-pkg.translator.prometheus.PermissiveLabelSanitization. -
processor/adaptive_tail_sampling: Add explicit root-scoped fingerprint selectors (root.resource.,root.scope.,root.span.,root.any.) and requireroot.to name an origin. (#51304)
root.is now a position prefix that composes with theresource,scope,spanandanyorigins, so a
fingerprint can read the root span's resource-level attributes (root.resource.attributes["service.name"]) or
their union (root.any.attributes[...]). Bareroot.attributes["<name>"]no longer parses; it previously read
only the root span's span attributes, so resource attributes such asservice.namecame back<missing>.
Migrateroot.attributes[...]toroot.span.attributes[...]for the same behaviour, or toroot.resource./
root.any.to reach the attributes that were unreachable before. -
processor/cardinality_guardian: move units to singular form (#45270) -
processor/signing: Wrap attribute scalar values in type-tagged objects ({"intValue":"…"},{"stringValue":"…"}, etc.) to eliminate scalar type collisions in the JCS-canonical signed payload. (#50884)
Previously,PutInt("k", 123)andPutStr("k", "123")produced identical
canonical JSON, so one signature covered both values. Each scalar type is now
wrapped in a single-key object keyed by type name (matching OTLP/JSON
conventions), making every type distinct. Existing signatures are invalidated
by this change.
SeverityNumberandSeverityTextare no longer included in the signed
payload; the audit logging spec marks them as SHOULD NOT. -
processor/signing: Adds OpenBAO and Kubernetes Secrets as newKeyMaterialProvider options to the signing processor. (#50079, #51055)
Additionally, supports a Kubernetes Secret, or an OpenBao/Vault
KV secret. Setsaudit.integrity.signer = "collector"to indicate the Tier-2
Collector produced the integrity proof. -
processor/transform: Remove the stableprocessor.transform.defaultErrorModeIgnorefeature gate. (#51242) -
receiver/kafka: Change the default formetadata::retry::maxfrom 3 to 20 to match franz-go's default. (#50116)
The field was unwired since the migration to franz-go, so every collector has effectively been
running with franz-go's default of 20. The new default preserves that behavior now that the
field is applied. Only configurations that setmetadata::retry::maxexplicitly change
behavior: the configured value is now honored. -
receiver/kafka_metrics: Change the default formetadata::retry::maxfrom 3 to 20 to match franz-go's default. (#50116)
The field was unwired since the migration to franz-go, so every collector has effectively been
running with franz-go's default of 20. The new default preserves that behavior now that the
field is applied. Only configurations that setmetadata::retry::maxexplicitly change
behavior: the configured value is now honored. -
receiver/prometheus: Promote thereceiver.prometheusreceiver.IgnoreScopeInfoMetricfeature gate to stable (#47312)
Theotel_scope_infometric is no longer used for scope attribute extraction and is
converted like any other metric. Scope attributes are populated fromotel_scope_-prefixed
metric labels instead. The feature gate can no longer be disabled and will be removed in v0.164.0.
🚩 Deprecations 🚩
-
connector/grafana_cloud: Rename component type from "grafanacloud" to "grafana_cloud" to follow snake_case naming convention. The old name is kept as a deprecated alias. (#48017) -
receiver/aws_s3: Renameawss3receiver toaws_s3with deprecated aliasawss3(#45339) -
receiver/kafka: Deprecatemetadata::full, which became a no-op after the migration to franz-go. (#50116)
franz-go has no full-metadata mode; it only fetches metadata for the topics the receiver
consumes from. The field is still accepted in configuration for backwards compatibility, but has
no effect at runtime. It will be removed in a future release. -
receiver/kafka_metrics: Deprecatemetadata::full, which became a no-op after the migration to franz-go. (#50116)
franz-go has no full-metadata mode; it only fetches metadata for the topics the scrapers query.
The field is still accepted in configuration for backwards compatibility, but has no effect at
runtime. It will be removed in a future release. -
receiver/kubelet_stats: Deprecatek8s.pod.cpu.node.utilization,k8s.pod.memory.node.utilization,k8s.container.cpu.node.utilization, andk8s.container.memory.node.utilizationmetrics. (#50857)
These metrics are deprecated following the decision in the K8s SemConv SIG
(open-telemetry/semantic-conventions#2768).
They will be removed in a future release.
🚀 New components 🚀
exporter/nats: Add the NATS exporter to export traces, metrics, and logs to a NATS server (skeleton; in development). (#39540)extension/file_telemetry_policy: Add filetelemetrypolicy extension skeleton. (#50965)extension/sd_notify: Promotesd_notifyextension stability from development to alpha. (#49607)processor/telemetry_policy: Add the initial skeleton for the telemetry_policy processor. (#50965)
💡 Enhancements 💡
cmd/opampsupervisor: Enable keepalive by default (#51159)connector/exceptions: Addlogs_to_logsandlogs_to_metricssupport, and fix thetraces_to_logsedge to emit spec-conformant exception LogEvents (event.name, requiredexception.*attributes, and full resource attribute propagation). (#50900)connector/failover: Introducescondition.error.containswhich allows the connector to failover based on error type. (#44518)exporter/azure_monitor: Enable keepalive by default (#51178)exporter/coralogix: Enable keepalive by default (#51181)exporter/datadog: Emitotel.datadog_exporter.metrics.running.azurecontainerappstagged withreplica,name,subscription_id, andresource_groupfor Azure Container Apps workloads sending metrics via the Datadog exporter. (#49615)exporter/datadog: Emit running metrics for Azure App Services, Azure Functions, Cloud Run services, and Cloud Run Functions workloads sending metrics through the Datadog exporter. (#51501)exporter/honeycomb_marker: Enable keepalive by default (#51180)exporter/load_balancing: Addrandomnessrouting key that routes spans by the OTel tracestate randomness value (ot=rv), falling back to trace ID randomness when absent, so traces sharing an explicit randomness value are routed to the same backend. (#49660)exporter/logicmonitor: Enable keepalive by default (#49316)exporter/sematext: Enable keepalive by default (#49316)exporter/syslog: Add support for exporting to Unix datagram sockets such as/dev/log. (#50867)extension/awsproxy: Enable keepalive by default (#49316)extension/datadog: Enable keepalive by default (#49316)extension/health_check: Enable keepalive by default (#51175)extension/healthcheckv2: Enable keepalive by default (#51175)extension/http_forwarder: Enable keepalive by default (#51182)extension/jaegerremotesampling: Enable keepalive by default (#49316)extension/json_log_encoding: Add the opt-inparse_intssetting to preserv...
v1.0.0/v0.161.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
all: Remove the deprecated mezmo exporter. (#49953)
Use the OTLP/HTTP exporter to send logs directly to Mezmo instead. See
https://docs.mezmo.com/telemetry-pipelines/otel-collector and
https://docs.mezmo.com/telemetry-pipelines/open-telemetry-source for migration guidance. -
cmd/opampsupervisor: Deprecate thereports_remote_configcapability config option. Theaccepts_remote_configoption now enables both the AcceptsRemoteConfig and ReportsRemoteConfig OpAMP capabilities. (#49763)
reports_remote_configis still accepted but has no effect. The supervisor logs an error at startup when it is set totrue.
Configurations withaccepts_remote_config: trueandreports_remote_config: falsenow report remote config status.
The option will fail startup in v0.163.0 and be removed in v0.165.0. -
extension/azure_encoding: Promote extension.azureencoding.DontEmitV0LogConventions and extension.azureencoding.EmitV1LogConventions feature gates to Beta (#50885)
The gates are now enabled by default, so Azure log records emit the v1 semconv attribute exception.message instead of the deprecated v1.39.0 attribute error.message. Disable both gates to restore the previous behavior. -
extension/google_cloud_logentry_encoding: Promote extension.encoding.googlecloudlogentryencoding.DontEmitV0RPCConventions feature gate to Beta (#50879)
The gate is now enabled by default, so the audit log parser no longer emits the deprecated semconv v1.38.0 attributes rpc.jsonrpc.error_code and rpc.jsonrpc.error_message. It can be disabled to restore the previous behavior. -
pkg/coreinternal: Promote internal.coreinternal.goldendataset.DontEmitV0MessagingConventions and internal.coreinternal.goldendataset.EmitV1MessagingConventions feature gates to Beta (#45077)
Both feature gates should be promoted together as per RFC.
goldendataset now generates spans with messaging.destination.name (semconv v1.40.0) by default,
and no longer generates the deprecated messaging.destination (semconv v1.16.0) and
messaging.destination.kind (semconv v1.19.0) attributes. -
pkg/faro: Promotepkg.translator.faro.EmitV1DeploymentEnvironmentConventionsandpkg.translator.faro.DontEmitV0DeploymentEnvironmentConventionsfeature gates to beta. (#45074)
Make faroreceiver emit deployment.environment.name instead of deployment.environment resource attribute by default. -
pkg/kafka/configkafka: Reject configurations that set bothauth.saslandauth.kerberos. (#50748) -
pkg/ottl: Promote theottl.PanicDuplicateNamefeature gate to stable. (#50873) -
pkg/ottl: Remove the deprecatedBase64Decodeconverter. Use theDecodeconverter with thebase64encoding instead. (#50875) -
pkg/ottl: Promote theottl.set.allowNilfeature gate to beta, enabling it by default. (#49741)
When enabled, thesetfunction passesnilvalues directly to the target instead of treating them as a no-op. -
processor/k8s_attributes: Promote logs, metrics, and traces signals from beta to stable. (#49152)
Promote the following feature gates from alpha to beta (enabled by default):processor.k8sattributes.EmitV1K8sConventions: emits stable semconv attribute names (e.g.k8s.pod.label.*singular form).processor.k8sattributes.DontEmitV0K8sConventions: disables legacy semconv attribute names (e.g.k8s.pod.labels.*plural form).
Users relying on the legacy names should disable these gates or migrate to the stable names.
It is advised that dual emission is used for the migration period. This can be achieved through the feature gates:
--feature-gates=-processor.k8sattributes.DontEmitV0K8sConventions,processor.k8sattributes.EmitV1K8sConventions.
More information can be found at the respective documentation section.
-
processor/signing: Include the log record body in the signed payload whatever its type. Previously only a string body was signed, so a record with a structured body and a record with no body produced identical canonical bytes and shared a signature. (#50911)
The body is now routed through the samevalueToInterfaceconversion as
attributes, which handles everypcommon.Valuetype, enforces the existing
nesting depth cap, and preserves the UTF-8 validation that previously guarded
the string-only path. An unset body is still omitted rather than encoded as
null, so records without a body are unaffected.This changes the canonical form for any record carrying a non-string body, so
signatures produced by earlier versions over such records will not reproduce.Two new failure modes follow from the body no longer being discarded: a record
whose structured body pushes the canonical payload past the 2 MiB limit, or
whose body nests deeper than 128 levels, now fails to sign where it previously
signed with the body silently omitted. -
receiver/kubelet_stats: Promote thereceiver.kubeletstats.cpuUsageScrapeBasedfeature gate to beta (enabled by default). (#49477)
container.cpu.usage,k8s.pod.cpu.usageandk8s.node.cpu.usage(and the cpu utilization
metrics derived from them) are now calculated as the rate of the corresponding*.cpu.time
counter between consecutive scrapes, instead of being read from the kubelet'sUsageNanoCores
value. As a result these metrics are not reported on the first scrape after startup.
To restore the previous behavior, run the collector with
--feature-gates=-receiver.kubeletstats.cpuUsageScrapeBased. -
receiver/sqlserver: Removeserver.addressandserver.portfromdb.server.top_querylog record attributes
(#50384)
Removeserver.addressandserver.portfromdb.server.top_querylog record attributes as they duplicate the resource-level attributes and cause inconsistency when overridden via a processor. Both attributes are now enabled by default at the resource level. Thereceiver.sqlserver.RemoveServerResourceAttributefeature gate has been removed.
🚀 New components 🚀
extension/sd_notify: Prepare the initial implementation forsd_notifyextension. (#49607)processor/rolling_span_latency: Add rollingspanlatencyprocessor. (#50260)processor/signing: Addsigningprocessorimplementation — computes RFC 8785 (JCS) canonical hash and signs each log record, storing the base64-encoded signature asaudit.integrity.valueand settingaudit.integrity.algorithmandaudit.integrity.certificateas resource attributes. Supports RS256, RS512, ES256, EdDSA, and HMAC-SHA256. (#50079, #50080)
Key material can be loaded from a file or environment variables (PR 2a), with Kubernetes Secret and OpenBao support to follow.
💡 Enhancements 💡
-
exporter/datadog: Thecontainer.image.tagsattribute is now mapped to theimage_tagattribute (#50864)
The Datadog exporter and connector already recognize the deprecatedcontainer.image.tagresource attribute
and map it to the Datadogimage_tagcontainer tag.
They now also recognize the newercontainer.image.tagsconvention.
For now, only the first element of the array attribute will be extracted. -
extension/opamp: Add an opt-inreports_raw_configsetting to additionally report the raw, unexpanded configuration alongside the effective configuration (#44341)
Whenreports_raw_configis enabled (default: false, and requires the
reports_effective_configcapability), the extension reports the raw
configuration as authored, before environment variable and other provider
references are expanded, under therawkey of the effective config map. The
fully expanded effective configuration is unchanged and remains under the
""(empty) key. This is disabled by default because raw configuration files
may contain secrets written directly into them. Values sourced from provider
references such as${env:TOKEN}retain their unexpanded form in the raw
configuration, so they are not exposed, and fields using types meant for
opaque information (such asconfigopaque.String, commonly used for password
fields) are redacted; consult your components' documentation or source to
verify which fields are automatically redacted. -
internal/healthcheck: Migrate to NotifyConfigSnapshot (#50924) -
pkg/fileconsumer: Move filelog.mtimeSortType featuregate to beta (#46635) -
pkg/ottl: Promote theottl.contexts.enableOTelColContextfeature gate to stable. (#46437)
Theotelcolcontext is now always available and the feature gate can no longer be disabled. -
pkg/ottl: AllowConcatto accept slice values produced by paths and converter expressions. (#27821, #38690) -
pkg/pdatatest: Add adouble_value/precision<n>operator topmetricassert, comparing double datapoint values rounded to n decimal places (#48441)
Mirrorspmetrictest'sIgnoreMetricFloatPrecisionfor assertion snapshots.
nmust be between 0 and 15, and the operator cannot be combined with an
exactdouble_valueon the same datapoint. -
pkg/semconvtest: Pin the default Weaver image version instead of floating on the latest tag (#50915)
Use WithVersion to select a different version, including latest. -
pkg/stanza: Add optional server authenticator support to thetcp_inputoperator via a newauthconfiguration block. (#49339)
Whenauth.authenticatorreferences a server auth extension, thetcp_inputoperator authenticates each
accepted connection before reading logs, ...
v0.160.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
all: Increase minimum Go version to 1.26 (#50394) -
exporter/kafka: Removes the deprecated auth.tls and auth.plain_text configurations. (#50202) -
exporter/signalfx: Datapoints that fail validation are no longer dropped in the exporter. This may increase the ingestsf.org.numDatapointsDroppedInvalidorg metric. No action required; (#50011)
Previously, the SignalFx exporter dropped datapoints with an invalid metric name, dimension name, dimension value, or number of
dimensions before sending them to the backend. The backend already enforces the same constraints and drops offending datapoints at
ingest, so this exporter-side enforcement was redundant. With this change, the exporter no longer drops these datapoints itself and
only logs a debug message; the backend will now drop them. As a result, these datapoints now count toward
sf.org.numDatapointsDroppedInvalid. -
pkg/kafka/configkafka: Remove all previously deprecated Kafka client configuration options. (#50381)
The following deprecated options are no longer accepted:resolve_canonical_bootstrap_servers_only(no-op since franz-go migration)auth.sasl.version(no-op since franz-go migration)group_rebalance_strategy(usegroup_rebalance_strategiesinstead)
-
processor/adaptive_tail_sampling: Restructure sampler configuration around intent-based types with an optional algorithm field, and standardise trace/span terminology (#49311)
Sampler types are renamed to state intent:deterministicis nowprobabilistic
(matching the probabilistic_sampler processor; same hash-consistent fixed fraction),
ema_dynamicis nowadaptive_percentage, andema_throughput/windowed_throughput
merge intoadaptive_throughputwith an optionalalgorithmfield (ema, the default,
orwindowed). Goal fields are renamed to match:goal_sampling_percentageis now
goal_percentageandgoal_throughput_per_secis nowgoal_throughput(still spans
per second). Docs now state the volume model explicitly: decisions are per trace,
volume is measured in spans. Refinery migration mapping is included in the README. -
processor/adaptive_tail_sampling: Require fingerprint_attributes entries to be scoped attribute selectors (#49311)
Entries now have the form<scope>.attributes["<name>"]where scope is one of
resource, scope, span, root, or any. The resource/scope/span prefixes match OTTL's
span-context path names; root reads from spans matching the configured
root_span_condition and any searches resource, scope, and span attributes. Bare
attribute names are rejected at validation with an error suggesting the scoped
form. Migrating a bare name: use the scope the attribute actually lives at
(e.g. resource.attributes["service.name"]), or any.attributes[""] to keep
search-everywhere behaviour (which now also includes instrumentation-scope
attributes). -
processor/adaptive_tail_sampling: Rename thedynamic_samplingprocessor toadaptive_tail_sampling. There is no alias, the old name stops working. (#50367)
The rename covers every surface that carried the old name:
the config id (dynamic_sampling->adaptive_tail_sampling), the sampler types
(dynamic_percentage->adaptive_percentage,dynamic_throughput->adaptive_throughput),
the metric prefix (otelcol_processor_dynamic_sampling_*->otelcol_processor_adaptive_tail_sampling_*),
the span attribute namespace (otelcol.processor.dynamic_sampling.*->otelcol.processor.adaptive_tail_sampling.*),
and the Go module path (processor/dynamicsamplingprocessor->processor/adaptivetailsamplingprocessor). -
processor/adaptive_tail_sampling: Rename the samplerkey_attributesfield tofingerprint_attributes(#49311)
The fingerprint names the attributes that identify what kind of trace this is for
sampling purposes. Semantics are unchanged: values are collected from resource
attributes and from every span of the accumulated trace. The README documents the
collection model and separators, and adds guidance on choosing fingerprint
attributes that classify traffic rather than identify individual requests. -
processor/k8s_attributes: Promoteprocessor.k8sattributes.telemetry.*feature gates from alpha to beta (enabled by default). (#45871)
The following feature gates are now enabled by default:processor.k8sattributes.telemetry.enableNewFormatMetrics: enables new-format internal telemetry metrics.processor.k8sattributes.telemetry.disableOldFormatMetrics: disables old-format internal telemetry metrics.
Users relying on the old-format metrics should migrate to the new format before upgrading.
-
processor/k8s_attributes: Remove the deprecateddeployment_name_from_replicasetoption. (#45871)
Thedeployment_name_from_replicasetkey must be removed from all configs entirely.
Because confmap rejects unknown keys, any config that still contains this setting — whether
set totrueorfalse— will cause a hard startup failure.
Deployment names are always derived from the ReplicaSet name heuristic; the ReplicaSet
informer still runs whenk8s.deployment.uidis enabled or deployment/replicaset
labels/annotations are extracted. Users that had this setting asfalsecan get the same
informer-based behaviour by following the respective documentation
section. -
receiver/systemd: Add metrics for services' memory current and peak memory usage. (#50035)
🚩 Deprecations 🚩
-
exporter/awsemf: Deprecate legacyenabledandexclude_service_attributesfields inresource_to_telemetry_conversionin favor ofincludedandexcludedpatterns. (#48861)
Introduces theexporter.awsemf.DisableLegacyResourceToTelemetryConversionfeature gate to disable the legacy fields. When migrating fromenabled: true, setincluded: ["*"]. -
exporter/prometheus: Deprecateresource_to_telemetry_conversionin favor ofresource_constant_labelsand add feature gateexporter.prometheus.DisableResourceToTelemetryConversion. (#48861) -
exporter/prometheus_remote_write: Deprecateresource_to_telemetry_conversionin favor ofresource_constant_labelsand add feature gateexporter.prometheusremotewrite.DisableResourceToTelemetryConversion. (#48862) -
receiver/icmp_check: Renameicmpcheckreceiverreceiver toicmp_checkwith deprecated aliasicmpcheckreceiver(#45339) -
receiver/windows_perf_counters: Rename the 'windowsperfcounters' receiver to 'windows_perf_counters'. The old 'windowsperfcounters' type remains available as a deprecated alias. (#45339)
🚀 New components 🚀
processor/signing: Addsigningprocessor, a new processor that computes a RFC 8785 (JCS) canonical hash and signs each log record, storing the base64-encoded signature asaudit.integrity.valueand settingaudit.integrity.algorithmandaudit.integrity.certificateas resource attributes. Supports RS256, RS512, ES256, EdDSA, and HMAC-SHA256. Designed for use with the OpenTelemetry Audit Logging signal to provide tamper-evident audit trails. (#50079, #50080)
Key material can be loaded from a file, environment variables, a Kubernetes Secret, or an OpenBao (Vault-compatible) secret engine.
💡 Enhancements 💡
-
cmd/opampsupervisor: Add support fortelemetry.resource.detection/developmentin OpAMP Supervisor telemetry. (#45116)
This follows the OpenTelemetry configuration schema by treating
telemetry.resource.detection/development.detectorsas detector selection.
Currently supported detector entries arecontainer,host,process, andservice.
See the OpenTelemetry Configuration Go support table and search for
ExperimentalResourceDetectorfor current detector support:
https://github.com/open-telemetry/opentelemetry-configuration/blob/main/language-support-status.md#goExample:
telemetry:
resource:
attributes:
- name: foo
value: bar
detection/development:
detectors:
- host: {} -
exporter/awss3: Honor the S3 client's request checksum calculation setting (including theAWS_REQUEST_CHECKSUM_CALCULATIONenvironment variable) when uploading objects. (#50184)
The transfer manager previously always defaulted to calculating a CRC32 checksum, which is sent as
an aws-chunked trailer that some S3-compatible backends reject. It now inherits the setting from the
configured S3 client. -
exporter/kafka: Allow sending more than one signal to the same Kafka topic withsignal_header. (#50244)
Setsignal_header: trueand point each signal'stopicat the same name. You can
enable the setting while topics stay separate. Existing receivers ignore the extra
header, so current per-signal topics keep working. Do not write mixed signals to a
receiver that does not havesignal_headerenabled. While this option is on,
otelcol.signalcannot be set inrecord_headersorinclude_metadata_keys. -
exporter/load_balancing: Avoid quadratic re-hashing when assembling per-endpoint metric batches, most visible with the streamID routing key on high-cardinality workloads. (#49725)
Merging N routed batches into an endpoint's payload re-computed the identity hash of every
already-merged ResourceMetrics/ScopeMetrics/Metric on each merge, making a ConsumeMetri...
v0.159.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
Unmaintained Components
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
- receiver/huaweicloudcesreceiver/
- receiver/simpleprometheusreceiver/
End User Changelog
🛑 Breaking changes 🛑
-
all: Removes the kafkatopicsobserver extension after being deprecated for 3 months (#48186)
Use thekafkareceiverwith topic regex support instead. -
extension/observer: Removes thekafka.topicsendpoint type along with the kafkatopicsobserver extension (#48186)
Theobserver.KafkaTopicTypeendpoint type and itsobserver.KafkaTopicdetails struct are
removed, as the kafkatopicsobserver was the only observer emitting them. The receivercreator
no longer acceptstype == "kafka.topics"rules or resource attributes for that endpoint type. -
processor/dynamic_sampling: Reserve the "" prefix in rule names for processor-internal decision labels, and rename the unmatched-drop sentinel to_unmatched(#49311)
Configs with rule names starting with "" are now rejected at validation, so user rule
names can never collide with the processor-owned sentinel labels on decision metrics
(_eviction,_root_span_condition). Theruleattribute value for traces dropped with
no matching rule changes fromunmatchedto_unmatchedto follow the same convention. -
receiver/file_log:ordering_criteria::top_n: 0now means 'match all files' instead of silently behaving liketop_n: 1. (#47444)
To restore the previous behavior of matching the first file only, setordering_criteria::top_n: 1.
🚩 Deprecations 🚩
-
exporter/azure_monitor: Renameazuremonitortoazure_monitor(#45339) -
exporter/signalfx: Remove the logic sending trace correlation. (#50166)
The trace correlation endpoint is no longer processing requests as the logic has moved
to be handled by the backend. With this change, the exporter continues to accept spans
but will no longer send them to the correlation endpoint. -
receiver/file_log: Deprecate the implicitordering_criteria.top_ndefault of 1 whenordering_criteria.sort_byis configured. Enable thefilelog.requireExplicitTopNfeature gate to requiretop_nto be set explicitly. (#47444)
Whenordering_criteria.sort_byis configured withouttop_n, the matcher
silently defaultstop_nto 1, returning only the single highest-priority file
per poll. With multiple actively-written files this causes severe log
duplication: the other matching files cycle in and out of the tracker and are
re-read from offset 0 on rediscovery.Enabling the
filelog.requireExplicitTopNfeature gate makes an unsettop_na
startup error whensort_byis configured, forcing the choice to be explicit.
The gate is off by default; it is expected to become the default (and the
implicit fallback removed) in a future release. Usetop_n: 1to keep the
previous behavior.Independently of the feature gate,
top_n: 0now means "match all files"
instead of silently behaving liketop_n: 1. -
receiver/sql_query: Rename the 'sqlquery' receiver to 'sql_query'. The old 'sqlquery' type remains available as a deprecated alias. (#45339)
🚀 New components 🚀
extension/sd_notify: Introduces thesd_notifyextension, which integrates the collector with the sd_notify(3) protocol. (#49607)
💡 Enhancements 💡
-
cmd/opampsupervisor: Add tar.gz archive support and the agent_binary configuration for collector package upgrades. (#49766) -
exporter/awscloudwatchlogs: Add max_event_payload_bytes config option to opt in to the CloudWatch Logs 1 MiB per-event limit (previously hardcoded to 256 KiB). (#48559)
The CloudWatch Logs PutLogEvents API began accepting events up to 1 MiB on
2025-04-02. The exporter previously truncated every event at 256 KiB (the
pre-2025 service limit) via a hardcoded package constant. The default stays
at 256 KiB for backwards compatibility; setmax_event_payload_bytes: 1048576
to take advantage of the new ceiling. A newcwlogs.WithMaxEventPayloadBytes
pusher option exposes the same knob to direct callers of the internal package. -
exporter/azure_monitor: Allow configuring HTTP status codes that should not be marked as errors in Application Insights. (#47691)
Addstelemetry_mappings.traces.http.successsettings for HTTP success mapping:
additional_success_status_codeslists status codes treated as Success on both
server and client HTTP spans, andserver_policy: oteltreats 4xx responses on
HTTP server spans as Success, matching the OpenTelemetry HTTP semantic conventions.
Defaults preserve the existing exporter behaviour. -
exporter/load_balancing: Promote metrics support to alpha stability (#50086) -
exporter/opensearch: Add integration test harness against a real OpenSearch instance (#48615)
Introduces testcontainers-go setup to validate exporter behavior,
dynamic mappings, and cluster connectivity. -
exporter/prometheus_remote_write: Add a nestedhttpconfig block for HTTP client settings. The nested block takes precedence over flat HTTP client settings when set. (#46209) -
exporter/prometheus_remote_write: Add the exporter ID as an attribute on WAL telemetry metrics to disambiguate multiple PRW exporters sharing a collector. (#49130) -
exporter/signalfx: Stop excludingcontainer.memory.rssin SignalFx exporter by default. (#50162) -
extension/aws_iam_db_auth: Changeaws_iam_db_authto alpha (#50118) -
extension/pebble_tail_storage: Addedmax_storage_size_mibsupport to the Pebble tail storage extension to bound local disk usage for pending tail-sampling trace data. (#49592)
Configuration example:
extensions:
pebble_tail_storage:
directory: /var/lib/otelcol/pebble-tail-storage
max_storage_size_mib: 10240 -
extension/sumologic: Add optionalfleet_idconfiguration field to assign a collector to a fleet during registration. (#50142)
When fleet_id is configured, it is sent as fleetId in the collector registration request.
If the server returns an invalid_fleet_id or fleet_not_found error, registration is
retried without the fleet ID so the collector can still register successfully. -
pkg/datadog: Add thedatadog.EnableScopeConventionfeature gate to control theotel.scopename and version conventions in the Datadog exporter. (#49001)
When thedatadog.EnableScopeConventionfeature gate is enabled, spans additionally
carry theotel.scope.nameandotel.scope.versionattributes. The deprecated
otel.library.nameandotel.library.versionattributes are still emitted with the
same values for backward compatibility, so existing dashboards and monitors keyed on
them keep working. -
pkg/fileconsumer: Move filelog.allowFileDeletion and filelog.windows.caseInsensitive filelog.featuregates to beta (#46635) -
pkg/ottl:pcommon.Valueis now comparable using all comparison operators (==, !=, <, <=, >=, >) in OTTL expressions (#49170) -
pkg/ottl: Thesetfunction will passnilvalues directly to the target when theottl.set.allowNilfeature gate is enabled. (#48714) -
processor/dynamic_sampling: Reduce hot-path overhead with a fast path for the default root-span condition, cheaper decision-cache ordering, precomputed metric attributes, and a precomputed emitted tracestate. (#49311) -
processor/dynamic_sampling: Document known limitations, the metric label contract (sentinel rule values, trigger values), and refresh the future work list (#49311) -
processor/dynamic_sampling: Move buffered spans into the output at decision time instead of copying them, halving decision-path allocations. (#49311) -
processor/dynamic_sampling: Drain pending traces on shutdown, deciding each through the normal rule path instead of silently dropping the buffer (#49311)
Previously a collector restart, rollout, or config reload discarded every buffered trace
without a decision (up to trace_timeout worth of spans). Shutdown now decides each pending
trace with the spans seen so far, forwards the kept ones with a correct ot=th tracestate,
and reports them on the decision-triggers counter with trigger="shutdown". Traces already
counted by an earlier trigger are not counted again, and the same double-count guard is
applied to eviction of a trace in its decision_delay window. -
processor/dynamic_sampling: UseMoveToinstead ofCopyTowhen accumulating and forwarding spans, reducing allocations and improving throughput. (#49311) -
processor/resource_detection: Add feature gates to migrate theelastic_beanstalkdetector to the current deployment semantic conventions. (#50130)
The detector reports the deployment environment asdeployment.environment, which is deprecated in
the semantic conventions, and the deployment ID asservice.instance.id. Two alpha feature gates
migrate them todeployment.environment.nameanddeployment.id:
processor.resourcedetection.elasticbeanstalk.EmitV1DeploymentConventionsadds the current
attributes, andprocessor.resourcedetection.elasticbeanstalk.DontEmitV0DeploymentConventions
removes the deprecated ones. Enabling only the first reports both sets, so telemetry
can be migrated before the deprecated attributes are dropped. Enabling only the second is rejected
at startup. The default output is unchanged. -
processor/resource_detection: Support global retry config for resource detection processor (#46546) -
processor/resource_detection: Add Azure...
v0.158.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
cmd/opampsupervisor: Remove thereports_package_statusescapability config option. Theaccepts_packagesoption now enables both the AcceptsPackages and ReportsPackageStatuses OpAMP capabilities. (#49762)
Neither capability was functional; the supervisor exits with an error at startup when configured, so no working configuration is affected. -
processor/drain: Add masking rules for named parameter extraction. Removes theextract_parametersandparams_attributeconfig fields released in v0.157.0. (#48914)
Addsmasking_rules, an ordered list of{name, pattern}regex substitutions applied to a copy
of the log body before it is fed to the Drain tree. Matched substrings become named mask tokens
in derived templates (for example<ip>), stabilising the tree on high-cardinality values.
Each masked position writes a dynamic attribute at
<parameter_key_prefix>.<mask name>(default prefixlog.record.template.parameter), matching
the OTel semantic-convention pattern used byhttp.request.header.<key>and
db.query.parameter.<key>.Adds
emit_wildcards(default false): when true, Drain's own<*>positions are written to a
positional string slice attribute atwildcards_attribute(default
log.record.template.wildcards). Independent ofmasking_rules, so users can enable it without
any rules to see raw variable values before deciding what to mask.When a mask name matches multiple positions in the same template, first-match wins and the
losing values are dropped. Theotelcol_processor_drain_masks_duplicatescounter is incremented
once per record per duplicated mask name, tagged with amaskattribute for observability.Breaking: the positional-only
extract_parametersandparams_attributefields released in
v0.157.0 are removed. Collectors with either field set will fail to start after upgrading.
To migrate, replaceextract_parameters: truewithemit_wildcards: true, and rename
params_attributetowildcards_attribute. The behaviour is identical; only the field names
change. Note the default output attribute also renames fromlog.record.template.paramsto
log.record.template.wildcards, so downstream consumers of the old attribute key should either
update their references or setwildcards_attribute: log.record.template.paramsto keep the
old key. -
processor/dynamic_sampling: Flatten sampler config, renamekey_fieldstokey_attributes, dropinitial_sampling_rate. (#49311)
Sampler fields no longer live under a per-type sub-block (sampler.<type>.<field>);
they move up one level undersampler:withtypeacting as the discriminator.
key_fieldsis renamed tokey_attributesto match OTel attribute vocabulary used
elsewhere in the processor. The rarely-usedinitial_sampling_rateon
ema_throughputis removed; dynsampler-go's default applies.goal_throughput_per_sec
is nowintfor both throughput samplers. Fields set for a sampler type that does
not use them are rejected at config validation. -
processor/dynamic_sampling: Replace the custom rule condition parser with OTTL expressions and add amatchfield to control same-span vs any-span semantics. (#49311)
Ruleconditions:are now OTTL boolean expressions evaluated in the ottlspan
context. Path expressions must be qualified with a context prefix
(span.attributes["k"],resource.attributes["k"],span.status.code, etc).
A new per-rulematch:field selectsany_span(default, each condition
satisfied by some span) orsame_span(some single span satisfies all
conditions). A new counter,
otelcol_processor_dynamic_sampling_ottl_eval_errors, is labelled by rule
and tracks runtime OTTL evaluation errors. -
receiver/icmpcheckreceiver: Change RTT metric value type from int to double for sub-millisecond precision (#49960) -
receiver/oracledb:oracle.db.pdbis now a data-point attribute (opt-in) instead of a resource attribute. (#48643)
oracle.db.pdbhas moved from a resource attribute to an opt-in data point attribute.
Downstream pipelines that grouped, routed, or filtered onoracle.db.pdbat resource scope
must be updated to read it from data point attributes, and it must be explicitly enabled on
each metric that should carry it viametrics.<name>.attributes: [oracle.db.pdb]. Existing
CDB deployments that do not enable the attribute or add the grants needed for per-PDB
collection keep working unchanged; the receiver falls back to the single-container queries. -
receiver/postgresql: Collectpostgresql.database.locksfrom each configured database instead of only the defaultpostgresdatabase. (#49206)
Previously the metric was collected once against the defaultpostgresdatabase, so locks on relations
belonging to other configured databases were silently dropped, and all data points were emitted on the
instance-level resource withoutpostgresql.database.name. Lock data points for database-local relations
are now emitted on the corresponding per-database resource with thepostgresql.database.nameresource
attribute. Locks on shared system catalogs (e.g.pg_database) are reported once at the instance level.
When thereceiver.postgresql.useOTelSemconvfeature gate is enabled there is a single server-level
resource, so the data points instead carry adb.namespaceattribute to identify the database. Without it
relations that exist in more than one database (any system catalog, or user tables sharing a name) would
collapse into a single series. Locks on shared system catalogs carry an emptydb.namespace, since they
are server-scoped rather than database-scoped.
The lock count now usesCOUNT(*)instead ofCOUNT(pid), so locks held by prepared transactions
(which have a NULLpidinpg_locks) are counted instead of being reported as zero.
The metric is disabled by default and has development stability, so no feature gate is provided for this
behavior change.
🚩 Deprecations 🚩
-
exporter/mezmo: Deprecate the mezmo exporter (#49953)
Mezmo now supports ingesting OpenTelemetry data directly via OTLP. Use the OTLP/HTTP
exporter instead. See https://docs.mezmo.com/telemetry-pipelines/otel-collector and
https://docs.mezmo.com/telemetry-pipelines/open-telemetry-source for migration guidance. -
processor/alibabaecsdetector: Deprecate per-detectorfail_on_missing_metadatain thealibaba_ecsdetector config (#46579)
Use the top-levelfail_on_missing_metadatain the processor config instead.
The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later. -
processor/delta_to_cumulative: Rename the 'deltatocumulative' processor to 'delta_to_cumulative'. The old 'deltatocumulative' type remains available as a deprecated alias. (#45339) -
processor/delta_to_rate: Rename the 'deltatorate' processor to 'delta_to_rate'. The old 'deltatorate' type remains available as a deprecated alias. (#45339) -
processor/novadetector: Deprecate per-detectorfail_on_missing_metadatain thenova(OpenStack) detector config (#46579)
Use the top-levelfail_on_missing_metadatain the processor config instead.
The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later. -
processor/resource_detection: Deprecate per-detectorfail_on_missing_metadatain theec2detector config (#46579)
Use the top-levelfail_on_missing_metadatain the processor config instead.
The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later. -
processor/tencentcvmdetector: Deprecate per-detectorfail_on_missing_metadatain thetencent_cvmdetector config (#46579)
Use the top-levelfail_on_missing_metadatain the processor config instead.
The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later. -
processor/upclouddetector: Deprecate per-detectorfail_on_missing_metadatain theupclouddetector config (#46579)
Use the top-levelfail_on_missing_metadatain the processor config instead.
The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later. -
processor/vultrdetector: Deprecate per-detectorfail_on_missing_metadatain thevultrdetector config (#46579)
Use the top-levelfail_on_missing_metadatain the processor config instead.
The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later.
🚀 New components 🚀
extension/aws_iam_db_auth: Add an extension awsiamdbauthextension that implementsdbauth. (#49044)receiver/dns_check: Add initial skeleton of DNS Check receiver (README, config, factory, metadata) with In Development stability. (#49561)
💡 Enhancements 💡
exporter/datadog: Addexporter.datadogexporter.AddUnitsfeature gate that maps OTLP (UCUM) metric units to their Datadog equivalents. (#15280)exporter/elasticsearch: Allowtraces,profiles, andsyntheticsas validdata_stream.typevalues when overriding via attributes inbodymapmapping mode, in addition to the existinglogsandmetrics. (#49337)exporter/prometheus_remote_write: Addconvert_explicit_histograms_to_nhcbto convert explicit-bucket (classic) histograms into Native Histograms with Custom Buckets (NHCB) on export, withkeep_classic_histogramsto emit both representations during migration. (#33661)
Whenconvert_explicit_histograms_to_nhcbis set, ...
v0.157.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
connector/failover: Remove deprecated fieldretry_gapandmax_retries(#49583) -
connector/routing: Promote theconnector.routing.defaultErrorModeIgnorefeature gate to beta. The defaulterror_modeis nowignoreinstead ofpropagate. (#48418)
To restore the previous default ofpropagate, run the collector with the feature gate disabled by passing--feature-gates=-connector.routing.defaultErrorModeIgnore. -
processor/aws_ecs_attributes: Rename the component identifier fromawsecsattributestoaws_ecs_attributesto follow the component naming guidelines. (#44476)
The processor is still in development, so the old identifier is removed rather than kept as a deprecated alias. -
processor/filter: Promote theprocessor.filter.defaultErrorModeIgnorefeature gate to stable. The default top-levelerror_modeis now permanentlyignoreinstead ofpropagate. (#47232)
The gate will be removed in v0.159.0. -
processor/tail_sampling: Fix metric units to comply with the UCUM specification (#49453) -
processor/transform: Promote theprocessor.transform.defaultErrorModeIgnorefeature gate to stable. The default top-levelerror_modeis now permanentlyignoreinstead ofpropagate. (#47231)
The gate will be removed in v0.159.0. -
receiver/apache_spark: Fix metric units to comply with the UCUM specification (#49453) -
receiver/chrony: Fix metric units to comply with the UCUM specification (#49453) -
receiver/haproxy: Fix metric units to comply with the UCUM specification (#49453) -
receiver/host_metrics: Make thecpuattribute opt-in for hostmetrics CPU time and utilization metrics. (#49161)
By default,system.cpu.timeandsystem.cpu.utilizationare now aggregated across logical CPUs and no longer include thecpuattribute.
To restore the previous per-logical-CPU output, configure:receivers: hostmetrics: scrapers: cpu: metrics: system.cpu.time: attributes: [cpu, state] system.cpu.utilization: attributes: [cpu, state]
-
receiver/host_metrics: Enable thesystem.cpu.logical.countmetric by default in the CPU scraper. (#49325)
To restore the previous behavior, disable the new metric by applying the following config:receivers: host_metrics: scrapers: cpu: metrics: system.cpu.logical.count: enabled: false
-
receiver/memcached: Fix metric units to comply with the UCUM specification (#49453) -
receiver/mongodb: Fix metric units to comply with the UCUM specification (#49453) -
receiver/nginx: Fix metric units to comply with the UCUM specification (#49453) -
receiver/nsxt: Fix metric units to comply with the UCUM specification (#49453) -
receiver/redfish: Fix metric units to comply with the UCUM specification (#49453) -
receiver/splunk_enterprise: Fix metric units to comply with the UCUM specification (#49453) -
receiver/sqlserver: Fix metric units to comply with the UCUM specification (#49453) -
receiver/sqlserver: Changesqlserver.lock.timeout.rateto emit per-type data points (#48925)
sqlserver.lock.timeout.ratenow requires asqlserver.lock.timeout.typeattribute
(all,nonzero) and emits one data point per type. Users who enable this metric
will receive two data points per scrape instead of one. The metric stays
enabled: falseandstability: development.
🚩 Deprecations 🚩
all: Remove JMX receiver code (#45740)processor/cumulative_to_delta: Rename the 'cumulativetodelta' processor to 'cumulative_to_delta'. The old 'cumulativetodelta' type remains available as a deprecated alias. (#45339)processor/span_pruning: Renamespanpruningprocessor tospan_pruningand add deprecated aliasspanpruning(#47590)
🚀 New components 🚀
config/configdbauth: Add config fordbauth, so components can use this in the config to support databasee authentication like AWS IAM. (#49044)extension/dbauth: Add extension interface fordbauth. (#49044)
💡 Enhancements 💡
-
cmd/opampsupervisor: Include recent Collector log output when the Supervisor reports that the Collector crashed (#44836, #40173, #21079)
When a Collector process exits unexpectedly, the Supervisor now can add the relevant
tail of the Collector logs to the health and remote config failure messages sent
to the OpAMP server. This helps operators understand why a remote config failed
without first logging into the host to inspectagent.log. This behavior is
disabled by default; setagent::collector_crash_log_snippet_kibto a positive
KiB count, such as4, up to1024(1 MiB) to enable it. -
cmd/opampsupervisor: Add support for restoring the last working remote configuration when an incoming remote configuration fails to apply (#47192)
This behavior is controlled under the configuration optionagent.automatic_config_rollback.
When an old remote configuration is restored, the agent will report an "applied" status again
for this configuraiton. -
exporter/clickhouse: Updates the metrics tables default schemas (#49438)
Reduces Primary Key memory usage and colocates metrics by time more effectively -
exporter/datadog: Adddatadog.serializerexporter.UseSyncForwarderfeature gate (Alpha, disabled by default) that replaces the async DefaultForwarder with a synchronous forwarder so metric send failures are surfaced to OTel'sexporterhelperretry/queue layer. (#49571)
When enabled via--feature-gates=+datadog.serializerexporter.UseSyncForwarder, the metric serializer
exporter path gains three improvements over the legacy async forwarder:-
Error propagation: Datadog intake errors (5xx → retryable, 4xx → permanent drop) are returned
fromConsumeMetricsinstead of being silently swallowed.otelcol_exporter_send_failed_metric_points
now accurately reflects failures. -
OTel-native retry: Because errors are propagated, the configured
retry_on_failurepolicy is
respected. Transient 5xx errors are retried byexporterhelperrather than lost. -
Queue-overflow visibility: When the OTel sending queue fills up (workers blocked on slow/failed
intake calls),otelcol_exporter_enqueue_failed_metric_pointsincrements instead of metrics being
silently dropped inside the DefaultForwarder's internal queue.
Note:
retry_on_failureconfig now also takes effect on the serializer exporter path (previously it
was wired as disabled regardless of user config).
See DataDog/datadog-agent#51333. -
-
exporter/elasticsearch: Addretry::retry_on_document_statusto configure document-level retry status codes separately from request-level retries. (#48681) -
exporter/kafka: Addexporter.kafka.useRequestTypealpha feature gate that routes all signals through a custom exporterhelper.Request (#48090)
When the gate is enabled, traces, metrics, logs, and profiles all convert
pdata into Kafka records at request-creation time and use a custom
Request for queue/batch sizing.queue_batch.sizer: itemsthen counts
Kafka records, not OTLP items. The persistent queue (sending_queue.storage)
is not supported with this gate; configuring both produces an error at
startup. Default OFF. -
exporter/opensearch: Addmapping.manage_index_templateoption forotel-v1mode that creates the matching composable index templates on startup. (#48585)
When enabled, the exporter creates theotel-v1-apm-span-index-templateandotel-v1-logs-index-templatecomposable index templates idempotently on startup, materializingdate_nanostimestamp fields and the typed dynamic-attribute mappings before documents are indexed. If templates with the same names already exist (for example, user-customized variants), they are left in place rather than overwritten. Only valid withmapping.mode: otel-v1; validation rejects the combination with other modes. -
exporter/signalfx: Translatecpu.num_processorsfromsystem.cpu.logical.count. (#49296)
The exporter no longer derivescpu.num_processorsby counting per-coresystem.cpu.timeseries. -
exporter/signalfx: Simplifysystem.cpudefault translations now that hostmetrics CPU metrics are state-aggregated by default. (#49589)
The default translations no longer aggregate translated CPU metrics across thecpuattribute. If that attribute is explicitly re-enabled onsystem.cpu.time, translatedcpu.*andcpu.utilizationdatapoints keep it. -
exporter/signalfx: Exportsystem.cpu.timeandsystem.disk.ioby default (#49738) -
extension/google_cloud_logentry_encoding: Add feature gate to stop emitting deprecated rpc.jsonrpc.error_code and rpc.jsonrpc.error_message attributes (#22095)
The feature gate extension.encoding.googlecloudlogentryencoding.DontEmitV0RPCConventions
(disabled by default) allows users to opt out of the deprecated semconv v1.38.0 attributes.
The new attribute rpc.response.status_code is always emitted regardless of the gate. -
extension/oidc: Add ignore issuer in config for single provider setup and propagate it to go-oidc. (#46791) -
pkg/coreinternal: Migrate semantic conventions from v1.19.0 to v1.40.0 (#45294) -
pkg/experimentalmetricmetadata: Add feature-gated support for emitting entity events using the OpenTelemetry entity events specification log record format. (#49667) -
pkg/ottl: Add theWhenOTTL converter for selecting a value based on a lambda condition. (#49356) -
pkg/ottl: Add theMapKeysOTTL converter for transforming m...
v0.156.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
pkg/fileconsumer: Move feature gate filelog.protobufCheckpointEncoding to beta and keep it enabled by default (#49387) -
receiver/oracledb: Enhanced Oracle SQL query plan details with runtime execution statistics. (#49329)
This change requires the collector user to have access to V$SQL_PLAN_STATISTICS_ALL. Existing deployments that only grant access to V$SQL_PLAN
may experience query plan collection failures until the appropriate privileges are granted.SQL query plan details are now retrieved from V$SQL_PLAN_STATISTICS_ALL instead of V$SQL_PLAN. Since V$SQL_PLAN_STATISTICS_ALL is a superset of V$SQL_PLAN,
this change is backward compatible with respect to the emitted plan detail fields while enabling collection of additional runtime execution statistics,
including OUTPUT_ROWS, LAST_OUTPUT_ROWS, LAST_ELAPSED_TIME, LAST_CR_BUFFER_GETS, LAST_CU_BUFFER_GETS, STARTS, and LAST_STARTS.
🚩 Deprecations 🚩
-
connector/routing: Deprecate therequestcontext in favor ofotelcol.*OTTL paths. (#44762)
The routing connectorrequestcontext andrequest["key"]condition syntax are deprecated in favor of
otelcol.client.metadata["key"][0]for HTTP/client metadata andotelcol.grpc.metadata["key"][0]for gRPC metadata.
These paths work in all signal contexts and are documented in the OTelCol OTTL context.
A warning is logged when therequestcontext is still configured. -
exporter/datadog: Theexporter.datadogexporter.metricremappingdisabledfeature gate no longer has any effect when the serializer exporter path is active (the default). Useexporter.datadogexporter.DisableAllMetricRemappingto disable metric remapping. (#49320)
See DataDog/datadog-agent#51232. -
receiver/aws_cloudwatch: rename toaws_cloudwatchwith deprecated aliasawscloudwatch(#45339)
🚀 New components 🚀
processor/dynamic_sampling: Add dynamic sampling processor for adaptive trace sampling with W3C TraceState rate encoding. (#48898)
💡 Enhancements 💡
-
cmd/opampsupervisor: Make the OpAMP Supervisor logger encoding configurable so it can emit console (plain-text) logs as well as JSON (#47532) -
connector/routing: Add OTTL context inference support to routing connector. (#38080)
The routing connector now supports OTTL context inference, allowing users to write clearer routing conditions using
context-qualified paths. Instead of relying on implicit context resolution, users can explicitly specify which
context's attributes they want to access (e.g.,resource.attributes["env"]orspan.attributes["http.method"]).
Unqualified paths likeattributes["key"]continue to work and default to the resource context for backward compatibility. -
exporter/alibabacloud_logservice: Addsecurity_token(STS) support alongside AK/SK; preserve ECS role/token-file fallback. (#48624)
Whensecurity_tokenis provided in the exporter configuration the SDK is
configured to use static STS credentials via the provider. The existing
ecs_ram_roleandtoken_file_pathbehavior remains the higher-priority
authentication method and is unchanged. -
exporter/clickhouse: Add experimental support for the profiles signal (#49304) -
exporter/datadog: Emitotel.datadog_exporter.metrics.running.fargate{task_arn}for AWS ECS Fargate workloads so that each workload has its own metric. (#49042)
Host-based workloads continue to useotel.datadog_exporter.metrics.running{host}unchanged.
otel.datadog_exporter.metrics.runningwill no longer be tagged withtask_arn. Fargate workloads will only useotel.datadog_exporter.metrics.running.fargate{task_arn}. -
exporter/datadog: Fargate workloads now emit a dedicatedotel.datadog_exporter.metrics.running.fargatemetric tagged withtask_arninstead of sharingotel.datadog_exporter.metrics.runningwith host-based workloads. (#49320)
Host-based workloads continue to emitotel.datadog_exporter.metrics.running{host}unchanged.
See DataDog/datadog-agent#52203. -
exporter/elasticsearch: Support routing from data_stream attributes defined as scope attributes (#49306) -
extension/azure_auth: Promote the Azure Authenticator extension to beta stability. (#48521) -
extension/file_storage: Addedmax_sizesupport to the filestorage extension to cap per-component database growth. (#38620) -
extension/sigv4auth: Add automatic service detection for CloudWatch OTLP metrics endpoint (monitoring..amazonaws.com) (#48738) -
pkg/translator/pprof: reduce allocations in sample conversion (#49452) -
processor/transform: Addexemplarcontext support to the transform processor, allowingmetric_statementsto read and modify exemplar fields on metric datapoints. (#49022) -
receiver/aws_lambda: Add support for AWS configuration overrides for static credentials (#49163) -
receiver/faro: Emit per-payload counters for ingested Faro logs, measurements, exceptions, and events (#48071)
Addsotelcol_faro_log_ingested_total,otelcol_faro_measurement_ingested_total,
otelcol_faro_exception_ingested_total, andotelcol_faro_event_ingested_total. Each
counter is incremented by the number of entries in the corresponding
payload section after the request body is parsed. -
receiver/mongodb: Add Query Sample collection to the MongoDB receiver, emitting adb.server.query_samplelog event for each currently executing operation. (#48573)
Samples are collected via$currentOp, with idle connections and administrative commands
filtered out. Each event includes obfuscated query text and operation metadata.
Thelogssignal is atdevelopmentstability; attribute names may change until OTel
db.server.query_sampleconventions stabilize. Themetricssignal remains atbeta. -
receiver/oracledb: Addservice.nameandservice.namespaceopt-in resource attributes and allow overriding any resource attribute viaoverride_value. (#47088) -
receiver/oracledb: Add workload analysis metrics related to scans, enqueue, LOB, parse, sort, cursor, and session activity (#48808)
Adds fourteen new opt-in metrics (disabled by default):oracledb.call.count,oracledb.call.recursive.cpu.timeoracledb.cursor.cache.hits,oracledb.cursor.cache.size,oracledb.cursor.openoracledb.db.timeoracledb.enqueue.operationsoracledb.lob.operationsoracledb.parse.cpu.time,oracledb.parse.elapsed.timeoracledb.scan.count,oracledb.scan.table.rowsoracledb.sort.operations,oracledb.sort.rows
No new SQL queries are issued; the existing v$sysstat scrape already returns
all required rows, so the receiver adds no additional load on the monitored
Oracle instance.
-
receiver/oracledb: Add buffer cache and Database Writer (DBWR) metrics (#49061) -
receiver/oracledb: Add redo log metrics (#49060) -
receiver/postgresql: Add default service.name and service.namespace resource attributes (#47087)
Both attributes default to enabled: false. When enabled, service.name
defaults to unknown_service:postgresql and service.namespace defaults
to an empty string. Additionally, override_value is enabled for all
resource attributes, allowing users to set custom values via
override_value in the collector configuration. -
receiver/postgresql: Adds blocking session and lock attributes todb.server.query_sampleevents for PostgreSQL blocking session detection. Blocking attributes are always emitted (empty string / 0 when not blocked). (#49028)
New attributes under postgresql.blocking.*: postgresql.blocking.pids, postgresql.blocking.start_time,
postgresql.blocking.wait_duration, postgresql.blocking.lock.mode, postgresql.blocking.lock.type,
postgresql.blocking.lock.relation, postgresql.blocking.transaction.start_time.
postgresql.blocking.pids contains the full array of blocking PIDs from pg_blocking_pids() (e.g. {5121,5122}).
postgresql.blocking.start_time uses pg_locks.waitstart (PostgreSQL 14+) to record when the lock wait began. waitstart is stable for the full duration of the wait — it is set once when the lock wait starts and is not affected by blockers joining or leaving.
postgresql.blocking.transaction.start_time provides a UTC timestamp (RFC3339) from xact_start representing when the transaction started, predating the lock contention itself.
Idle-in-transaction blocker sessions (holding locks without an active request) are captured via pg_blocking_pids subquery in the WHERE clause.
All blocking attributes are always present on every db.server.query_sample event; empty string / 0 values indicate no active blocking.
Requires PostgreSQL 14 or later. -
receiver/prometheus: Promotereceiver.prometheusreceiver.IgnoreScopeInfoMetricfeature gate to beta. (#47312)
Theotel_scope_infometric is now ignored for scope attribute extraction by default.
To temporarily restore the previous behavior, disable the feature gate with--feature-gates=-receiver.prometheusreceiver.IgnoreScopeInfoMetric. -
receiver/sqlserver: Add access methods and buffer pool metrics (#49182)
Adds the following metrics, all disabled by default:sqlserver.access.scan.ratesqlserver.extent.operation.ratesqlserver.ghost_record.skipped.ratesqlserver.page.allocation.ratesqlserver.page.compression.ratesqlserver.page.read_ahead.ratesqlserver.scan_point.revalidation.rate
...