The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
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 🛑
-
exporter/sentry: Create a new version of the sentryexporter that supports dynamic routing to Sentry projects (#45051) -
pkg/translator/azure: Updated OpenTelemetry semantic conversion to the latest version 1.38.0 in azure pkg. (#44801) -
processor/resourcedetection: Promoteprocessor.resourcedetection.removeGCPFaasIDfeature gate to Stable and is now always enabled (#45797)
The faas.id attribute is replaced by the faas.instance attribute. -
receiver/azure_event_hub: Upgradereceiver.azureeventhubreceiver.UseAzeventhubsfeature gate to stable. (#45527) -
receiver/github: Make step spans siblings of queue-job span under job span instead of children of queue-job span (#42623)
This change improves a workflow job trace structure by making step spans siblings of the queue-job span under the job span.
Reflecting that queuing and step execution are sequential phases rather than nested operations which more accurately aligns with the specification. -
receiver/kafka: ReplaceStartTracesOp/EndTracesOpwithStartProfilesOp/EndProfilesOpin profilesHandler. (#45601)
The span name generated by the profiles receiver now uses theProfilesReceivedsuffix instead ofTraceDataReceived. -
receiver/prometheus: Promotereceiver.prometheusreceiver.RemoveReportExtraScrapeMetricsConfigfeature gate to beta (#44181)
Thereport_extra_scrape_metricsconfiguration option is now ignored by default. Extra scrape metrics are instead controlled by thereceiver.prometheusreceiver.EnableReportExtraScrapeMetricsfeature gate and the Prometheus upstream configuration available inpromconfig(either globally or per-scrape config).
🚩 Deprecations 🚩
receiver/azure_event_hub: Renameazureeventhubreceiver toazure_event_huband add deprecated aliasazureeventhub(#45637)receiver/jmx: Deprecate the jmxreceiver to avoid running Java subprocesses in the Collector and prevent container-based deployments from requiring a Java runtime. (#45740)receiver/mongodb_atlas: Renamemongodbatlasreceiver tomongodb_atlasand add deprecated aliasmongodbatlas(#45652)
💡 Enhancements 💡
-
connector/routing: Add move/copy support in routing connector (#45061) -
exporter/googlecloudstorage: Add support for exporting traces to Google Cloud Storage (#44945) -
exporter/signalfx: Add support for processing entity events from logs pipeline to send as dimension property updates (#27890)
The SignalFx exporter now supports processing entity events (e.g., from k8s_cluster receiver)
received via the logs pipeline and converting them to dimension property updates. This provides
an alternative to the metadata_exporters option and enables consistent metadata handling.
This feature is behind theexporter.signalfx.consumeEntityEventsfeature gate (disabled by default). -
extension/awslogs_encoding: Add support for processing CloudTrail logs from CloudWatch subscription filters (#45354) -
extension/awslogs_encoding: Allow using aws.user_identity prefix for UserIdentity bound attributes. This is enabled with extension.awslogsencoding.cloudtrail.enable.user.identity.prefix feature gate ID. (#43638) -
extension/azure_encoding: Add processing for Application Gateway, Azure Messaging (ServiceBus and EventHub), Data Factory, FunctionApps and BlobStorage logs records (#41725) -
extension/oauth2client: Support jwt-bearer grant-type (RFC7523) (#44314) -
extension/opamp: This change adds support for the OpAMP AcceptsRestartCommand capability. The implementation for this capability sends a SIGHUP signal to restart the collector which will reload the config on startup. (#45056)
This functionality is behind a feature gate (extension.opampextension.RemoteRestarts) that defaults disabled. The SIGHUP signal does not work on windows systems, but might later be updated to use the SIGUSR2 signal. -
internal/coreinternal: Improve performance of hashing function for attraction package. (#45211) -
pkg/fileconsumer: Open files on Windows with FILE_SHARE_DELETE mode (#32037) -
pkg/ottl: Added generic path to get/set span flags in OTTL trace span context. (#34739) -
pkg/ottl: Introducingdelete_indexfunction for deleting items from an existing array (#43098) -
pkg/stanza: Ensure recombine operator does not split batches of entries (#42392) -
pkg/stanza: Ensure container operator does not split batches of entries (#42389) -
pkg/stanza: Ensure syslog operator does not split batches of entries (#42394) -
pkg/translator/azurelogs: Add support for all Activity Logs categories (#44871)
Includes support for the Alert, Autoscale, Policy, Recommendation, Security, ServiceHealth, and ResourceHealth categories. -
processor/k8sattributes: Added processor-specific observability metrics:otelcol.k8s.pod.associationwithstatus,pod_identifier, andotelcol.signalattributes (#44587) -
processor/resourcedetection: Add support for GCP resource detector to gather GCE instance labels as resource attributes (#35859)
The GCP resource detector now supports gathering GCE instance labels as resource attributes, allowing for more detailed resource metadata in telemetry data. -
processor/resourcedetection: Added Alibaba Cloud ECS resource detector to the Resource Detection Processor (#45632) -
processor/tail_sampling: New policy type to return the opposite of the sampling decision of a wrapped policy. (#39668) -
processor/tail_sampling: Add trace_flags policy (#43867) -
processor/tail_sampling: Provide option to limit maximum trace size kept in memory by the tail sampling processor (#45286)
Traces that exceed the size limit will be immediately dropped, not have a decision made for them. -
receiver/azureblob: Replace deprecatedazure-event-hubs-goSDK withazure-sdk-for-go(#44335) -
receiver/filelog: Suppress repeated permission-denied errors (#39491)
Only one error is logged per file per process run, and an informational message is emitted when the file becomes readable again.
This reduces log spam and improves clarity for operators. -
receiver/hostmetrics: Add support for Linux hugepages memory monitoring via system.memory.linux.hugepages metrics. (#42650)
Users can now monitor hugepages usage on host machine. -
receiver/jmx: Add the JMX scraper version "1.53.0-alpha" to the supported jars hash list (#45571) -
receiver/jmx: Add the JMX metrics gatherer version "1.53.0-alpha" to the supported jars hash list (#45570) -
receiver/k8sobjects: Add support for exclude_namespaces to exclude specific namespaces from being watched. (#36217)
Add support for exclude_namespaces to exclude specific namespaces from being watched. -
receiver/prometheus: Support removable Prometheus service discoveries via Go build tags. (#44406)
Prometheus service discoveries can now be removed at build time when building the collector with OCB (OpenTelemetry Collector Builder).
Use thebuild_tagsoption in the builder configuration to pass Go build tags such asremove_all_sdto exclude optional service discoveries.
See the Prometheus documentation for available build tags to customize which service discoveries are included. -
receiver/snowflake: Enables dynamic metric reaggregation in the Splunk Enterprise receiver. This does not break existing configuration files. (#45396) -
receiver/windowsservice: Enables dynamic metric reaggregation in the Splunk Enterprise receiver. This does not break existing configuration files. (#45396)
🧰 Bug fixes 🧰
-
exporter/coralogix: Fix unmarshalling to avoid validation errors with profiles when protocol is set to http. (#45677) -
exporter/elasticsearch: Add status code OK to success document processed metric. (#45067) -
internal/datadog: Fix race condition in gohai host metadata payload causing concurrent map access panic (#30438)
Deep copy the host metadata payload before passing it to ConsumeHostMetadata() to prevent
concurrent map access when the reporter's gohai collector refreshes maps while JSON marshaling
iterates over them. This fixes the "fatal error: concurrent map iteration and map write" panic
that occurred with multiple concurrent metric consumers and host metadata enabled. -
internal/metadataproviders: Fix kubeadm resource detector to correctly read clusterName from kubeadm configmap (#45603) -
pkg/ottl: Fix debug logs in OTTL parser to not panic when marshalling transform contexts with invalid pdata (#44705) -
pkg/stanza: Fix transformer operators logging errors at ERROR level whenon_erroris set to quiet mode (#42646) -
pkg/stanza: Fixcontaineroperator log truncation for large CRI logs (#43982)
Previously the optionmax_log_sizeof thecontaineroperator did not work correctly, with the maximum log size limited to an arbitrary value even ifmax_log_sizewas higher or set to0to remove the limit. With this changemax_log_size: 0works correctly, removing the upper limit on log size.
The default value formax_log_sizeis now changed from0to1MiBto prevent boundless memory usage. -
pkg/stanza: Fix syslog parser operator logging errors at ERROR level whenon_erroris set to quiet mode (#42646) -
pkg/stanza: Fix data race in fileconsumer FileAttributes map access (#42825) -
processor/azuredetector: Avoid set cloud.availability_zone when Azure Availability Zone is not assigned (#45642)
In cases where an Azure VM is not assigned to any Availability Zone,
thecloud.availability_zoneattribute was being set to an empty string.
This fix ensures that the attribute is only set when an Availability Zone
is indeed assigned, preventing misleading empty values. -
processor/azuredetector: Fallback to VM Name when osProfile.computerName is unavailable (#45642)
In certain Azure images, theosProfile.computerNamefield may not be set.
This fix ensures that the hostname detection falls back to using the VM Name
from the instance metadata service whenosProfile.computerNameis empty. -
processor/azuredetector: Avoid set azure.vm.scaleset.name empty when VM not in scale set (#45642)
In scenarios where a VM is not part of a scale set, the
azure.vm.scaleset.nameattribute was being set to an empty string.
This fix ensures that the attribute is only set when the VM is indeed
part of a scale set, preventing misleading empty values. -
processor/deltatocumulative: Fix panic when processing exponential histograms with empty bucket counts (#42163) -
processor/k8sattributes: Fix k8s.node.uid extraction when node.name is disabled (#45328) -
receiver/awscontainerinsightreceiver: Add cAdvisor filesystem plugin imports to fix missing NodeFS and InstanceFS metrics (#45534) -
receiver/filelog: Fixed encoding not being applied to multiline pattern matching (#39011)
Previously, when using multiline pattern matching with non-UTF-8 encodings (e.g., utf-16le),
the encoding was not properly applied during pattern matching, causing multiline patterns to fail.
This fix ensures that the specified encoding is correctly applied when processing multiline patterns,
allowing proper parsing of files with fixed-length records and no line terminators in various encodings. -
receiver/googlecloudmonitoring: Fix boolean metrics conversion to int values (#45423) -
receiver/journald: Avoid passing empty cursors to journalctl when resuming journald reads (#45435) -
receiver/libhoney: Fix timestamp in libhoney receiver (#45799)
The libhoney exporter was setting the start_time for some spans to the
current time instead of the timestamp in the event. -
receiver/receiver_creator: Do not log config in receivercreator since it could contain sensitive information (#38163)
API Changelog
🛑 Breaking changes 🛑
pkg/translator/azure: Updated OpenTelemetry semantic conversion to the latest version 1.38.0 in azure pkg. (#44801)
🚩 Deprecations 🚩
pkg/ottl: Use pointer when passing TransformContext around or calling into. (#44944)
Change Expr/Parser/Getter/Setter and all ottl related funcs to accept pointers to avoid unnecessary copy of a large
TransformContext(96B). Avoid allocating a new pcommon.Map every time a new context is created by using a Borrow/Return
pattern and reuse objects between calls. Deprecated funcs are:ottlprofile.NewTransformContextin favor ofottlprofile.NewTransformContextPtr;ottlprofilesample.NewTransformContextin favor ofottlprofilesample.NewTransformContextPtr;filterprocessor.DefaultProfileFunctionsin favor offilterprocessor.DefaultProfileFunctionsNewfilterprocessor.WithProfileFunctionsin favor offilterprocessor.WithProfileFunctionsNewtransformprocessor.DefaultProfileFunctionsin favor oftransformprocessor.DefaultProfileFunctionsNewtransformprocessor.WithProfileFunctionsin favor oftransformprocessor.WithProfileFunctionsNew
💡 Enhancements 💡
connector/routing: Update existing util functions to reduce allocs. (#45061)connector/routing: Add new util functions to copy data in routing connector. (#45061)receiver/snowflake: Enables dynamic metric reaggregation in the Splunk Enterprise receiver. This does not break existing configuration files. (#45396)receiver/windowsservice: Enables dynamic metric reaggregation in the Splunk Enterprise receiver. This does not break existing configuration files. (#45396)
We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @ValentinLvr, @giortzisg, @mwdd146980, @darccio, @ishaish103, @wmTJc9IK0Q, @byehn, @gafda, @Kausik-A, @vengalraoguttha, @khpeet, @cancub, @KyriosGN0 ! 🎉