Skip to content

Releases: open-telemetry/opentelemetry-collector-contrib

v0.141.0

01 Dec 16:18
v0.141.0
daab18f

Choose a tag to compare

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/carbon
  • receiver/bigip
  • receiver/carbon

End User Changelog

🛑 Breaking changes 🛑

  • all: fix pprofile DurationNano to be a TypeUint64 (#44397)

  • cmd/otelcontribcol: Removing unmaintained component exporter/carbon (#38913)

  • connector/spanmetrics: Add a feature gate to use the latest semantic conventions for the status code attribute on generated metrics. | This feature gate will replace the status.code attribute on the generated RED metrics with otel.status_code. | It will also replace the values STATUS_CODE_ERROR and STATUS_CODE_OK with ERROR and OK to align with the latest conventions. (#42103)
    This change is made to align with the latest semantic conventions. | The feature gate is disabled by default, but can be enabled with --feature-gates spanmetrics.statusCodeConvention.useOtelPrefix | or explicitly disabled with --feature-gates -spanmetrics.statusCodeConvention.useOtelPrefix.

  • exporter/clickhouse: Add EventName column to logs table (#42584)
    This column is optional for existing deployments. See project README for notes on how to upgrade your logs table.

  • exporter/clickhouse: Add columns for tracking JSON paths in logs + traces (#43109)
    The JSON columns now include a helper column for keeping track of what keys are inside of the JSON object.
    This change also introduces schema detection logic to reduce breaking changes whenever a column is added.
    Existing users can enable these features by manually adding all the new columns to their table.

  • exporter/kafka: exporter.kafkaexporter.UseFranzGo feature gate moved to Stable and is now always enabled (#44565)
    The franz-go client is now the default and only Kafka client library for the Kafka exporter.
    The feature gate exporter.kafkaexporter.UseFranzGo has been promoted to Stable status and cannot be disabled.
    Users can no longer opt out of using the franz-go client in favor of the legacy Sarama client.
    The Sarama client and the feature gate will be removed completely after v0.143.0.

  • extension/docker_observer: Upgrading Docker API version default from 1.24 to 1.44 (#44279)

  • pkg/ottl: Type of field profile.duration changes from time.Time to int64. (#44397)

  • receiver/azureeventhub: Promote Feature Gate receiver.azureeventhubreceiver.UseAzeventhubs to Beta (#44335)

  • receiver/k8slog: Update k8slogreceiver code-owners status and mark as unmaintained (#44078)

  • receiver/kafka: Remove deprecated topic and encoding (#44568)

  • receiver/kafka: receiver.kafkareceiver.UseFranzGo feature gate moved to Stable and is now always enabled (#44564)
    The franz-go client is now the default and only Kafka client library for the Kafka receiver.
    The feature gate receiver.kafkareceiver.UseFranzGo has been promoted to Stable status and cannot be disabled.
    Users can no longer opt out of using the franz-go client in favor of the legacy Sarama client.
    The Sarama code and the feature gate will be removed completely after v0.143.0.

🚩 Deprecations 🚩

  • receiver/prometheus: Add feature gate for extra scrape metrics in Prometheus receiver (#44181)
    deprecation of extra scrape metrics in Prometheus receiver will be removed eventually.

🚀 New components 🚀

  • connector/metricsaslogs: Add connector to convert metrics to logs (#40938)
  • extension/azure_encoding: [extension/azure_encoding] Introduce new component (#41725)
    This change includes only overall structure, readme and configuration for a new component
  • receiver/awslambda: Implementation of the AWS Lambda Receiver. (#43504)
  • receiver/macosunifiedlogging: Add a new receiver for macOS Unified Logging. (#44089)
  • receiver/macosunifiedlogging: Implementation of the macOS Unified Logging Receiver. (#44089)

💡 Enhancements 💡

  • connector/count: Support all attribute types in the count connector (#43768)

  • connector/routing: Avoid extra copy of all data during routing (#44387)

  • exporter/awss3: Support compression with ZSTD (#44542)

  • exporter/azuremonitor: Add additional mapping of standard OTel properties to builtin Application Insights properties (#40598)

  • exporter/cassandra: cassandraexporter: Upgrade cassandra library version (#43691)
    Upgrade cassandra library version.

  • exporter/elasticsearch: Updates the ecs mode span encode to include the span.kind attribute (#44139)

  • exporter/elasticsearch: add missing fields to struct so that they are populated in the respective elasticsearch index (#44234)

  • exporter/file: Add create_directory and directory_permissions options; exporter can automatically create parent directories (also honored by group_by) with configurable permissions. (#44280)

    • New config: create_directory (bool) and directory_permissions (octal string, e.g. "0755").
    • When enabled, the exporter creates the parent directory of path on start.
    • group_by uses the configured permissions when creating per-attribute directories.
  • exporter/googlecloudpubsub: Update to cloud.google.com/go/pubsub/v2. (#44465)

  • exporter/googlecloudpubsub: Add encoding extension support (#42270, #41834)
    Add encoding extension support for the payload on Pub/Sub. As having custom extensions means the Pub/Sub attributes
    cannot be auto discovered additional functionality has been added to set the message attributes.

  • exporter/prometheus: Add without_scope_info to omit otel scope info from prometheus exporter metrics (#43613)

  • exporter/prometheus: Add support to exponential histograms (#33703)

  • exporter/signalfx: Makes sending tags from SignalFx Exporter configurable (#43799)
    New optional configuration flag drop_tags has been added to SignalFx Exporter to allow users to disable tag metadata sending.
    This feature has been introduced due to a common issue among Splunk Observability customers when they're receiving more tags
    than allowed limit.

  • extension/awslogs_encoding: Add more fields to AWS NLB logs at ELB extension (#43757)

  • extension/googlecloudlogentry_encoding: Add support for Proxy Network Load Balancer logs (#44099)
    Add support for Proxy Network Load Balancer logs to the Google Cloud log entry encoding extension.
    This includes adding support for the new gcp.load_balancing.proxy_nlb attributes.
    See the README for more details.

  • extension/headers_setter: Add support for chaining with other auth extensions via additional_auth configuration parameter. This allows combining multiple authentication methods, such as OAuth2 for bearer token authentication and custom headers for additional metadata. (#43797)
    The additional_auth parameter enables the headers_setter extension to work in conjunction
    with other authentication extensions like oauth2client. The additional auth extension is called
    first to apply its authentication, then headers_setter adds its configured headers on top.

  • extension/observer: Add container name, container ID, and container image to port endpoint (#41309)

  • pkg/ottl: Add ParseSeverity function to define mappings for log severity levels. (#35778)

  • pkg/ottl: Introduce CommunityID function to generate network hash (20-byte SHA1 digest) flow from the given source and destination {IP, port}, optionally protocol and seed values. (#34062)

  • pkg/ottl: Expand usage of literal into typed getters and avoid unnecessary work (#44201)

  • pkg/ottl: SliceToMap: add support to convert slices with non-map elements to maps (#43099)

  • processor/cumulativetodelta: Add support for exponential histograms (#44106)

  • processor/resourcedetection: Use osProfile.computerName for setting host.name in Azure resource detection processor (#43959)

  • processor/resourcedetectionprocessor/oraclecloud: Oracle Cloud (OCI) resource detection processor now differentiates between running off-platform (expected not to work), and encountering an error when running on-platform (expected to work) (#42794)

    • Collectors not running on Oracle Cloud return an empty resource and no error, since we don't expect this case to work.
    • If the Oracle Cloud platform is detected but metadata fetch fails, the error is now logged and signaled to the processor, since we do expect this case to work.
  • processor/tail_sampling: Add bytes_limiting policy type, sample based on the rate of bytes per second using a token bucket algorithm. (#42509)

  • processor/tail_sampling: Adaptive expected_new_traces_per_sec to improve performance lower bound (#43561)

  • receiver/googlecloudpubsub: Update to cloud.google.com/go/pubsub/v2. (#44466)

  • receiver/googlecloudpubsub: Adjusts the subscription regex to accommodate new project naming used for Google Trusted Partner Clouds. (#43988)

  • receiver/googlecloudpubsubpush: Add telemetry metrics to the component. (#44422)

  • receiver/googlecloudpubsubpush: Add implementation to googlecloudpubsubpush receiver. (#44101)

  • receiver/k8s_events: Allow more event types like Error and Critical which are typically used by applications when creating events. (#43401)
    k8s...

Read more

v0.140.1

18 Nov 15:26
v0.140.1
7a51446

Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

There is no v0.140.0 release of Contrib, as the build action failed for that release. Release v0.140.1 was made to fix that and has no source code changes from the v0.140.0 release other than CI fixes.

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/carbon
  • receiver/bigip
  • receiver/carbon

End User Changelog

🛑 Breaking changes 🛑

  • all: Latest supported k8s version is moved from 1.17 to 1.21. (#43891)
  • cmd/otelcontribcol: Removing unmaintained component extension/ecstaskobserver (#43818)
  • exporter/elasticsearch: Upgrade profiles proto to 1.9.0 (#44031)
  • extension/googlecloudlogentry_encoding: Parse cloud armor logs into log record attributes instead of placing it in the body as is. (#43389)
  • pkg/ottl: Upgrade profiles proto to 1.9.0 (#44031)
  • processor/filter: Upgrade profiles proto to 1.9.0 (#44031)
  • processor/tail_sampling: Replace policy latency metric with total time spent executing specific sampling policy. (#42620)
    The existing latency metric was misleading and expensive to compute. The new cpu time metric can be used to find expensive policies instead.
  • receiver/pprof: Upgrade profiles proto to 1.9.0 (#44031)
  • receiver/prometheus: The prometheus receiver no longer adjusts the start time of metrics by default. (#43656)
    Disable the receiver.prometheusreceiver.RemoveStartTimeAdjustment | feature gate to temporarily re-enable this functionality. Users that need | this functionality should migrate to the metricstarttime processor, | and use the true_reset strategy for equivalent behavior.

🚀 New components 🚀

  • pkg/translator/pprof: move code from receiver/pprofreceiver to pkg/translator/pprof (#43975)
    pprof is an established format. For a better integration with OTel move code to a dedicated component.
  • receiver/awslambda: Add scaffolding for the new awslambda receiver, for event-triggered receiving of data from S3 and CloudWatch. (#43504)
  • receiver/googlecloudpubsubpush: Add skeleton to the google pub sub push receiver. (#43503)
  • receiver/systemd: Report active state of systemd units. (#33532)
  • receiver/yanggrpc: New component YANG gRPC (#43840)

💡 Enhancements 💡

  • exporter/azureblob: Added serial_num_enabled and time_parser_enabled options to blob_name_format in Azure Blob Exporter to control random serial number appending and time parsing behavior. (#43603)

  • exporter/elasticsearch: Add support for latest OTEL SemConv version and fix Elasticsearch exporter ECS mapping for message.destination.name which is different for Elastic spans or transactions (#43805, #43806)

  • exporter/elasticsearch: Add helpful error hint for illegal_argument_exception when using OTel mapping mode with Elasticsearch < 8.12 (#39282)
    When using OTel mapping mode (default from v0.122.0) with Elasticsearch versions < 8.12,
    the exporter now provides a more descriptive error message explaining that OTel mapping mode
    requires Elasticsearch 8.12+ and suggests either upgrading Elasticsearch or using a different
    mapping mode. This helps users who encounter the generic illegal_argument_exception error
    understand the root cause and resolution steps.

  • exporter/googlecloudstorage: Add googlecloudstorageexporter to the contrib distribution (#44063)

  • exporter/kafka: Adds a new configuration option to the Kafka exporter to control the linger time for the producer. (#44075)
    Since franz-go now defaults to 10ms, it's best to allow users to configure this option to suit their needs.

  • extension/datadog: Adds collector resource attributes to collector metadata payload (#43979)
    The Collector's resource attributes can be set under service::telemetry::resource.

  • extension/encoding: Add most of the AWS ELB fields to the AWSLogsEncoding. (#43757)

  • receiver/datadog: Adding log telemetry functionality to the existing datadog receiver component. (#43841)

  • receiver/github: Add include_span_events for GitHub Workflow Runs and Jobs for enhanced troubleshooting (#43180)

  • receiver/journald: Add root_path and journalctl_path config for running journald in a chroot (#43731)

  • receiver/prometheusremotewrite: Skip emitting empty metrics. (#44149)

  • receiver/prometheusremotewrite: prometheusremotewrite receiver now accepts metric type unspcified histograms. (#41840)

  • receiver/redis: Add redis metrics that are present in telegraf: cluster_enabled, tracking_total_keys, used_memory_overhead, used_memory_startup (#39859)

  • receiver/splunkenterprise: added pagination for search cases which may return more than the default 100 results (#43608)

  • receiver/webhookevent: Allow configuring larger webhook body size (#43544)
    The receiver allows configuration a larger body buffer if needed.
    It also returns an error if the body exceeds the configured limit.

🧰 Bug fixes 🧰

  • cmd/opampsupervisor: Redacts HTTP headers in debug message (#43781)

  • connector/datadog: Datadog connector no longer stalls after a downstream component errors (#43980)

  • exporter/awsxray: Fix conversion of the inProgress attribute into a Segment field instead of metadata (#44001)

  • exporter/datadog: Fix a panic from a race condition between exporter shutdown and trace export (#44068)

  • exporter/elasticsearch: Handle empty histogram buckets to not result in an invalid datapoint error. (#44022)

  • exporter/elasticsearch: Update the ecs mode span encode to correctly encode span.links ids as trace.id and span.id (#44186)

  • exporter/elasticsearch: Improve error message when an invalid Number data point is received. (#39063)

  • exporter/loadbalancing: Ensure loadbalancing child exporters use the OTLP type so backend creation succeeds (#43950)

  • exporter/stef: Fix STEF connection creation bug (#44048)
    On some rare occasions due to a bug STEF exporter was incorrectly disconnecting just | created STEF connection causing connection error messages in the log. This fixes the bug.

  • extension/bearertokenauth: Remove error messages fsnotify: can't remove non-existent watch when watching kubernetes SA tokens. (#44104)

  • processor/k8sattributes: The fix is on k8sattributes processor to only set k8s.pod.ip attribute when it is requested in the extract.metadata configuration. (#43862)
    Previously, the k8s.pod.ip attribute was always populated, even if it was not included in the extract.metadata list.
    This fix ensures that k8s.pod.ip is set only when explicitly requested, aligning the processor behavior with configuration expectations.

  • receiver/ciscoos: Rename receiver component name from ciscoosreceiver to ciscoos to follow naming conventions. (#42647)
    Users must update their collector configuration from ciscoosreceiver/device to ciscoos/device.
    This is acceptable as the component is in alpha stability.

  • receiver/sqlserver: Resolved inaccurate data sampling in query metrics collection. (#44303)

  • receiver/sqlserver: Fix incorrect logic in query metrics window calculation. (#44162)

  • receiver/sqlserver: Fixed a bug in effective value calculation of lookback time in top query collection. (#43943)

  • receiver/windowsservice: Fixed an error where incorrect permissions and bad error handling were causing the receiver to stop reporting metrics (#44087)

API Changelog

🛑 Breaking changes 🛑

  • receiver/carbon: unexport structs ParsedPath, PlaintextPathParser, function NewParser (#43966)
  • receiver/carbon: Unexport PathParserHelper (#43997)
  • receiver/googlecloudpubsub: Delete and inline functions used for tests (#43964)

💡 Enhancements 💡

  • pkg/datadog: add orchestrator explorer support in pkg/datadog/config (#44105)
  • pkg/datadog: Expose NewConnectorFactory method to instantiate the Datadog connector with injected dependencies. (#43980)

🧰 Bug fixes 🧰

  • pkg/translator/zipkin: Restore Zipkin->OTLP translation API (#44004)
  • receiver/vcenter: Skip vSAN collection and logging when all vSAN metrics are disabled (#38489)

We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @alexcams, @ishaish103, @tushar1977, @jefferbrecht, @ctorrao, @jun-mercury, @bvigar, @endorama, @blewis12, @LeonLow97, @merdzikdominik, @SquidDev ! 🎉

v0.139.0

03 Nov 23:04
v0.139.0
e425f33

Choose a tag to compare

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 🛑

  • receiver/sqlserver: Standardizing the unit interpretation of lookback_time in config for top query collection (#43573)
    Like other interval related config values, lookback_time also should suffix 's' to represent time in seconds.

💡 Enhancements 💡

  • connector/count: Support for setting attributes from scope and resource levels. Precedence order: Span (or Log Record, etc.) > Scope attributes > Resource attributes. (#41859)

  • connector/spanmetrics: Add add_resource_attributes opt-in config option to keep resource attributes in generated metrics (#43394)
    This configuration option allows users to override the connector.spanmetrics.excludeResourceMetrics feature gate
    and restore the old behavior of including resource attributes in metrics. This is needed for customers whose
    existing dashboards depend on resource attributes being present in the generated metrics.

  • exporter/azuremonitor: Add authenticator extension support to the Azure Monitor exporter. (#41004)

  • exporter/azuremonitor: Updated azure monitor exporter to use OTEL semantic conventions 1.34.0 (#41289)

  • exporter/datadog: Disabled "Successfully posted payload" log that was emitted every 500 metric exports (#43594, #43879)

  • exporter/datadog: Set sending queue batch default values to match exporter helper default: flush timeout 200ms, min size 8192, no max size. (#43848)
    The default values now match exactly the default in batch processor.

  • exporter/elasticsearch: Update Elasticsearch exporter ECS mapping mode encoder semantic convention mappings (#43805)

  • exporter/googlecloudstorage: Implement skeleton of googlecloudstorage exporter. (#43123)

  • exporter/influxdb: Fix InfluxDB Exporter precision configuration to allow choice of precision instead of hardcoding 'ns'. (#43645)

  • extension/awslogs_encoding: Enhance CloudTrail log parsing by adding support for digest files (#43403)

  • extension/awslogs_encoding: Add support for AWS Network Firewall logs. (#43616)
    The AWS Logs Encoding Extension now supports unmarshaling AWS Network Firewall logs into OpenTelemetry logs format.

  • extension/awslogs_encoding: Enhance CloudTrail log parsing by adding extra fields (#43403)

  • extension/googlecloudlogentry_encoding: Add encoding.format attribute to GCP encoding extension to identify the source format. (#43320)

  • internal/aws: Upgrade k8s libraries from v0.32.x to v0.34.x (#43890)

  • pkg/ottl: Support taking match patterns from runtime data in the replace_all_patterns and replace_pattern functions. (#43555)

  • pkg/ottl: Add TrimPrefix and TrimSuffix to OTTL (#43883)
    This is a much optimal way to remove prefix/suffix compare with replace_pattern(name, "^prefixed", "")

  • pkg/ottl: Added support for dynamic delimiter in Split() function in OTTL. (#43555)

  • pkg/ottl: Added support for dynamic delimiter in Concat() function in OTTL. (#43555)

  • pkg/ottl: Added support for dynamic prefix/suffix in HasPrefix and HasSuffix functions in OTTL. (#43555)

  • pkg/ottl: Remove unnecessary regexp compilation every execution (#43915)

  • pkg/ottl: Add unit and type subpaths for profile.sample_type and profile.period_type. (#43723)

  • pkg/ottl: Support taking match patterns from runtime data in the replace_all_matches and replace_match functions. (#43555)

  • pkg/ottl: Support taking match patterns from runtime data in the IsMatch function. (#43555)

  • pkg/ottl: Remove unnecessary full copy of maps/slices when setting value on sub-map (#43949)

  • pkg/ottl: Add XXH128 Converter function to converts a value to a XXH128 hash/digest (#42792)

  • pkg/ottl: Support dynamic keys in the delete_key and delete_matching_keys functions, allowing the key to be specified at runtime. (#43081)

  • pkg/ottl: Support paths and expressions as keys in keep_keys and keep_matching_keys (#43555)

  • pkg/ottl: Support dynamic pattern keys in ExtractPatterns and ExtractGrokPatterns functions, allowing the keys to be specified at runtime. (#43555)

  • pkg/ottl: Added support for dynamic encoding in Decode() function in OTTL. (#43555)

  • processor/filter: Allow setting OTTL conditions to filter out whole resources (#43968)
    If any conditions set under the resource key for any signals match, the resource is dropped.

  • processor/k8sattributes: Support extracting deployment name purely from the owner reference (#42530)

  • processor/metricstarttime: Graduate the metricstarttimeprocessor to beta. (#43656)

  • processor/redaction: Extend database query obfuscation to span names. Previously, database query obfuscation (SQL, Redis, MongoDB) was only applied to span attributes and log bodies. Now it also redacts sensitive data in span names. (#43778)

  • processor/resourcedetection: Add the dt.smartscape.host resource attribute to data enriched with the Dynatrace detector (#43650)

  • receiver/azureeventhub: Adds support for receiving Azure app metrics from Azure Event Hubs in the azureeventhubreceiver (#41343, #41367)
    The azureeventhubreceiver now supports receiving custom metrics emitted by applications to Azure Insights and forwarded using Diagnostic Settings to Azure Event Hub.
    There's also on optional setting to aggregate received metrics into a single metric to keep the original name, instead of multiply the metrics by added suffixes _total, _sum, _max etc.

  • receiver/ciscoosreceiver: ciscoosreceiver: Add new receiver for collecting metrics from Cisco network devices via SSH (#42647)
    Supports Cisco IOS, IOS-XE, and NX-OS devices with SSH-based metric collection.
    Initial implementation includes system scraper for device availability and connection metrics.

  • receiver/gitlab: Promote GitLab receiver to Alpha stability (#41592)

  • receiver/jmx: Add JMX metrics gatherer version 1.51.0-alpha (#43666)

  • receiver/jmx: Add JMX scraper version 1.51.0-alpha (#43667)

  • receiver/pprof: convert google/pprof to OTel profiles (#42843)

  • receiver/redfish: this branch provides the first concrete implementation of the new component (#33724)

🧰 Bug fixes 🧰

  • exporter/clickhouse: Fix a bug in the exporter factory resulting in a nil dereference panic when the clickhouse.json feature gate is enabled (#43733)

  • exporter/kafka: franz-go: Fix underreported kafka_exporter_write_latency metric (#43803)

  • exporter/loadbalancing: Fix high cardinality issue in loadbalancing exporter by moving endpoint from exporter ID to attributes (#43719)
    Previously, the exporter created unique IDs for each backend endpoint by appending the endpoint
    to the exporter ID (e.g., loadbalancing_10.11.68.62:4317). This caused high cardinality in metrics,
    especially in dynamic environments. Now the endpoint is added as an attribute instead.

  • exporter/pulsar: Fix the oauth2 flow for pulsar exporter by adding additional configuration fields (#43596)
    Fixes the oauth2 authentication flow in pulsar exporter by exposing additional configuration like private_key and scope.

  • processor/metricstarttime: Do not set start timestamp if it is already set. (#43739)

  • processor/tail_sampling: Fix panic when invalid regex was sent to string_attribute sampler (#43735)

  • receiver/awss3: Fix S3 prefix trimming logic in awss3reader to correctly handle empty, single slash '/', and double slash '//' prefixes. (#43587)
    This fix ensures the S3 object prefix is generated consistently for all prefix formats (e.g., "", /, //, /logs/, //raw//),
    preventing malformed S3 paths when reading from buckets with non-standard prefixes.

  • receiver/hostmetrics: Allow process metrics to be recorded if the host does not have cgroup functionality (#43640)

  • receiver/kafka: Corrected the documentation for the Kafka receiver to accurately the supported/default group balancer strategies. (#43892)

  • receiver/postgresql: Change the unit of the metric postgresql.table.vacuum.count to be vacuum instead of vacuums (#43272)

  • receiver/prometheus: Fix missing staleness tracking leading to missing no recorded value data points. (#43893)

  • receiver/prometheusremotewrite: Fixed a concurrency bug in the Prometheus remote write receiver where concurrent requests with identical job/instance labels would return empty responses after the first successful request. (#42159)

  • receiver/pulsar: Fix the oauth2 flow for pulsar exporter by adding additional configuration fields (#435960)
    Fixes the oauth2 authentication flow in pulsar receiver by exposing additional configuration like private_key and scope.

  • receiver/receiver_creator: Fix annotation-discovery config unmarshaling for nested configs (#43730)

API Changelog

🛑 Breaking changes 🛑

  • cmd/opampsupervisor: Remove common package, moving code where it is used instead. (#43885)
  • extension/sumologic: Move api and credentials packages to internal (#43789)
  • pkg/translator/zipkin: Unexport ToTranslator (#43852)
  • receiver/aerospike: Unexport mocks (#43788)
  • receiver/azuremonitor: unexport NewMutexMapImpl and NewSyncMapImpl (#43925)
  • receiver/jmx: unexport InsertDefault (#43965)

We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @etserend, @olofmontin-truesec, @StevenSeeger, @anhtaw, @JeffLuoo, @kyle-mccray, @lukasbindreiter, @beshbeeshy, @v1v ! 🎉

v0.138.0

20 Oct 20:13
v0.138.0
e2444bf

Choose a tag to compare

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/carbonexporter/
  • extension/healthcheckextension/
  • receiver/carbonreceiver/

End User Changelog

🛑 Breaking changes 🛑

  • connector/datadog: Mark NativeIngest as stable. (#104622)
  • connector/signaltometrics: Drop signaltometrics.service.{name, namespace} resource attribute from produced metrics. (#43148)
  • exporter/datadog: Remove logs::dump_payloads config option from datadogexporter config. (#43427)
    Please remove the previously deprecated logs::dump_payloads config option from your datadogexporter config.
  • exporter/elasticsearch: Remove batcher and related config in favor of sending queue (#42718)
    Previously deprecated batcher configuration is removed. num_consumers and flush are now deprecated as they conflict with sending_queue configurations.
  • extension/googlecloudlogentry_encoding: Parse VPC flow logs into log record attributes instead of placing them in the body directly. (#43017)

🚀 New components 🚀

  • receiver/icmpcheckreceiver: Add initial skeleton of ICMP check receiver (README, config, factory, metadata) with In Development stability. (#29009)
  • receiver/redfish: adds a redfish receiver (#33724)

💡 Enhancements 💡

  • all: Changelog entries will now have their component field checked against a list of valid components. (#43179)
    This will ensure a more standardized changelog format which makes it easier to parse.

  • cmd/telemetrygen: Enable creation of attributes with values of slice type (#39018)

  • exporter/coralogix: Add HTTP/protobuf protocol support alongside existing gRPC transport. (#43216)
    The exporter now supports both gRPC (default) and HTTP/protobuf protocols for sending telemetry data.
    HTTP transport enables proxy support and provides an alternative for environments where gRPC is restricted.
    Configure using the protocol field with values "grpc" or "http".

  • exporter/datadog: Make defaults for sending_queue::batch section to work out of the box with Datadog API intake limits. (#43082)

  • exporter/elasticsearch: Support experimental 'encoding.format' scope attribute for dataset routing. (#42844)

  • exporter/kafka: Add support for partitioning log records by trace ID (#39146)

  • exporter/prometheus: Enable sending_queue section for the Prometheus exporter. (#42629)

  • extension/awslogs_encoding: Add feature gate to set aws.vpc.flow.start timestamp field to ISO8601 format (#43392)
    Feature gate ID: extension.awslogsencoding.vpcflow.start.iso8601
    When enabled, the aws.vpc.flow.start field will be formatted as an ISO-8601 string
    instead of a Unix timestamp integer in seconds since epoch. Default behavior remains unchanged for backward compatibility.
    Enable with: --feature-gates=extension.awslogsencoding.vpcflow.start.iso8601

  • extension/encoding: Add user_agent.original, destination.address, destination.port, url.domain to ELB access logs (#43141)

  • internal/kafka: Log a hint when broker connections fail due to possible TLS misconfiguration (#40145)

  • pkg/ottl: Add XXH3 Converter function to converts a value to a XXH3 hash/digest (#42792)

  • pkg/sampling: Note that pkg/sampling implements the new OpenTelemetry specification (#43396)

  • processor/filter: Add profiles support (#42762)

  • processor/isolationforest: Add adaptive window sizing feature that automatically adjusts window size based on traffic patterns, memory usage, and model stability (#42751)
    The adaptive window sizing feature enables dynamic adjustment of the isolation forest sliding window size based on:

    • Traffic velocity and throughput patterns
    • Memory usage and resource constraints
    • Model stability and performance metrics
      This enhancement improves resource utilization and anomaly detection accuracy for varying workload patterns.
  • processor/resourcedetection: Add Openstack Nova resource detector to gather Openstack instance metadata as resource attributes (#39117)
    The Openstack Nova resource detector has been added to gather metadata such as host name, ID, cloud provider, region, and availability zone as resource attributes, enhancing the observability of Openstack environments.

  • processor/resourcedetection: Add Azure availability zone to resourcedetectionprocessor (#40983)

  • receiver/azuremonitor: parallelize calls by subscriptions in Batch API mode (#39417)

  • receiver/ciscoosreceiver: Add ciscoosreceiver to collect metrics from Cisco OS devices via SSH (#42647)
    Supports SSH-based metric collection from Cisco devices including:

    • System metrics (CPU, memory utilization)
    • Interface metrics (bytes, packets, errors, status)
    • Configurable scrapers for modular metric collection
    • Device authentication via password or SSH key
  • receiver/gitlab: Add span attributes in GitLab receiver (#35207)

  • receiver/hostmetrics: Add metrics, Linux scraper, and tests to hostmetricsreceiver's nfsscraper (#40134)

  • receiver/icmpcheckreceiver: Add complete scraping implementation with ICMP ping/echo to collect metrics (#29009)
    Replaces skeleton implementation with full production-ready collector functionality.
    Includes metrics metadata and completed configuration.
    Includes real scraper implementation that performs ICMP checks and collects metrics.
    Includes README docs.

  • receiver/mysql: Support query-level collection. (#41847)
    Added top query (most time consumed) collection. The query will gather the queries took most of the time during the last
    query interval and report related metrics. The number of queries can be configured. This will enable user to have better
    understanding on what is going on with the database. This enhancement empowers users to not only monitor but also actively
    manage and optimize their MySQL database performance based on real usage patterns.

  • receiver/prometheus: added NHCB(native histogram wit custom buckets) to explicit histogram conversion (#41131)

  • receiver/redis: Add ClusterInfo capability to redisreceiver (#38117)

  • receiver/splunkenterprise: Added a new metric splunk.license.expiration.seconds_remaining to report the time remaining in seconds before a Splunk Enterprise license expires. (#42630)

    • Includes the following attributes: status, label, type.
  • receiver/sqlserver: Removing instance name usage in the SQL for top-query collection. (#43558)
    Additional config of instance name is not required for collecting the top queries.

  • receiver/syslog: Promote Syslog receiver to beta stability (#28551)

🧰 Bug fixes 🧰

  • exporter/awss3: Support compression with the sumo_ic marshaller (#43574)
  • exporter/elasticsearch: Ensure metadata keys are always propagated in client context with batching enabled. (#41937)
  • exporter/prometheus: Fixes data_type field formatting in the error logs message when exporting unknown metrics types - e.g. native histograms. (#43595)
  • exporter/syslog: Fix timestamp formatting in rfc5424 syslog messages to use microsecond precision (#43114)
  • processor/metricstarttime: Fixes bug where adjustment only relied on the DoubleValue and ignored the IntValue (#42202)
  • receiver/k8s_cluster: Fix for k8sclusterreceiver to handle empty containerID in ContainerStatus (#43147)
  • receiver/libhoney: fix panic when decompressing poorly formatted data (#42272)
    When decompressing poorly formatted data, the receiver would panic. This has now been fixed.
  • receiver/oracledb: Fix to use time from database clock for more accurate collection window calculation. (#43621)
    Fixed the top-query collection logic to use database clock instead of the time from collector instance.

API Changelog

🛑 Breaking changes 🛑

  • exporter/tencentcloud_logservice: Unexport Log_Content, LogTag, Log, LogGroupList, LogGroup (#43138)
  • pkg/datadog: Move feature gates ReceiveResourceSpansV2FeatureGate, OperationAndResourceNameV2FeatureGate, and MetricRemappingDisabledFeatureGate from pkg/datadog to new submodule pkg/datadog/featuregates (#43631)

🚩 Deprecations 🚩

  • pkg/datadog: Remove logs::dump_payloads config option from pkg/datadog config. (#43427)

💡 Enhancements 💡

  • pkg/ottl: Add support for literal getters (#40222)
    This enhancement introduces the ottl.GetLiteralValue function to OTTL, enabling compile-time optimization for getters that
    contain literal values. When a getter is identified as containing a literal value, OTTL functions can now access that value
    at build time rather than runtime, improving performance for common use cases like pattern matching with static strings.

  • processor/filter: Add profiles support (#42762)

  • receiver/hostmetrics: Add metrics, Linux scraper, and tests to hostmetricsreceiver's nfsscraper (#40134)

We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @falken, @joecompute, @liamfd, @steven-freed, @RealAnna, @survivant, @gnak-yar, @bruegth, @rmarra ! 🎉

v0.137.0

06 Oct 22:31
v0.137.0
7e4bf11

Choose a tag to compare

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.

  • extension/healthcheck
  • exporter/carbon
  • receiver/carbon

End User Changelog

🛑 Breaking changes 🛑

  • spanmetricsconnector: Exclude all resource attributes in spanmetrics (#42103)
    This change aligns with the ServiceGraph implementation and may introduce a breaking change:

    • Users utilizing Prometheus remote write will not experience a breaking change.
    • Users using OTLP/HTTP may encounter a breaking change.

    The change is currently guarded by the feature gate connector.spanmetrics.excludeResourceMetrics and is disabled by default.
    It will be enabled by default in the next release.

  • spanmetricsconnector: Change default duration metrics unit from ms to s (#42462)
    This change introduces a breaking change, which is now guarded by the feature gate connector.spanmetrics.useSecondAsDefaultMetricsUnit.
    Currently, the feature gate is disabled by default, so the unit will remain ms. After one release cycle, the unit will switch to s and the feature gate will also be enabled by default.

  • splunkhecexporter: Removed deprecated HecToOtelAttrs configuration from splunkhecexporter (#43005)

  • signalfxreceiver: Removed deprecated configuration option: access_token_passthrough (#43048)
    As access token passthrough option is no longer supported, to achieve similar behavior configure your collector
    to use the headers_setter extension to pass the access token.

  • stefexporter, stefreceiver: Update to STEF 0.0.8. This is a breaking change in protocol format. (#42949)
    Make sure to update both ends (receiver and exporter) to the same STEF version.

🚩 Deprecations 🚩

  • awslogsencodingextension: Rename awslogsencodingextension format values to shorter, more concise identifiers. Old format values are still supported until v0.138.0. (#42901)
  • pkg/datadog, exporter/datadog, extension/datadog: Deprecates StaticAPIKeyCheck, stops doing validation for API key characters in Datadog exporter and extension. (#42677)
    This was causing issues to users since validation of secrets is challenging

🚀 New components 🚀

  • googlecloudstorageexporter: Add skeleton of googlecloudstorage exporter (#42137)

  • receiver/ciscoosreceiver: Add initial skeleton of Cisco OS receiver (README, config, factory, metadata) with In Development stability. (#42647)
    This PR adds structure only (no scraping implementation yet).
    Scrapers and SSH-based collection logic (BGP, Environment, Facts, Interfaces, Optics) will be added in follow-up PRs.

  • unrollprocessor: Adds a processor that generically takes a log body of slices and creates new entries from that slice. (#42491)

  • resourcedetectionprocessor: Added Oracle Cloud resource detection support to resourcedetectionprocessor, enabling automatic population of Oracle Cloud-specific resource attributes. (#35091)
    This update allows the OpenTelemetry Collector to detect and annotate telemetry with Oracle Cloud resource metadata when running in Oracle Cloud environments.
    Includes new unit tests and documentation.

💡 Enhancements 💡

  • redactionprocessor: Add support for URL sanitization in the redaction processor. (#41535)

  • unrollprocessor: Bump the stability to Alpha, and include it in otelcontribcol (#42917)

  • awscloudwatchlogsexporter: Adding yaten2302 as code owner for awscloudwatchlogsexporter, move it from unmaintained to alpha (#43039)

  • coralogixexporter: Add Automatic AWS PrivateLink set up via new private_link configuration option (#43075)
    When enabled, the exporter will automatically use the AWS PrivateLink endpoint for the configured domain.
    If the domain is already set to a PrivateLink one, no further change to the endpoint will be made.

  • receiver/kafkametricsreceiver: Add support for using franz-go client under a feature gate (#41480)

  • receiver/k8seventsreceiver: Added support for Leader Election into k8seventsreceiver using k8sleaderelector extension. (#42266)

  • receiver/k8sobjectsreceiver: Switch to standby mode when leader lease is lost instead of shutdown (#42706)

  • kafkareceiver: Add max_partition_fetch_size configuration option to kafkareceiver (#43097)

  • processor/resourcedetection: Add support for DigitalOcean in resourcedetectionprocessor (#42803)

  • processor/resourcedetection: Add support for upcloud in resourcedetectionprocessor (#42801)

  • receiver/kafka: Add support for disabling KIP-320 (truncation detection via leader epoch) for Franz-Go (#42226)

  • haproxyreceiver: Add support for act, weight, ctime, qtime, rtime, bck and slim metrics from HAProxy (#42829)

  • hostmetricsreceiver: Add useMemAvailable feature gate to use the MemAvailable kernel's statistic to compute the "used" memory usage (#42221)

  • otlpencodingextension: Promote the otlpencodingextension extension to beta. (#41596)

  • receiver/kafkareceiver: Use franz-go client for Kafka receiver as default, promoting the receiver.kafkareceiver.UseFranzGo feature gate to Beta. (#42155)

  • oracledbreceiver: Add service.instance.id resource attribute (#42402)
    The service.instance.id resource attribute is added in the format <host>:<port>/<service> to uniquely identify
    Oracle DB hosts. This resource attribute is enabled by default for metrics and logs.

  • extension/SumologicExtension: removing collector name from credential path for sumologic extension (#42511)

  • opensearchexporter: Add support for bodymap mapping mode (#41654)
    The bodymap mapping mode supports only logs and uses the body of a log record as the exact content of the OpenSearch document, without any transformation.

  • tailsamplingprocessor: Add support for extensions that implement sampling policies. (#31582)
    Extension support for tailsamplingprocessor is still in development and the interfaces may change at any time.

  • telemetrygen: Add span links support to telemetrygen (#43007)
    The new --span-links flag allows generating spans with links to previously created spans.
    Each span can link to random existing span contexts, creating relationships between spans for testing
    distributed tracing scenarios. Links include attributes for link type and index identification.

  • telemetrygen: Add load size to telemetrygen metrics and logs. (#42322)

🧰 Bug fixes 🧰

  • awsxrayexporter: infer downstream service for producer spans (#40995)

  • azureeventhubreceiver: Use $Default as the default consumer group with the new azeventhubs SDK (#43049)

  • azureeventhubreceiver: Offset configuration option is now correctly honored, and the default start position is set to latest. (#38487)

  • elasticsearchexporter: Fix routing of collector self-telemetry data (#42679)

  • elasticsearchexporter: profiling: fix fetching location for stack (#42891)

  • receiver/googlecloudmonitoring: Add metric labels from Google Cloud metrics to all OTel metric attributes (#42232)

  • jmxreceiver: Fix the jmx-scraper hash for version 1.49.0 (#121332)

  • postgreqsqlreceiver: Fix for memory leak when using top queries (#43076)

  • ntpreceiver: Fix missing resource attribute 'ntp.host' to ntpreceiver metrics (#43129)

  • receiver/k8seventsreceiver: Prevent potential panic in the events receiver by safely checking that informer objects are *corev1.Event before handling them. (#43014)

  • awscloudwatchlogexporter, awsemfexporter, awsxrayexporter: Fix support for role_arn (STS, short-lived token authentication). (#42115)

  • jmxreceiver: restart the java process on error (#42138)
    Previously, the java process would not restart on error. By default, this receiver will now
    always restart the process on error.

  • processor/k8sattributes: Use podUID instead podName to determine which pods should be deleted from cache (#42978)

  • kafka: Fix support for protocol_version in franz-go client (#42795)

  • libhoneyreceiver: return full array of statuses per event (#42272)
    Libhoney has a per-event-within-each-batch response code array for each batch received. This has now been implemented for both initial parsing errors as well as downstream consumer errors.

  • telemetrygen: Publish int and bool attributes for logs (#43090)

  • oracledbreceiver: Fix for wrong trace id in oracle top query records (#43111)

  • oracledbreceiver: Fix for memory leak in top queries and query samples collection. (#43074)

  • prometheusexporter, prometheusremotewriteexporter: Connect pkg.translator.prometheus.PermissiveLabelSanitization with relevant logic. (#43077)

  • postgresqlreceiver: Properly set network.peer.address attribute (#42447)

  • postgresqlreceiver: Fix for inflated metric values in query metrics collection (#43071)

  • prometheusexporter: Fix 'failed to build namespace' logged as error when namespace is not configured (#43015)

  • signalfxexporter: Add HostID resource attribute to Histogram data in OTLP format (#42905)

  • statsdreceiver: Fix a data race in statsdreceiver on shutdown (#42878)

API Changelog

🛑 Breaking changes 🛑

  • libhoneyreceiver: Unexport JSONEncoder (#43133)

🚩 Deprecations 🚩

  • pkg/datadog, exporter/datadog, extension/datadog: Deprecates StaticAPIKeyCheck, stops doing validation for API key characters in Datadog exporter and extension. (#42677)
    This was causing issues to users since validation of secrets i...
Read more

v0.136.0

22 Sep 21:37
v0.136.0
f5f5c4a

Choose a tag to compare

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 🛑

💡 Enhancements 💡

  • azureblobexporter: Added template_enabled option to azureblobexporter blob_name_format to enable or disable template rendering. (#42643)

  • prometheusremotewritereceiver: Adds support to accept METRIC_TYPE_UNSPECIFIED as gauge type (#41840)

  • isolationforestprocessor: Add comprehensive unit tests with 93% coverage (#42693)

  • exporter/awss3: Add S3PartitionTimezone config value to be able to change the timezone used for time-based partitioning (#42319)

  • clickhouseexporter: Add TLS configuration for cert based authentication. (#22805)

  • telemetrygen: Updates the semconv to use 1.37.0 (#42567)

  • coralogixexporter: Enable rate limiter mechanism in the Coralogix exporter. To disable it set rate_limiter.enabled to false. (#42552)

  • failoverconnector: Adds queue_settings to failoverconnector to enable queueing on the "exporter portion" of the connector. (#33077)

  • farotranslator, faroreceiver: Do not use faro event timestamp as the log record timestamp (#42600)
    Faro events originate in the user's browser, where the local clock may differ from actual time. | As a result, log record timestamps can be inaccurate, leading to ingestion issues (e.g., timestamps too old or too far in the future).

  • processor/k8sattributesprocessor: Add support for k8s.cronjob.uid attribute in k8sattributesprocessor (#42557)

  • awslogsencodingextension: Add instrumentation scope attributes to aws logs (#42788)

  • opampsupervisor: Add support for client initiated OpAMP heartbeats in the supervisor. (#42533)

  • internal/tools: Add support for modernize in Makefile (#42542)

  • processor/resourcedetection: Add support for linode cloud in resourcedetectionprocessor (#42543)

  • processor/resourcedetectionprocessor: Add support for Scaleway host image attributes in the resourcedetectionprocessor (#42682)

  • processor/resourcedetectionprocessor: Add support for Vultr cloud provider in the resourcedetectionprocessor (#42569)

  • spanmetricsconnector: Supports adding the collector.instance.id attribute to data points generated by the spanmetrics connector. (#40400)
    This feature currently in alpha stage, user should enable it by feature-gate --feature-gates=+connector.spanmetrics.includeCollectorInstanceID

  • processor/resourcedetectionprocessor: Add support for Scaleway cloud provider in the resourcedetectionprocessor (#42664)

  • exporter/awss3exporter: adds configuration field 's3_base_prefix' to be able to set a base path for all S3 file uploads (#42661)

  • journaldreceiver: Enable reading from all journals, including remote ones. A new option merge is added to the configuration. (#39188)

  • kafkametricsreceiver: Implement client reset for recoverable errors in Sarama calls (#41363)
    This change implements client reset functionality to address recoverable errors in Sarama calls, such as connection resets and EOF errors. When a recoverable error is encountered, the client is reset, enabling the scraper to reconnect and resume metric collection seamlessly.

  • tailsamplingprocessor: Set a tailsampling.cached_decision attribute on traces that were sampled by the decision cache. (#42535)

  • postgresqlreceiver: Including execution time metric for currently running queries in query samples. (#42429)
    The duration for currently running queries is calculated using the query_start time available in pg_stat_activity table.

  • receiver/k8scluster: Add experimental metric for container status reason (#32457)

  • telemetrygen: Add --allow-export-failures flag to telemetrygen to continue running when export operations fail (instead of terminating) (#42135)

  • telemetrygen: Add exponential histogram metric type to telemetrygen (#42322)

  • countconnector: Updates the countconnector metric timestamps to use earliest timestamp from batch as start timestamp and latest as timestamp, instead of using timestamp from metric creation time. (#40573)

🧰 Bug fixes 🧰

  • receiver/snowflake, receiver/sqlquery: Fix panic on startup caused by gosnowflake v1.16.0 (#42605)
    The solution was to downgrade the dependency version to v1.15.0.
    For more information, refer to the upstream gosnowflake issue

  • elasticsearchexporter: Fix a bug where data stream attributes in 'none' mapping mode have invalid prefix. (#42454)

  • kafkaexporter: Fix bug where Kafka exporter ignored auth.tls configuration syntax. (#42754)

  • extension/storage: Fix 'recreate' rename file only on panic (#41802)

    • This recovers from a panic when the bbolt db is corrupted and renames the file when a panic occurs.
    • This changes the recreate behavior to not rename the file upon every start of the collector.
  • isolationforestprocessor: This PR fixes goroutine leaks in the isolation forest processor caused by improper shutdown coordination of background modelUpdateLoop goroutines. (#42675)

  • servicegraphconnector: Fix exponential histogram doesn't clean when expire (#42019)

  • awss3receiver: Ensures default wait time is applied in SQS configuration when not explicitly set. (#42608)

  • exporter/loadbalancing: Drop resources if the service routing key does not exist (#41550)

  • processor/redaction: Support redaction of scope level atrributes (#42659)

  • faroexporter: Fix success response handling in faroexporter so any HTTP 2xx status code indicates success instead of only 202 Accepted. (#42658)

  • splunkenterprisereceiver: Fix a typo from a previous PR implementing the search artifact size metrics, which has caused errors from parsing empty strings. (#42615)

  • signalfxexporter: Only validate the root_path of the collector if sync_host_metadata is enabled. (#42688)

API Changelog

🛑 Breaking changes 🛑

  • datadogexporter: Deprecate zorkian codepath (#17373)
    Feature gate exporter.datadogexporter.metricexportnativeclient is now deprecated; the default metrics exporter is now
    Metrics Export Serializer unless feature gate exporter.datadogexporter.metricexportserializerclient is disabled.
    See https://github.com/open-telemetry/opentelemetry-collector-contrib/releases/tag/v0.122.0 and #37930 for more
    info about Metrics Export Serializer.

  • pkg/translator/prometheusremotewrite: Function 'OtelMetricsToMetadata' now returns an error if unable to convert a metric to metadata (#42493)

We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @gnak-yar, @felix-hilden, @alont, @jeanbza, @belimawr, @genehynson, @maryliag, @jaehanbyun, @briandavis-viz, @marcusteixeira, @csmarchbanks, @ywwg, @mymmrac ! 🎉

v0.135.0

08 Sep 20:08
05252e1

Choose a tag to compare

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.

  • extension/oidcauth
  • exporter/carbon
  • receiver/carbon

End User Changelog

🛑 Breaking changes 🛑

  • apachereceiver: Add number of connections per async state metrics. (#41886)

  • githubreceiver: Update semantic conventions from v1.27.0 to v1.37.0 with standardized VCS and CICD attributes (#42378)

    • Resource attributes changed: organization.name -> vcs.owner.name, vcs.vendor.name -> vcs.provider.name
    • Trace attributes now use standardized VCS naming: vcs.ref.head.type -> vcs.ref.type
    • Added new standardized attributes: vcs.ref.base.name, vcs.ref.base.type, vcs.ref.type
    • Delta metrics now include base reference tracking attributes
    • Updated schema URL to https://opentelemetry.io/schemas/1.37.0
  • k8sattributesprocessor: Introduce allowLabelsAnnotationsSingular feature gate to use singular format for k8s label and annotation resource attributes (#39774)
    The feature gate, when enabled, will change the default resource attribute key format from k8s..labels. to k8s..label.. Same applies for annotations.

  • receiver/sapm: The SAPM Receiver component has been removed from the repo and is no longer being published as it has been deprecated since 22nd October 2024 and the removal date of April 2025 has passed. (#41411)

💡 Enhancements 💡

  • transformprocessor: Add support for merging histogram buckets. (#40280)
    The transformprocessor now supports merging histogram buckets using the merge_histogram_buckets function.

  • k8seventsreceiver: Adds scope name and version to logs (#42426)

  • googlecloudlogentry_encoding: Add support for request attributes and destination attributes in cloud audit logs (#42160)

  • azureeventhubreceiver: Added feature flag to use the new Azure SDK (#40795)

  • dockerstatsreceiver: Add Windows support (#42297)
    The dockerstatsreceiver now supports Windows hosts.

  • elasticsearchexporter: Populate profiling-hosts index with resource attribute information. (#42220)

  • tinybirdexporter: Limit request body to 10MB to avoid exceeding the EventsAPI size limit. (#41782)

  • exporter/kafkaexporter: Use franz-go client for Kafka exporter as default, promoting the exporter.kafkaexporter.UseFranzGo feature gate to Beta. (#42156)

  • exporter/kafka: Add allow_auto_topic_creation producer option to kafka exporter and client (#42468)

  • processor/resourcedetection: Add support for hetzner cloud in resourcedetectionprocessor (#42476)

  • kafkareceiver: Add rack_id configuration option to enable rack-aware replica selection (#42313)
    When configured and brokers support rack-aware replica selection, the client will prefer fetching from the closest replica, potentially reducing latency and improving performance.

  • statsdreceiver: Introduce explicit bucket for statsd receiver (#41203, #41503)

  • coreinternal/aggregateutil: Aggregate exponential histogram data points when different offsets are present (#42412)

  • prometheusremotewriteexporter: Remove unnecessary buffer copy in proto conversion (#42329)

  • pkg/translator/prometheusremotewrite: FromMetricsV2 now supports translating exponential histograms. (#33661)
    The translation layer for Prometheus remote write 2 now supports exponential histograms but is not fully implemented and ready for use.

  • processor/k8sattributes: Support extracting labels and annotations from k8s DaemonSets (#37957)

  • processor/k8sattributes: Support extracting labels and annotations from k8s Jobs (#37957)

  • k8sclusterreceiver: Add option namespaces for setting a list of namespaces to be observed by the receiver. This supersedes the namespace option which is now deprecated. (#40089)

  • k8sobjectsreceiver: Adds the instrumentation scope name and version (#42290)

  • receiver/kubeletstats: Introduce k8s.pod.volume.usage metric. (#40476)

  • datadogexporter: Add alpha feature gate 'exporter.datadogexporter.InferIntervalForDeltaMetrics'. (#42494)
    This feature gate will set the interval for OTLP delta metrics mapped by the exporter when it can infer them.

  • sqlserverreceiver: Add service.instance.id resource attribute to all metrics and logs (#41894)
    The service.instance.id attribute is added in the format <host>:<port> to uniquely identify
    SQL Server hosts.

🧰 Bug fixes 🧰

  • awslogsencodingextension: Fixed gzip header detection for mixed compressed/uncompressed files (#41884)
    The extension now properly detects gzip magic bytes (0x1f, 0x8b) before attempting decompression,
    preventing "gzip: invalid header" errors when processing files with .gz extensions that are not actually compressed.
    Affected formats: WAF logs, CloudTrail logs, CloudWatch subscription filter logs, and VPC Flow logs.

  • opampsupervisor: Always respond to RemoteConfig messages with a RemoteConfigStatus message (#42474)
    Previously the Supervisor would not respond if the effective config did not change.
    This caused issues where the same config with a different hash (e.g. reordered keys in the config)
    would not be reported and would appear unapplied by the Supervisor.

  • elasticsearchexporter: Ignore expected errors when making bulk requests to profiling indices. (#38598)

  • libhoneyreceiver: Properly handle compressed payloads (#42279)
    Compression issues now return a 400 status rather than panic. Exposes the http library's compression algorthms to let users override if needed.

  • libhoneyreceiver: Allow service.name with unset scope.name (#42432)
    This change allows the receiver to handle multiple service.names even if there are spans without the scope set. It also avoids a panic when a downstream consumer is missing.

API Changelog

💡 Enhancements 💡

  • datadog: remove references to DataDog/opentelemetry-mapping-go library in favor of DataDog/datadog-agent/pkg/opentelemetry-mapping-go (#42475)
    No change to end user behavior.

We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @paulojmdias, @jelly-afk, @jasperkamerling, @olljanat, @kangyili, @devamanv, @panekk, @juissi-t, @DovronK, @piotrbelina, @adithya-r-nathan ! 🎉

v0.134.0

30 Aug 05:28
v0.134.0
88441c5

Choose a tag to compare

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 🛑

  • receiver/awscloudwatchmetrics: Remove unmaintained component (#42238)
  • opencensusreceiver: Remove the deprecated opencensus receiver. (#36791)
  • opencensusexporter: Remove the deprecated opencensus exporter. (#36791)
  • pkg/ottl: Keep the original map and continue processing keys if an error is encountered when calling an optional replacement function in replace_all_patterns. (#42359)

💡 Enhancements 💡

  • cmd/opampsupervisor: Add metrics to the Supervisor application. (#40155)
    Add some metrics to the cmd/opampsupervisor application.

    The following metrics are added:

    • supervisor.collector.health_status: The health status of the collector.
  • cfgardenobserver: Move to alpha (#41586)

  • exporter/prometheus: Add debug logging for refused metric points. (#13643)

  • httpcheckreceiver: Add response body validation (#41325)
    The httpcheckreceiver now supports validating the response body using a few approaches.
    String matching, JSON path matching, size ranges, and regex matching are supported.

  • httpcheckreceiver: Fix race for timing of request steps (#42042)
    The httpcheckreceiver uses atomic operations to track the timing of request steps to avoid race conditions.

  • pkg/ottl: Avoid multiple copies of the Map in replace_all_patterns. (#42359)

  • kafkareceiver: Add profiles support (#41479)

  • pkg/ottl: Remove unnecessary Value initialization when setting an attribute/body (#42335, #42362)

  • opampsupervisor: Emit spans for handling OpAMP messages (#38724)

  • pkg/ottl: Add an Index(target, value) OTTL function which returns the index of the first occurrence of value in target. (#40351)

  • pkg/stanza: add sanitize_utf8 operator to replace invalid UTF-8 characters. (#42028)

🧰 Bug fixes 🧰

  • elasticsearchexporter: Fix the warning on Kibana when using sum operation on delta temporality sum metric mapped as a counter (#40804)

  • failoverconnector: fix for flaky test in failover_test.go (#42020)

  • k8sattributesprocessor: Allow service.namespace to be used in rules and fix docs (#40859)

  • prometheusremotewriteexporter: Make sure concurrency is set to the appropriate value (#41785)

  • tailsamplingprocessor: Fix a race condition in the tailsampling processor that could cause traces to be dropped prematurely. (#41656)

  • sqlserverreceiver: Fix memory leak from top queries and query samples features (#42302)
    The issue was caused by the misuse of the obfuscate library.

  • telemetrygen: Fix infinite duration bug and add tests. (#42170)

API Changelog

We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @leegin, @asopkin ! 🎉

v0.133.0

25 Aug 21:03
v0.133.0
a55f7f0

Choose a tag to compare

The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.

End User Changelog

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/awscloudwatchlogsexporter
  • exporter/carbonexporter
  • extension/healthcheck
  • extension/ecstaskobserver
  • processor/routingprocessor
  • receiver/awscloudwatchmetricsreceiver
  • receiver/bigipreceiver
  • receiver/carbonreceiver

🛑 Breaking changes 🛑

  • coralogixexporter: Remove unused deprecated configgrpc.ClientConfig (#40853)
  • googlecloudlogentry_encoding: Parse cloud audit logs into log record attributes instead of placing it in the body as is. (#42035)
  • all: Increase minimum Go version to 1.24 (#41968)
  • signaltometricsconnector: Use configoptional for optional metric fields (#41922)
  • routingprocessor: Remove deprecated component routingprocessor (#19739)
    Please use the routing connector instead.

💡 Enhancements 💡

  • elasticsearchexporter: Enhance telemetry metrics to include error.type attribute for better error categorization. (#41962)
    Improve the telemetry metrics by adding the error.type attribute to the
    elasticsearch.docs.processed metric. This change allows for better
    categorization and understanding of errors that occurs while processing documents.

  • awslogsencodingextension: Adds aws.access_key.id to CloudTrail logs and aligns aws.resources attribute fields with naming conventions. (#41815)

  • k8sclusterreceiver: Add optional experimental k8s.container.status.state metric (#32457, #32457)

  • farotranslator: Improve error hashing by draining exception values (#42032)

  • faroreceiver: Added Timestamp, ObservedTimestamp, SpanId, TraceId fields to the Log Record (#40800)

  • kafkareceiver: Add on_permanent_error option to message_marking configuration. (#41333)

  • filelogreceiver: Move filelog.decompressFingerprint feature gate to beta stage (#42189)

  • googlecloudlogentry_encoding: Add support to decode multiple logs (#41137)

  • httpcheckreceiver: Add request body to http requests (#41325)
    The httpcheckreceiver can be configured to send a request body to the target endpoint.

  • tailsamplingprocessor: Optimize telemetry collection in tailsamplingprocessor (#41888)

  • zipkinexporter: Include instrumentation scope attributes (#39206)

  • oidcauthextension: Add support for accessing custom JWT claims. (#41449)
    Users can now access JWT claims from OIDC Auth context allowing dynamic processing based on received JWT token.

  • oracledbreceiver: Add support for Oracle DB receiver to read session action as trace context. (#41878)

  • oracledbreceiver: Removing the toLowercase conversion on sql text in top_query payload. Also, adding child_address into the query_samples payload. (#37478)

  • opensearchexporter: Add dynamic index naming support for traces (#34746, #38595)

    • This feature supports trace index names in config.
    • It allows users to specify dynamic trace indices based on attributes.
    • It supports time-based index name formatting and fallback options.
    • Improves code consistency between logs and trace exporter.
  • exporter/prometheusremotewriteexporter: Improve logging of remote write errors (#41856)

  • prometheusreceiver: Remove temporary fix for metric name validation, fix upstream resolved (#42004)

  • metricstarttimeprocessor: Add reset detection to the starttimemetric strategy in the metricstarttimeprocessor (#41870)

  • tailsamplingprocessor: Add a new option to block on num traces overflow. (#41546)

  • cmd/telemetrygen: Support custom metric names via --otlp-metric-name flag (#42070)

  • telemetrygen: Allow inf duration for continuous run (#40225)

  • textencodingextension: Move textencodingextension to beta (#41595)

  • receiver/webhookeventreceiver: Adds configuration to split logs at JSON object boundaries. (#39766)

  • webhookeventreceiver: Move webhookevent receiver to beta (#41997)

🧰 Bug fixes 🧰

  • awss3receiver: Fixed an issue where the AWS S3 receiver failed to retrieve data from S3 buckets when notified by SQS if the S3 key was URL-encoded. (#42027)
  • jmxreceiver: support jmx_configs for jmx scraper usecase (#41952)
  • logdedupprocessor: Fix UB caused by holding reference to mutable data. (#42147)
  • metricstarttimeprocessor: Fix UB caused by holding reference to mutable data. (#42151)
  • libhoneyreceiver: Parsing Span and Trace IDs no longer panic if there is a parsing issue. (#42200)
  • vcenterreceiver: Fixes a potential issue with vm collection without a types.VirtualMachineConfigInfo attached to the VM. (#42098)
  • prometheusreceiver: Fixes a bug where static configuration labels were dropped when using the Prometheus receiver. Previously, labels defined in the static config were not being applied to the metrics. (#41727)
  • opencensusreceiver: Perform graceful shutdown of HTTP server on shutdown (#42117)
  • signaltometricsconnector: Strictly validate configuration for component. (#41970)
  • mysqlreceiver: Fix for the conversion error on mysql.event_id. Setting an int (0) as default value in SQL. (#42040)
  • windowseventlogreceiver: Fixes issue for remote log collection where domain was not properly passed into EvtOpenSession syscall (#41950)

API Changelog

🛑 Breaking changes 🛑

  • signaltometricsconnector: Use configoptional for optional metric fields (#41922)
  • azureauthextension: Use configoptional for optional fields in azureauthextension config. (#41926)
  • libhoneyreceiver: Use configoptional for HTTP config in libhoneyreceiver (#41974)
  • sumologicprocessor: Remove unnecessary pointer for types in configuration struct. (#41928)
  • receiver/prometheus: Use configoptional for optional fields (#42140)
  • prometheusremotewriteexporter: Use configoptional for WAL configuration (#41980)
  • jaegerreceiver: Use configoptional for optional protocol sections. (#41982)
  • pulsarreceiver: Use configoptional for optional authentication fields. (#41920)
  • awscloudwatchreceiver: Remove pointer from type of config (#41975)
  • mongodbatlasreceiver: Use configoptional and remove pointer for Config fields (#41939)
  • solacereceiver: Use configoptional for optional types (#41977)
  • spanmetricsconnector: Use configoptional for optional fields (#41941)

🚩 Deprecations 🚩

  • opencensusreceiver, opencensusexporter: Deprecate opencensusreceiver and opencensusexporter. (#36791)

💡 Enhancements 💡

  • filterprocessor: Create With*Functions factory options to provide custom OTTL functions for logs, metrics or traces to the resulting filter processor. (#40948)
  • oidcauthextension: Add support for accessing custom JWT claims. (#41449)
    Users can now access JWT claims from OIDC Auth context allowing dynamic processing based on received JWT token.

We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @mar4uk, @sitole, @bohub12, @crazyuploader, @7h3-3mp7y-m4n, @yaten2302, @jasonjoo2010, @tdn21, @araiu ! 🎉

v0.132.0

12 Aug 16:29
b42536f

Choose a tag to compare

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/awscloudwatchlogsexporter
  • exporter/carbonexporter
  • extension/healthcheck
  • extension/ecstaskobserver
  • processor/routingprocessor
  • receiver/awscloudwatchmetricsreceiver
  • receiver/bigipreceiver
  • receiver/carbonreceiver

End User Changelog

🛑 Breaking changes 🛑

  • azuremonitorreceiver: Updated append_tags_as_attributes configuration type from boolean to array. It controls which Azure resource tags are added as resource attributes to the metrics. The values can be a list of specific tag names or ["*"] to include all tags.
    (#40988)
  • elasticsearchexporter: Change default flush::interval and batcher::flush_timeout to 10s (#41726)
  • googlecloudlogentry_encoding: Add 'observedTimestamp' and 'flags' field to resulting log, and throw error if log failed to parse. (#41467)
  • googlecloudlogentry_encoding: Fix type on apphub destination GCP fields (#41836)
  • googlecloudlogentry_encoding: Rename the remaining common fields in log entry to follow the semantic conventions. (#41087)
  • googlecloudlogentry_encoding: Use semantic conventions for the cloud log entry fields (part 1 of 2) (#41718)
  • googlepubsubreceiver: Remove build-in support for cloud_logging and raw_text encoding. (#41812)
    The build-in encodings now have alternative encoding extensions to replace them.
  • stefexporter, stefreceiver: Update STEF to v0.0.7. This is a breaking change in protocol. (#41858)
  • postgresqlreceiver: unify the configuration to align with mdatagen tools and enable events by default (#41700)
    Removed the existing query_sample_collection.enabled and top_query_collection.enabled
    flags in favor of using the field generated by mdatagen. Both collections are now enabled by default.

🚩 Deprecations 🚩

  • elasticsearchexporter: Allow sending_queue to queue and batch based on the new API and deprecate batcher config (#41338)
  • kafkareceiver: Improve kafkareceiver internal metrics telemetry consistency, measure latency in seconds (#41109)
    Add a new metric kafka_receiver_records_delay to capture the time between producing and receiving a batch of records.
    Improve internal metrics telemetry consistency:
    kafka_broker_throttling_duration is deprecated in favor of kafka_broker_throttling_latency and will be removed in the next minor release
    kafka_receiver_latency is deprecated in favor of kafka_receiver_read_latency and will be removed in the next minor release
    kafka_receiver_messages is deprecated in favor kafka_receiver_records and will be removed in the next minor release

🚀 New components 🚀

  • isolationforestprocessor: The processor applies the Isolation-Forest algorithm (an unsupervised, tree-based outlier-detection method) to every incoming span, trace, log, or metric. (#41707)
    It emits an anomaly score (iforest.anomaly_score) and/or a boolean flag (iforest.is_anomaly) inside the Collector—no external ML service required.

💡 Enhancements 💡

  • redactionprocessor: Add database sanitization capability to the redaction processor. (#41647)

  • elasticsearchexporter: Enhance logs with additional metadata fields for failed requests to Elasticsearch bulk API (#41674)
    Metadata attributes are appended to the log fields, providing additional context for debugging failed requests to the Elasticsearch bulk API.

  • awslogsencodingextension: Add support for ELB Access Logs. (#40710)

  • pkg/ottl: Add UUIDv7 function to generate v7 UUIDs. (#41268)

  • oracledbreceiver: Add options and child_address into oracle plan (#37478)
    Adding options and child_address into oracle plan to enhance the details

  • filelogreceiver: Add a new setting, polls_to_archive, to control the number of poll cycles to store on disk, rather than being discarded. (#32727)
    If polls_to_archive setting is used in conjunction with storage setting, file offsets older than three poll cycles are stored on disk rather than being discarded.
    This feature enables the receiver to remember file for a longer period and also aims to use limited amount of memory.

  • azureauthextension: Add support for custom scopes in Azure authentication (#41003)

  • pkg/stanza: Add support for batch processing in most operators (#39575)
    The following operators now support batching: add, assign_keys, copy, flatten, move,
    regex_replace, remove, retain, unquote json_parser, json_array_parser, key_value_parser,
    regex_parser, scope_name, severity, timestamp, trace_parser, uri_parser.

    The following operators do not support batching yet: container, csv_parser, filter,
    recombine, router, syslog.

  • bmchelixexporter: Support .percent and .rate metric derivation for ratio and counter metrics respectively (#41611)

  • awscloudwatchreceiver: Added pattern configuration option for filtering log groups (#40981)

  • elasticsearchexporter: Serialize the @timestamp field for metrics as a number (epoch millis) instead of a string (epoch mills with fractional). This improves the ingestion performance in Elasticsearch as it can leverage an optimized code path for date parsing. (#41811)

  • sqlserverreceiver: enable events collection on windows (#41762)

  • elasticsearchexporter: Update error handling to return a permanent error when the Elasticsearch exporter rejects an entire batch due to invalid mapping modes (#38268)

  • internal/kafka: Allow to configure the metdata refresh interval when using the franz-go client in kafkareceiver or kafkaexporter. (#41088)
    The Metadata.RefreshInterval is set as MetadataMaxAge when using the franz-go client implementation for the kafkareceiver or kafkaexporter.

  • servicegraphconnector: Add native histograms support (#35460)
    Add a new setting exponential_histogram_max_size to specify the maximum number of buckets for each positive or negative range in an exponential histogram.
    Ensure that either latency_histogram_buckets or exponential_histogram_max_size is used, but not both.

  • cmd/golden: Build a docker image for the golden binary, available as snapshot and release artifact (#40538)

  • pkg/translator/prometheusremotewrite: Handle conflicts in PRW v2 (#33661)

  • httpcheckreceiver: Add detailed timing metrics (#41379)
    The timing metrics added to the receiver now include durations for dns lookup, tcp connection, tls handshake, request,
    and response.

  • k8sobjectsreceiver: Introduces include_initial_state for watch mode, so the existing state of watched objects emitted as log events. (#41536)

  • kafkaexporter: Enrich kafkaexporter errors with topic (#41691)

  • kafkaexporter: Use exporterhelper's WithQueueBatch and configure batch partitioner based on configured metadata keys (#41775)

  • oracledbreceiver: Moving child_address from plan details to attributes in top N query collection. (#37478)

  • mysqlreceiver: Add 'mysql.page_size' metric (#41572)

  • solarwindsapmsettingsextension: SolarWinds is deprecating apm-proto and now provides an HTTP endpoint for retrieving settings. This change replaces apm-proto with HTTP (#41860)

  • exporter/prometheus: Add translation_strategy configuration option to control how OTLP metric names are translated to Prometheus format. (#35459)
    The new translation_strategy option provides four different translation modes:

    • UnderscoreEscapingWithSuffixes: Escapes special characters to underscores and appends type/unit suffixes
    • UnderscoreEscapingWithoutSuffixes: Escapes special characters but omits suffixes
    • NoUTF8EscapingWithSuffixes: Preserves UTF-8 characters while adding suffixes
    • NoTranslation: Passes metric names through unaltered
      When translation_strategy is set, it always takes precedence over the deprecated add_metric_suffixes option.
      The exporter.prometheusexporter.DisableAddMetricSuffixes feature gate can be used to completely ignore the deprecated add_metric_suffixes setting.
  • metricstarttimeprocessor: refactor datastorage cache so it can be shared across strategies (#38381)

  • datadogsemanticsprocessor: Add mapping for Datadog source code integration through VCS attributes (#41716)
    maps vcs.ref.head.revision to git.commit.sha and vcs.repository.url.full to git.repository_url with stripped protocol

  • servicegraphconnector: Add support for metrics_timestamp_offset configuration option to adjust metric timestamps. (#40999)
    The servicegraphconnector now supports a metrics_timestamp_offset configuration option that allows
    adjusting metric timestamps by subtracting a specified duration from the current time. This enables
    metrics to appear as if they were generated in the past, which can be useful for testing scenarios
    or when aligning metrics with historical data. The default value is 0, preserving existing behavior.

  • cmd/opampsupervisor: The Supervisor can now be configured to expose a health check endpoint (#40529)
    Use agent::healthcheck to configure the Supervisor's health check endpoint. It supports all of
    the configuration from confighttp.ServerConfig.
    The health check endpoint is checking the following conditions:

    • The persistent state is not nil: this should cover the existence of the instance ID, among other things.
    • The config state is not nil: this should cover the existence of the m...
Read more