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/alibabacloudlogservice
- receiver/carbon
End User Changelog
🛑 Breaking changes 🛑
-
connector/servicegraph: remove deprecated warning log about metrics exporter logical (#45177) -
extension/googlecloudlogentry_encoding: Parse Cloud DNS Query logs into log record attributes instead of placing it in the body as is. (#44561) -
processor/tail_sampling: Add support for caching the policy name involved in a sampling decision. (#45040)
This change allows thetailsampling.policyattribute to be set on the spans in a trace when a sampling decision is cached. -
receiver/prometheus: Remove deprecateduse_start_time_metricandstart_time_metric_regexconfiguration options. (#44180)
Theuse_start_time_metricandstart_time_metric_regexconfiguration options have been removed after being deprecated in v0.142.0.
Users who have these options set in their configuration will experience collector startup failures after upgrading.
To migrate, remove these configuration options and use themetricstarttimeprocessor instead for equivalent functionality. -
receiver/systemd: Renamesystemd.unit.cpu.timemetric tosystemd.service.cpu.time(#44916)
🚀 New components 🚀
cmd/schemagen: Introduce script that generates configuration schemas for collector components based on go structs. (#42214)
Theschemagentool generates schemas for OpenTelemetry Collector components configuration
by analyzing Go struct definitions. This is preliminary work to support automatic generation
of documentation and validation for component configurations.
💡 Enhancements 💡
-
exporter/azureblob: Addtime_parser_rangesoption to allow selective time parsing of blob name substrings (#44650)
The newtime_parser_rangesconfiguration allows specifying index ranges (e.g.,["0-10", "15-25"]) to control which parts of the blob name are time-formatted. -
exporter/coralogix: Exposed a new field to setgrpc-accept-encoding.gzipwill be used by default. (#45191) -
exporter/coralogix: Improve log messages when a partial success happens for traces. (#44926)
The exporter now provides additional context based on the type of partial success | returned by the backend. When the backend indicates issues with the sent data, the error | message is analyzed to identify and display examples of the problematic data. -
exporter/elasticsearch: Add support for extra query parameters to the outgoing bulk request (#44480) -
exporter/kafka: Makemax_message_bytesandflush_max_messagesunconditional in franz-go producer. Changedflush_max_messagesdefault from 0 to 10000 to match franz-go default. (#44840) -
extension/awslogs_encoding: Enhance VPC flow logs encoding extension with CloudWatch logs support (#44710) -
extension/azure_encoding: Add processing for AppService, CDN, FrontDoor and Recommendation logs records (#41725) -
extension/googlecloudlogentry_encoding: Add support for Passthrough External and Internal Network Load Balancer logs (#44524)
Add support for Passthrough External and Internal Network Load Balancer logs to the Google Cloud log entry encoding extension.
This includes adding support for the newgcp.load_balancing.passthrough_nlbattributes including connection details,
bytes/packets sent and received, and RTT measurements. -
pkg/ottl: AddBoolfunction for converting values to boolean (#44770) -
processor/geoip: Bump oschwald/geoip2 to v2 (#44687) -
receiver/awscloudwatch: Add support for filtering log groups by account ID. (#38391) -
receiver/awscontainerinsightreceiver: Component type name renamed from awscontainerinsightreceiver to awscontainerinsight, controlled by feature gate receiver.awscontainerinsightreceiver.useNewTypeName. (#44052)
When the feature gate is enabled, the receiver uses the new type nameawscontainerinsightinstead ofawscontainerinsightreceiver.
To enable the new type name, use:--feature-gates=+receiver.awscontainerinsightreceiver.useNewTypeName. -
receiver/awslambda: Add support for AWS Lambda receiver to trigger by CloudWatch logs subscription filters for Lambda (#43504) -
receiver/awslambda: Add S3 failure replay support to AWS Lambda receiver (#43504) -
receiver/filelog: gzip files are auto detected based on their header (#39682) -
receiver/github: Addmerged_pr_lookback_daysconfiguration to limit historical PR queries and reduce API usage (#43388)
Themerged_pr_lookback_daysconfiguration option limits the timeframe for
which merged pull requests are queried. Set to 0 to fetch all merged PRs.
Open PRs are always fetched regardless of this setting. -
receiver/oracledb: Add stored procedure information to logs for top queries and query samples. (#44764)
Thedb.server.top_queryevent now includesoracledb.procedure_id,oracledb.procedure_name, andoracledb.procedure_typeattributes.
Thedb.server.query_sampleevent now includesoracledb.procedure_id,oracledb.procedure_name, andoracledb.procedure_typeattributes. -
receiver/postgresql: Addedservice.instance.idresource attribute for metrics and logs (#43907)
service.instance.idis enabled by default. -
receiver/postgresql: Add trace propagation support (#44868)
Whenpostgresql.application_namecontains a valid W3Ctraceparent, emitteddb.server.query_samplelogs includetrace_idandspan_idfor correlation. -
receiver/prometheus: Addreceiver.prometheusreceiver.RemoveReportExtraScrapeMetricsConfigfeature gate to disable thereport_extra_scrape_metricsconfig option. (#44181)
When enabled, thereport_extra_scrape_metricsconfiguration option is ignored, and extra scrape metrics are
controlled solely by thereceiver.prometheusreceiver.EnableReportExtraScrapeMetricsfeature gate.
This mimics Prometheus behavior where extra scrape metrics are controlled by a feature flag. -
receiver/systemd: Add metric for number of times a service has restarted. (#45071) -
receiver/windowseventlog: Improved performance of the Windows Event Log Receiver (#43195)
Previously, the Windows Event Log Receiver could only process events up to 100 messages per second with default settings.
This was because the receiver would read at mostmax_readsmessages within each configuredpoll_interval, even if
additional events were already available.This restriction has been removed. The
poll_intervalparameter behaves as described in the documentation:
Thepoll_intervalparameter now only takes effect after all current events have been read.For users who prefer the previous behavior, a new configuration option,
max_events_per_poll, has been introduced. -
receiver/windowseventlog: Add parsing for Version and Correlation event fields. (#45018)
🧰 Bug fixes 🧰
-
connector/count: Basic config should emit default metrics (#41769) -
exporter/elasticsearch: Deduplicate attribute keys from non-compliant SDKs in otel mapping mode (#39304)
The serializer in otel mapping mode now explicitly deduplicates attribute keys when writing to Elasticsearch,
keeping only the first occurrence. This prevents invalid JSON from being produced when
non-compliant SDKs send duplicate keys. -
exporter/kafka: Wrap non-retriable errors from franzgo with consumererror::permanent (#44918) -
exporter/loadbalancing: Fix k8s resolver parsing so loadbalancing exporter works with service FQDNs (#44472) -
pkg/translator/azurelogs: Fix missing data when ingesting Azure logs without properties field. (#44222) -
receiver/awss3: Fix data loss when SQS messages contain multiple S3 object notifications and some fail to process (#45153)
The SQS notification reader was unconditionally deleting messages after processing,
even when some S3 object retrievals or callback processing failed. This caused data
loss when a message contained multiple S3 notification records and any of them failed.
Messages are now only deleted when all records are successfully processed, allowing
failed records to be retried after the visibility timeout. -
receiver/azureeventhub: Make storage of new azeventhub library backward compatible and fix checkpoint starting at earliest when storage is enabled (#44461) -
receiver/fluentforward: Ensure all established connections are properly closed on shutdown in the fluentforward receiver. The shutdown process now reliably closes all active connections. (#44433)- Fixes shutdown behavior so that all existing connections are closed cleanly.
- Adds tests to verify proper connection closure.
-
receiver/kafka: Fix deprecated field migration logic for metrics, traces, and profiles topic configuration (#45215)
Fixed bug where deprecatedtopicandexclude_topicfields for metrics, traces, and profiles
were incorrectly checking logs configuration instead of their respective signal type's configuration.
This prevented proper migration from deprecated fields unless logs.topics was empty.
Also fixed validation error message typo for traces.exclude_topic and corrected profiles validation
to check ExcludeTopic fields instead of Topic fields. -
receiver/sqlserver: Collect query metrics for long running queries (#44984) -
receiver/tcpcheck: Fix the unit of thetcpcheck.errormetric fromerrortoerrors(#45092)
API Changelog
🛑 Breaking changes 🛑
-
all: Delete the package pkg/translator/opencensus (#45083)
The opencensus translator is no longer used by the project.
It was previously deprecated, and is now deleted. -
exporter/sapm: Deprecate the SAPM exporter code ahead of its removal. (#45062)
This exporter has been deprecated since 2024-12-19.
Please use the OTLP exporter instead.
With this change, the Go module is declared deprecated. -
pkg/ottl: Make BoolExpr to be private to allow extending and implementing literals support. (#44954, #45096)
Improve BoolExpr evaluation by evaluating literals at compile time. -
pkg/ottl: Remove deprecated NewTransformContext funcs (#45043) -
processor/tail_sampling: Add support for caching the policy name involved in a sampling decision. (#45040)
This change allows thetailsampling.policyattribute to be set on the spans in a trace when a sampling decision is cached.
🚩 Deprecations 🚩
pkg/stanza: Deprecate stanza/errors Wrap function in favor of standard fmt.Errorf (#44949)
🚀 New components 🚀
pkg/translator/splunk: Introduce package for translating OTel to HEC format (#45011)
💡 Enhancements 💡
receiver/awscloudwatch: Add support for filtering log groups by account ID. (#38391)
We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @tokuhirom, @akshays-19, @estolfo, @osullivandonal, @anubhav21sharma, @MrAnno ! 🎉