Skip to content

Releases: open-telemetry/opentelemetry-collector-contrib

v0.152.0

11 May 13:38
v0.152.0
77b71af

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.

  • receiver/huaweicloudces
  • exporter/alibabacloudlogservice

End User Changelog

🛑 Breaking changes 🛑

  • connector/span_metrics: Promote connector.spanmetrics.includeCollectorInstanceID feature gate to beta. (#40400)
    Adds a collector.instance.id attribute to all metrics emitted by the spanmetrics connector.
  • pkg/coreinternal: Promote internal.coreinternal.goldendataset.DontEmitV0NetworkConventions and internal.coreinternal.goldendataset.EmitV1NetworkConventions feature gates to Beta (#46680)
    Both feature gates should be promoted together as per RFC.
  • pkg/coreinternal: Promote internal.coreinternal.goldendataset.DontEmitV0RPCConventions and internal.coreinternal.goldendataset.EmitV1RPCConventions feature gates to Beta (#46680)
  • processor/tail_sampling: Stabilize disableinvertdecisions feature gate. (#47650)
  • receiver/kafka_metrics: Promote the receiver.kafkametricsreceiver.UseFranzGo feature gate to stable (#41480)
    The franz-go client is now the only implementation; the gate is now permanently enabled and will be removed in v0.154.0.
    The Sarama-based implementation has been removed.

🚩 Deprecations 🚩

  • connector/otlp_json: Rename component type from otlpjson to otlp_json to follow snake_case naming convention. The old name is kept as a deprecated alias. (#48019)
  • connector/round_robin: Rename component type from roundrobin to round_robin to follow snake_case naming convention. The old name is kept as a deprecated alias. (#48021)
  • connector/slow_sql: Rename component type from slowsql to slow_sql to follow snake_case naming convention. The old name is kept as a deprecated alias. (#48020)
  • exporter/bmc_helix: Rename exporter type from bmchelix to bmc_helix (#45339)
  • extension/kafkatopics_observer: Deprecate the kafkatopicsobserver extension in favor of using kafkareceiver directly (#48186)
  • processor/metrics_transform: Rename processor type from metricstransform to metrics_transform (#45339)
  • receiver/aws_lambda: Rename awslambda receiver to use lower_snake_case name aws_lambda. (#45339)
  • receiver/cloud_foundry: Rename receiver type from cloudfoundry to cloud_foundry (#45339)
  • receiver/google_cloud_spanner: Rename receiver type from googlecloudspanner to google_cloud_spanner (#45339)
  • receiver/kafka_metrics: Rename kafkametrics receiver to kafka_metrics with deprecated alias kafkametrics (#45339)
  • receiver/kubelet_stats: Rename receiver type from kubeletstats to kubelet_stats (#45339)
  • receiver/tcp_check: Rename tcpcheck receiver to tcp_check with deprecated alias tcpcheck (#45339)

🚀 New components 🚀

  • extension/mcp: Add new MCP server extension component. (#48072)
  • processor/cardinality_guardian: Add cardinalityguardianprocessor. (#47368)
  • processor/genainormalizer: Add a processor that normalizes GenAI telemetry attributes from OpenInference and OpenLLMetry to the official OTel GenAI Semantic Conventions. (#46069)

💡 Enhancements 💡

  • all: Support building with AIX (#47010)

  • cmd/opampsupervisor: Add support for declarative telemetry.resource configuration while preserving legacy inline resource attributes (#45116)
    cmd/opampsupervisor now accepts typed telemetry resource configuration,
    including declarative resource attributes and detectors, and validates
    unsupported mixed or deprecated forms.
    Example:
    telemetry:
    resource:
    attributes:
    - name: service.name
    value: opamp-supervisor

  • exporter/datadog: Add Kubernetes host alias provider to datadog exporter. (#47199)
    In Kubernetes environments, the Datadog exporter now automatically adds nodeName-clusterName as a
    host alias in the host metadata payload. Both the node name and cluster name must be discoverable for the alias to
    be added; the cluster name is resolved from cloud provider metadata (Azure, EC2, or GCP).

  • exporter/elasticsearch: Add ability to set filter_path in Elasticsearch exporter via the bulk_response_filter_path option. (#47204)

  • exporter/file: Allow usage of append mode with zstd compression (#44382)

  • exporter/kafka: Allow record_headers to accept multiple headers with the same key. (#48092)

  • exporter/loadbalancing: Add stable attribute routing key encoding for traces and metrics in the loadbalancing exporter (#46094, #46095)
    Routing keys now encode attributes as name=value| segments, including explicit markers for missing attributes.
    Non-string attribute values are deterministically stringified and used consistently across traces and metrics.

  • exporter/opensearch: specify an ingest pipeline to be used before writing documents (#47227)
    The pipeline option allows to specify an existing ingest pipeline that should process incoming documents.
    If the ingest pipeline does not exist, ingestion will fail.

  • extension/aws_logs_encoding: Populate ECS fields from VPC Flow Logs as log record attributes (#38861)
    Previously, VPC flow log fields prefixed with ecs- were skipped with a warning.
    They are now mapped to aws.ecs.* attributes on the emitted log record.

  • extension/bearertokenauth: Update token file parsing to ignore everything after the first whitespace, allowing for inline comments. (#46100)

  • extension/cgroup_runtime: Expose refresh_interval for GOMEMLIMIT to support dynamic memory limits. (#46768)

  • extension/docker_observer: Add include_all_containers option to emit a port-less endpoint for every running container, including those with no exposed ports. (#48252)
    When enabled, the observer emits a container endpoint with no port
    information for every running container, alongside any per-port endpoints.
    This allows receiver_creator rules of type == "container" to attach
    receivers to every container regardless of whether it exposes ports.
    Defaults to false for backwards compatibility.

  • extension/kafkatopics_observer: Switch to the franz-go client. (#48169)
    This is another step towards consolidating on franz-go for all Kafka components.
    We have already switched the receiver and exporter, and they are working well.

  • extension/mcp: Register available tools with MCP server. (#48103)

  • extension/pebble_tail_storage: Add initial implementation of the Pebble tail storage extension. (#47916)

  • pkg/faro: Emit k6_testRunId in the log body when meta.k6.testRunId is present in the Faro payload. (#47935)
    Surfaces the k6 test run identifier that the Faro Web SDK already
    forwards from window.k6.testRunId, alongside the existing
    k6_isK6Browser key. The reverse (logs -> Faro) translator extracts
    it back into Meta.K6.TestRunID for round-trip parity.

  • pkg/pdatatest: Introduce pmetrictest.ValidateMetrics to strictly validate duplicate datapoint identities. (#48106)

  • processor/attributes: Added support for default values in the attributes processor. (#45352)
    This enhancement allows users to specify default values for attributes in the attributes processor.
    If the primary value source (e.g., environment variable, attribute, or context value) is not available,
    the default value will be used. This ensures that the pipeline doesn't fail due to missing configuration.

  • processor/drain: Add drain processor to k8s distribution. (#47235)

  • processor/k8s_attributes: Improve deployment name extraction heuristic when deployment_name_from_replicaset is enabled (#44831)
    When deployment_name_from_replicaset is true and the ReplicaSet informer is not used for deployment names only,
    the processor derives k8s.deployment.name using the pod-template-hash label and ReplicaSet naming rules.
    When a ReplicaSet informer is running (for example for k8s.deployment.uid), API-backed metadata takes precedence,
    independent of the deployment_name_from_replicaset setting.

  • processor/k8s_attributes: Add watch_sync_period config option to configure informer cache resync period. (#48111)
    The watch_sync_period config option defaults to 5m to match the previously hardcoded behavior.

  • processor/k8s_attributes: Use PartialObjectMetadata for non-Pod informers (#47389)
    Switch Namespace, Node, Deployment, StatefulSet, DaemonSet, and Job informers
    from full typed objects to PartialObjectMetadata via the metadata client.
    These resources only need labels, annotations, UID, name, and owner references—all available
    in object metadata—so fetching full spec/status is unnecessary overhead.

    Pods continue using full objects since they require spec/status
    fields (pod IP, node name, containers, host network).

  • processor/resource: Added support for default values in the resource processor. (#45352)
    This enhancement allows users to specify default values for attributes in the resource processor.
    If the primary value source (e.g., environment variable, attribute, or context value) is not available,
    the default value will be used. This ensures that the pipeline doesn't fail due to missing configuration.

  • processor/schema: Add internal metrics for schema translation skip rate and cache hit/miss (#47638)
    Five new metrics are emitted via the collector's internal telemetry:

    • otelcol_processor_schema_logs.skipped
    • otelcol_processor_schema_metrics.sk...
Read more

v0.151.0

28 Apr 22:17
v0.151.0
25a1fd0

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 🛑

  • all: Removed DNS lookup processor skeleton. (#47874)

  • connector/datadog: Remove stable feature gate connector.datadogconnector.NativeIngest (#47580)

  • exporter/datadog: Remove stable feature gates exporter.datadogexporter.UseLogsAgentExporter and exporter.datadogexporter.metricexportnativeclient (#47583)

  • exporter/signalfx: Default api_url and ingest_url values derived from realm now use *.observability.splunkcloud.com instead of *.signalfx.com. (#47670)
    Explicit api_url and ingest_url settings are unchanged. Update network allowlists if they targeted only *.signalfx.com.

  • exporter/splunk_hec: Remove deprecated batcher config field. Use sending_queue::batch instead. (#47737)

  • extension/jaegerremotesampling: Remove replaceThriftWithProto feature gate. (#47553)

  • pkg/translator/prometheus: Removes pkg.translator.prometheus.NormalizeName feature gate which has been stable for some time. (#47597)

  • pkg/zipkin: Promote "pkg.translator.zipkin.DontEmitV0NetworkConventions" and "pkg.translator.zipkin.EmitV1NetworkConventions" feature gates to Beta. (#46682)
    This changes the default behavior to emit the new semantic convention attributes instead of the old deprecated ones.
    The Zipkin translator will now use network.local.address (replacing net.host.ip), network.peer.address (replacing net.peer.ip),
    and service.peer.name (replacing peer.service) by default when emitting spans.

  • processor/k8s_attributes: Disable otelcol.k8s.pod.association metric until pod_identifier attribute is properly calculated (#47669)

  • receiver/jaeger: Stabilize DisableRemoteSampling feature gate which has been in beta for over 2 years. (#47599)

  • receiver/prometheus: Remove receiver.prometheusreceiver.EnableNativeHistograms, receiver.prometheusreceiver.RemoveStartTimeAdjustment and receiver.prometheusreceiver.UseCreatedMetric feature gates. (#40606)

  • receiver/prometheus: Removes the feature gate receiver.prometheusreceiver.RemoveLegacyResourceAttributes which has been stable for some time. (#47598)

🚩 Deprecations 🚩

  • connector/service_graph: Rename component type from servicegraph to service_graph to follow snake_case naming convention. The old name is kept as a deprecated alias. (#47971)
  • connector/span_metrics: Rename component type from spanmetrics to span_metrics to follow snake_case naming convention. The old name is kept as a deprecated alias. (#47963)
  • exporter/honeycomb_marker: Rename exporter type from honeycombmarker to honeycomb_marker (#45339)
  • exporter/prometheusremotewrite: add_metric_suffixes is deprecated. Use translation_strategy: UnderscoreEscapingWithoutSuffixes if you are setting this to false. (#33661)
  • extension/aws_logs_encoding: Deprecates transparent gzip decompression in aws_logs_encoding and clarifies that callers must decompress payloads before invoking the streaming decoder. (#46463)
  • processor/log_dedup: Rename processor type from logdedup to log_dedup (#45339)
  • receiver/file_stats: Rename filestats receiver to file_stats with deprecated alias filestats (#45339)
  • receiver/fluent_forward: Rename receiver type from fluentforward to fluent_forward (#45339)
  • receiver/host_metrics: Rename hostmetrics receiver to host_metrics and add deprecated alias hostmetrics (#45449)
  • receiver/k8s_objects: Rename k8sobjects receiver to k8s_objects and add deprecated alias k8sobjects. (#47440)
  • receiver/ssh_check: Rename sshcheck receiver to ssh_check with deprecated alias sshcheck (#45339)

🚀 New components 🚀

  • extension/pebble_tail_storage: First PR for new Pebble tail storage extension (#47916)

  • processor/drain: Add drain processor that applies the Drain log clustering algorithm to annotate log records with a derived template string. (#47235)
    The processor sets log.record.template (e.g. "user <*> logged in from <*>") on each log record.
    Downstream processors such as the filter processor can act on this attribute to, for example, drop
    entire classes of noisy logs by template string.

    Key features:

    • Configurable Drain parse tree parameters (depth, similarity threshold, max clusters with LRU eviction)
    • Optional seeding via known template strings or example log lines for stable templates across restarts
    • passthrough warmup mode (default) and buffer warmup mode that holds records until the tree has stabilized
    • Internal telemetry metrics: active cluster count gauge, annotated and unannotated record counters
  • receiver/azure_functions: Initial implementation of the Azure Functions receiver to ingest logs from Azure Functions triggered by Event Hub. (#43507)

💡 Enhancements 💡

  • cmd/telemetrygen: Add new --timeout flag to set timeout for telemetrygen calls (#47203)

  • exporter/awss3: Add support for retry_on_failure (#47592)

  • exporter/azure_blob: Add sending_queue and timeout support (#47654)
    The azureblobexporter now supports sending_queue (with persistent storage, batching, and consumer configuration) and timeout configuration, matching the awss3exporter pattern.

  • exporter/clickhouse: Update the default logs table schema with an improved ORDER BY, materialized k8s/deployment attribute columns, and automatic ClickHouse 26.2+ full text search index selection. (#47720)
    The logs table DDL now uses ORDER BY (toStartOfFiveMinutes(Timestamp), ServiceName, Timestamp) and includes a set of
    materialized __otel_materialized_* columns for common k8s/deployment resource attributes.
    When connecting to ClickHouse 26.2+, the exporter creates TYPE text() indexes for full text search on attributes and body;
    on older versions it falls back to bloom_filter / tokenbf_v1 indexes. Existing tables are not modified
    (CREATE TABLE IF NOT EXISTS), and the INSERT path remains compatible with both the old and new schemas.

  • exporter/datadog: Include service.instance.id in OTLP resource attribute to Datadog metric tag mapping so it is sent as a metric tag by default. (#47936)
    service.instance.id is required to enable OTel traffic metrics on Datadog Fleet Automation.
    This change adds it to coreMapping so it is emitted as a Datadog metric tag when converting OTLP resource attributes.

  • exporter/elasticsearch: Refactor profiles attribute handling (#47801)
    The Profiles signal changed the handling of attributes and moved resource attributes from Sample
    to ResourceProfiles. Refactor attribute handling in elasticsearch exporter to reflect this change.

  • exporter/prometheusremotewrite: Add support for translation_strategy, which supports UnderscoreEscapingWithSuffixes, UnderscoreEscapingWithoutSuffixes, NoUTF8EscapingWithSuffixes, and NoTranslation. (#33661)

  • exporter/prometheusremotewrite: Add support for exemplar labels when using PRW 2.0 (#33661)

  • exporter/signalfx: Add support for PersistentVolume and PersistentVolumeClaim entity property updates. (#47829)
    Handle k8s.persistentvolume and k8s.persistentvolumeclaim entities in both the
    metadata update and entity events paths. Label prefix stripping is skipped for
    these entities to preserve full property key names.

  • exporter/signalfx: APM correlation now recognizes deployment.environment.name in addition to the deprecated deployment.environment attribute (#47862)

  • extension/aws_logs_encoding: Migrate CloudTrail log semconv RPC attributes from v1.38.0 to v1.40.0 via feature gates (#47549)

  • extension/aws_logs_encoding: Added auto-detection support for AWS Transit Gateway flow logs (#46229)
    The VPC flow log unmarshaler now automatically detects and handles Transit Gateway (TGW) flow logs from S3.
    Detection is based on the presence of the "resource-type" field in log file headers.
    TGW-specific fields (tgw-src-vpc-id, tgw-dst-vpc-id, etc.) are now supported and mapped to appropriate attributes.
    No configuration changes required - auto-detection works with default vpcflow format settings.

  • extension/azure_encoding: Add encoding.format scope attribute for metrics based on Azure resource provider (#47537)

  • extension/azure_encoding: Migrate semantic conventions to v1.40.0 (#47543)

  • extension/health_check: Enable keep-alives for the health check extension's HTTP and gRPC servers. (#45837)

  • pkg/coreinternal: Migrate semantic conventions to v1.40.0 (#47548)

  • pkg/faro: Translate new Faro payload fields Meta.Device, Meta.OS, App.InstallationID, and Exception.Fatal. (#47708)

  • pkg/ottl: Enhanced ParseSimplifiedXML by limiting the maximum XML nesting depth. (#47851)

  • pkg/ottl: Enhanced ConvertTextToElementsXML function by limiting the maximum XML nesting depth. (#47873)

  • pkg/ottl: Enhanced XML parsing by limiting the maximum XML nesting depth. (#47766)

  • pkg/ottl: Added debug-level logging when functions truncate or discard attributes (#9730)
    Added logging to the truncate_all and limit functions for each record that had attributes truncated or discarded, as per the OpenTelemetry specification on attribute limits

  • pkg/stanza: Timestamp operator - Add support for multiple timezone parsing (#47594)

  • pkg/zipkin: Migrate semantic conventions to v1.40.0 (#47545)

  • processor/drain: Promote Drain Processor from development to alpha stability and add to contrib distribution. (#47235)

  • processor/k8s_attributes: Allow k8sattributes processors to be shared between pipelines (#36234)
    When the processor.k8sattributes.ShareProcessorBetweenPipelines feature flag is enabled, k8sattributes processors
    using the same configuration are shared between pipelines. This reduces the local cache size and the number of
    c...

Read more

v0.150.0

13 Apr 13:20
v0.150.0
5358b47

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.

End User Changelog

🛑 Breaking changes 🛑

  • pkg/ottl: Return errors when OTTL context accessors receive values of the wrong type (part 2) (#40198)
    Setters in OTTL contexts now validate that values are of the expected type and return
    descriptive errors when type mismatches occur. This is the continuation of work done in
    #43505, addressing remaining contexts: datapoint, profile, profilesample, resource, span,
    and spanevent.

    Changes include:

    • Slice setters (explicit_bounds, bucket_counts, positive.bucket_counts, negative.bucket_counts)
      now use SetCommonTypedSliceValues/SetCommonIntSliceValues for better type handling.
    • SetMap now returns an error for invalid value types instead of silently ignoring them.

    Note: Users may see new errors from OTTL statements that were previously silently failing
    due to type mismatches. These errors indicate pre-existing issues in OTTL configurations that
    were not being applied as expected.

  • processor/resourcedetection: Remove feature gate processor.resourcedetection.propagateerrors (#45853)

  • processor/transform: Remove the processor.transform.ConvertBetweenSumAndGaugeMetricContext feature gate. (#47358)
    This feature gate has been stable for over a year and is no longer used in any code paths.

  • receiver/k8s_cluster: Kubernetes resource labels in entity events are now prefixed per OTel semantic conventions. (#47491)
    Labels on Kubernetes resources emitted as entity event attributes are now prefixed with
    k8s.<resource>.label. to align with OTel semantic conventions (e.g. k8s.pod.label.<key>,
    k8s.node.label.<key>, k8s.deployment.label.<key>, etc.).
    Previously, label keys were emitted verbatim without any prefix.
    Users consuming entity event attributes by label key will need to update their configurations.

  • receiver/kubeletstats: Disable deprecated resource attributes by default (#47184)
    The following resource attributes are deprecated and will now be disabled by default:
    aws.volume.id, fs.type, gce.pd.name, glusterfs.endpoints.name, glusterfs.path, and partition.
    All of these attributes will be removed in a future release.

🚩 Deprecations 🚩

  • receiver/http_check: Rename httpcheck receiver to http_check with deprecated alias httpcheck (#45339)
  • receiver/named_pipe: Rename namedpipe receiver to named_pipe with deprecated alias namedpipe. (#45339)
  • receiver/tcp_log: Rename tcplog receiver to tcp_log with deprecated alias tcplog (#45339)
  • receiver/tls_check: Rename tlscheck receiver to tls_check with deprecated alias tlscheck (#45339)
  • receiver/udp_log: Rename udplog receiver to udp_log with deprecated alias udplog (#45339)
  • receiver/windows_event_log: Rename windowseventlog receiver to windows_event_log with deprecated alias windowseventlog (#45339)

🚀 New components 🚀

  • exporter/google_secops: Add Google SecOps exporter for sending logs to the Google SecOps (Chronicle) Ingestion APIs. (#46148)
  • processor/spanpruning: Add span pruning processor for aggregating repetitive leaf spans in trace data. (#45654)
  • receiver/osquery: Implement osquery query scraping (#30375)

💡 Enhancements 💡

  • exporter/datadog: Promote exporter.datadogexporter.DisableAllMetricRemapping feature gate to beta. (#47212)

    • All metrics remappings are now handled by the Datadog backend and this should be a transparent change. If you run into any issues, please disable the feature gate by passing --feature-gates=-exporter.datadogexporter.DisableAllMetricRemapping and reach out to Datadog support (https://www.datadoghq.com/support/).
  • exporter/elasticsearch: Add suppress_conflict_errors config to optionally silence document level 409 version conflict logs (#47248)

  • exporter/kafka: Add record_headers configuration option to set static headers on outgoing records (#47193)

  • exporter/kafka: Add support for partitioning kafka records (#46931)
    Add support for RoundRobin and LeastBackup partitioning strategies, as well as custom partitioners
    provided by RecordPartitionerExtension implementations. Users can implement their own partitioning logic
    and plug it into the kafka exporter via the RecordPartitionerExtension interface.

  • exporter/prometheus: Exemplar support for exponential histograms in Prometheus exporter (#47159)

  • exporter/prometheus: prevent panic on histogram with empty BucketCounts. (#47351)
    Guard BucketCounts access with a length check in convertDoubleHistogram to avoid index-out-of-range panic when a histogram has explicit bounds but no corresponding bucket counts.

  • exporter/signalfx: Add dimension_client::strip_k8s_label_prefix option to strip k8s.<resource>.label. prefix from dimension property updates. (#47491)
    The k8s cluster receiver now emits Kubernetes resource labels in entity events with the
    k8s.<resource>.label. prefix per OTel semantic conventions (e.g. k8s.pod.label.app).
    When strip_k8s_label_prefix: true (the default), the SignalFx exporter strips this prefix
    when forwarding labels as dimension properties, preserving the existing SignalFx behavior (e.g. app).
    Set strip_k8s_label_prefix: false to disable stripping and receive the full prefixed keys.

  • exporter/sumologic: Modify default retry settings to prevent dropping data on transient backend unavailability (#47503)

  • extension/datadog: Add gateway_service and gateway_destination config fields to support gateway topology view in Fleet Automation. (#47471)
    Gateway collectors set gateway_service to the k8s Service fronting them.
    Agent/daemonset collectors set gateway_destination to the k8s Service they forward telemetry to.
    Both fields are optional and omitted from the metadata payload when empty.

  • extension/health_check: Migrate extension.healthcheck.useComponentStatus feature gate registration from manual code to metadata.yaml for mdatagen code generation (#46116)

  • extension/sumologic: Adding support to sumologic extension for auto discovery of services in windows (#47349)

  • pkg/ottl: Add Coalesce converter that returns the first non-nil value from a list of arguments. (#46847)
    The Coalesce converter accepts a list of values and returns the first one that is not nil.
    This simplifies common patterns where a canonical attribute must be resolved from multiple possible sources.
    Example: set(attributes["user"], Coalesce([attributes["user.id"], attributes["enduser.id"], "unknown"]))

  • pkg/stanza: Optimizing the performance of Windows Event log unmarshalling when raw = true (#47164)

  • pkg/stanza: Add new scrape model for Windows event logs using an event-driven subscription instead of polling (#47091)

  • pkg/stanza: Add on_truncate option to fileconsumer to control behavior when a file's stored offset exceeds its current size. (#43693)

  • processor/filter: Add feature gate processor.filter.defaultErrorModeIgnore to change default error_mode to ignore (#47232)

  • processor/interval: Flush remaining buffered metrics on shutdown to prevent data loss during restarts and rollouts. (#47238)
    Previously, the interval processor would silently drop any metrics accumulated
    in its buffer when receiving a shutdown signal. Now it flushes the buffer to
    the next consumer before exiting, consistent with the batch processor behavior.

  • processor/lookup: Add DNS lookup source and LRU caching (#46114)
    Adds a DNS source that performs reverse DNS lookups (PTR records) to resolve IP addresses to hostnames.
    Implements a full LRU cache with size-based eviction, TTL expiration, and negative caching.
    The DNS source has caching enabled by default.

  • processor/spanpruning: Add full implementation of the span pruning processor. (#45654)

  • processor/tail_sampling: Add gated tail storage extension support to tailsampling processor via new tail_storage config (#45250)
    Introduces a new tail storage interface with in-memory default behavior and allows extension-backed storage when
    the processor.tailsamplingprocessor.tailstorageextension feature gate is enabled.

  • processor/transform: Add feature gate processor.transform.defaultErrorModeIgnore to change default error_mode to ignore (#47231)

  • processor/transform: Add support for semantic conventions 1.38.0, 1.39.0, and 1.40.0 in the set_semconv_span_name function. (#45911)
    The set_semconv_span_name function now recognizes semantic conventions 1.38.0, 1.39.0, and 1.40.0, allowing span names to be determined using the latest rules. Support for the rpc.system.name attribute (introduced in 1.39.0) has been added so span names can reflect the new RPC system conventions. Backward compatibility is preserved: the rpc.system attribute remains supported.

  • receiver/active_directory_ds: Enables dynamic metric reaggregation in the Active Directory Domain Services receiver. This does not break existing configuration files. (#46346)

  • receiver/apachespark: Enable the re-aggregation feature for the apachespark receiver (#46349)

  • receiver/awss3: add `tag_object_after_inge...

Read more

v0.149.0

31 Mar 19:57
v0.149.0
262df71

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 🛑

  • exporter/elasticsearch: Remove host.os.type encoding in ECS mode (#46900)
    Use processor/elasticapmprocessor v0.36.2 or later for host.os.type enrichment
  • receiver/prometheus: Remove the deprecated report_extra_scrape_metrics receiver configuration option and obsolete extra scrape metric feature gates. (#44181)
    report_extra_scrape_metrics is no longer accepted in prometheusreceiver configuration.
    Control extra scrape metrics through the PromConfig.ScrapeConfigs.ExtraScrapeMetrics setting instead.

🚩 Deprecations 🚩

  • receiver/awsfirehose: Deprecate built-in unmarshalers (cwlogs, cwmetrics, otlp_v1) in favor of encoding extensions. (#45830)
    Use the aws_logs_encoding extension (format: cloudwatch) instead of cwlogs,
    and the awscloudwatchmetricstreams_encoding extension instead of cwmetrics (format: json)
    or otlp_v1 (format: opentelemetry1.0).

  • receiver/file_log: Rename filelog receiver to file_log with deprecated alias filelog (#45339)

  • receiver/kafka: Deprecate the built-in azure_resource_logs encoding in favour of azureencodingextension. (#46267)
    The built-in azure_resource_logs encoding does not support all timestamp formats
    emitted by Azure services (e.g. US-format timestamps from Azure Functions).
    Users should migrate to the azureencodingextension,
    which provides full control over time formats and is actively maintained.

💡 Enhancements 💡

  • cmd/opampsupervisor: Add configuration validation before applying remote config to prevent collector downtime (#41068)
    Validates collector configurations before applying them, preventing downtime from invalid remote configs.
    Disabled by default. Enable via agent.validate_config: true. May produce false positives when resources
    like ports are temporarily unavailable during validation.

  • connector/datadog: Document datadog connector is not supported in aix environments (#47010)
    Explicitly opt out of host metadata computation in datadog components to support AIX compilation target.

  • connector/signal_to_metrics: Add keys_expression support in include_resource_attributes and attributes for dynamic attribute key resolution at runtime (#46884)
    The keys_expression field allows specifying an OTTL value expression that resolves to a list
    of attribute keys at runtime. This enables dynamic resource attribute filtering based on runtime
    data such as client metadata. Exactly one of key or keys_expression must be set per entry.

  • connector/signal_to_metrics: Reduce per-signal allocations in the hot path by replacing attribute map allocation with a pooled hash-based ID check, and caching filtered resource attributes per metric definition within each resource batch. (#47197)

  • connector/signal_to_metrics: Pre-compute prefixed collector key to avoid a string allocation on every signal processed. (#47183)
    Pre-computing the collector key avoids a string allocation on every signal processed.

  • exporter/datadog: Document datadog exporter is not supported in aix environments (#47010)
    Explicitly opt out of host metadata computation in datadog components to support AIX compilation target.

  • exporter/elasticsearch: Add histogram:raw mapping hint to bypass midpoint approximation for histogram metrics (#47150)

  • exporter/elasticsearch: Cache metric attribute set per bulk session instead of recomputing it for every document (#47170)
    syncBulkIndexerSession.Add() was calling getAttributesFromMetadataKeys +
    attribute.NewSet + metric.WithAttributeSet on every document in the hot path. The attribute set is
    derived from the request context metadata, which is constant for the lifetime of a session, so it is
    now computed once in StartSession and reused across all Add() calls in that session.

  • exporter/elasticsearch: populate _doc_count field in ECS mapping mode (#46936)
    _doc_count is a special metadata field in Elasticsearch used when a document represents pre-aggregated data (like histograms or aggregate metrics).
    Currently, elasticsearchexporter only populates this field for otel mapping mode (native otel field structure). This change
    adds support for ECS mapping mode (native ECS field structure) so that we have consistent behavior for both mapping modes.

  • exporter/elasticsearch: Encode require_data_stream in Elasticsearch bulk action metadata instead of the bulk request query string. (#46970)
    This preserves existing endpoint query parameters while moving require_data_stream
    to the per-document action line expected by newer bulk workflows. Benchmarks show
    a stable ~27 bytes/item NDJSON payload overhead before compression.

  • exporter/elasticsearch: Improve performance of Elasticsearch exporter document serialisation (#47171)

  • exporter/elasticsearch: Add metric for docs retried because of request errors (#46215)

  • exporter/kafka: Cache OTel metric attribute sets in OnBrokerE2E hook to reduce per-export allocations (#47186)
    OnBrokerE2E previously rebuilt attribute.NewSet + metric.WithAttributeSet on every
    call. The set of distinct (nodeID, host, outcome) combinations is bounded by
    2 × number-of-brokers, so the computed MeasurementOption is now cached per key.

  • exporter/pulsar: This component does not support aix/ppc64. (#47010)
    Make the exporter explicitly panic if used in aix/ppc64 environments.

  • extension/datadog: Document datadog extension is not supported in aix environments (#47010)
    Explicitly opt out of host metadata computation in datadog components to support AIX compilation target.

  • extension/db_storage: Make dbstorage work in AIX environments (#47010)
    sqlite support is offered via modernC, which doesn't support the AIX ppc64 compilation target.
    We carve out support for sqlite in AIX environments so contrib can compile for this compilation target.

  • extension/health_check: Add component event attributes to serialized output. (#43606)
    When http.status.include_attributes is enabled in the healthcheckv2 extension (with use_v2: true),
    users will see additional attributes in the status output. These attributes provide more
    context about component states, including details like error messages and affected components.
    For example:

    {
      "healthy": false,
      "status": "error",
      "attributes": {
        "error_msg": "not enough permissions to read cpu data",
        "scrapers": ["cpu", "memory", "network"]
      }
    }
  • extension/healthcheckv2: Add component event attributes to serialized output. (#43606)
    When http.status.include_attributes is enabled in the healthcheckv2 extension (with use_v2: true),
    users will see additional attributes in the status output. These attributes provide more
    context about component states, including details like error messages and affected components.
    For example:

    {
      "healthy": false,
      "status": "error",
      "attributes": {
        "error_msg": "not enough permissions to read cpu data",
        "scrapers": ["cpu", "memory", "network"]
      }
    }
  • extension/sigv4auth: Add support for External IDs when assuming roles in cross-account authentication scenarios (#44930)
    Added external_id field to the AssumeRole configuration, allowing users to specify
    an External ID when assuming roles for enhanced cross-account security.

  • internal/datadog: Do not compute host metadata in AIX environments (#47010)
    Explicitly opt out of host metadata computation in datadog components to support AIX compilation target.

  • pkg/stanza: Ensure router operator does not split batches of entries (#42393)

  • pkg/stanza: Parse all Windows Event XML fields into the log body, including RenderingInfo (with Culture, Channel, Provider, Task, Opcode, Keywords, Message), UserData, ProcessingErrorData, DebugData, and BinaryEventData. (#46943)
    Previously, RenderingInfo was only used to derive the top-level level/task/opcode/keywords/message
    fields. It is now also emitted as a top-level rendering_info key containing all fields including
    culture, channel, and provider. UserData (an alternative to EventData used by some providers)
    is now parsed into a user_data key. Rare schema elements ProcessingErrorData, DebugData, and
    BinaryEventData are also captured when present.

  • processor/resourcedetection: Added IBM Cloud VPC resource detector to the Resource Detection Processor (#46874)

  • processor/resourcedetection: Added IBM Cloud Classic resource detector to the Resource Detection Processor (#46874)

  • processor/tail_sampling: Add sampling_strategy config with trace-complete and span-ingest modes for tail sampling decision timing and evaluation behavior. (#46600)

  • receiver/awslambda: Enrich context with AWS Lambda receiver metadata for S3 logs (#47046)

  • receiver/azure_event_hub: Add support for Azure Event Hubs distributed processing. This allows the receiver to automatically coordinate partition ownership and checkpointing across multiple collector instances via Azure Blob Storage. (#46595)

  • receiver/docker_stats: Add TLS configuration support for connecting to the Docker daemon over HTTPS with client and server certificates. (#33557)
    A new optional tls configuration block is available in docker_stats receiver config (and the
    shared internal/docker package). When omitted the connection remains insecure (plain HTTP or
    Unix socket), preser...

Read more

v0.148.0

17 Mar 16:43
v0.148.0
d3c47b3

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 🛑

  • all: Removes the k8slog receiver after being unmaintained for 3 months (#46544)

  • all: Remove deprecated SAPM exporter (#46555)

  • all: Remove the datadogsemantics processor. (#46893)
    If you need help, please contact Datadog support: https://www.datadoghq.com/support.

  • exporter/google_cloud_storage: reuse_if_exists behavior changed: now checks bucket existence instead of attempting creation (#45971)
    Previously, reuse_if_exists=true would attempt bucket creation and fall back to reusing on conflict.
    Now, reuse_if_exists=true checks if bucket exists (via storage.buckets.get) and uses it, failing if it doesn't exist.
    Set to true when the service account lacks project-level bucket creation permissions but has bucket-level permissions.
    reuse_if_exists=false still attempts to create the bucket and fails if it already exists.

  • exporter/kafka: Remove deprecated top-level topic and encoding configuration fields (#46916)
    The top-level topic and encoding fields were deprecated in v0.124.0.
    Use the per-signal fields instead: logs::topic, metrics::topic,
    traces::topic, profiles::topic, and the corresponding encoding
    fields under each signal section.

  • exporter/kafka: Remove kafka-local batching partitioner wiring and require explicit sending_queue::batch::partition::metadata_keys configuration as a superset of include_metadata_keys when batching is enabled. (#46757)

  • pkg/ottl: truncate_all function now supports UTF-8 safe truncation (#36713)
    The default truncate_all behavior has changed. Truncation now respects UTF-8 character boundaries by default (new optional parameter utf8_safe, default: true), so results stay valid UTF-8 and may be slightly shorter than the limit.
    To keep the previous byte-level truncation behavior (e.g. for non-UTF-8 data or to avoid any behavior change), set utf8_safe to false in all truncate_all usages.

  • receiver/awsecscontainermetrics: Add ephemeral storage metrics and fix unit strings from Megabytes to MiB (#46414)
    Adds two new task-level gauge metrics: ecs.task.ephemeral_storage.utilized and ecs.task.ephemeral_storage.reserved (in MiB).
    These metrics are available on AWS Fargate Linux platform version 1.4.0+ and represent the shared ephemeral storage for the entire task.

    Breaking change: The unit string for ecs.task.memory.utilized, ecs.task.memory.reserved,
    container.memory.utilized, and container.memory.reserved has been corrected from "Megabytes" to "MiB".
    The underlying values were already in MiB (computed via division by 1024*1024), but the unit label was incorrect.
    Users relying on the exact unit string (e.g. in metric filters or dashboards) will need to update accordingly.

  • receiver/mysql: Set the default collection of query_sample to false (#46902)

  • receiver/postgresql: Disable default collection of top_query and query_sample events. (#46843)
    This change is breaking because it disables the default collection of top_query and query_sample events. These events will need to be enabled manually if desired.

  • receiver/redfish: system.host_name and base_url resource attribute has been changed to host.name and url.full respectively.
    (#46236)

  • receiver/windowseventlog: Change event_data from an array of single-key maps to a flat map by default, making fields directly accessible via OTTL. The previous format is available by setting event_data_format: array. (#42565, #32952)
    Named elements become direct keys (e.g., body["event_data"]["ProcessId"]).
    Anonymous elements use numbered keys: param1, param2, etc.
    To preserve the previous array format, set event_data_format: array in the receiver configuration.

🚩 Deprecations 🚩

  • exporter/azure_blob: Introduce new snake case compliant name azure_blob (#46722)
  • exporter/google_cloud_storage: Introduce new snake case compliant name google_cloud_storage (#46733)
  • extension/aws_logs_encoding: Introduce new snake case compliant name aws_logs_encoding (#46776)
  • extension/azure_auth: Introduce new snake case compliant name azure_auth (#46775)
  • extension/cgroup_runtime: Introduce new snake case compliant name cgroup_runtime (#46773)
  • extension/google_cloud_logentry_encoding: Introduce new snake case compliant name google_cloud_logentry_encoding (#46778)
  • processor/metric_start_time: Introduce new snake case compliant name metric_start_time (#46777)
  • receiver/azure_blob: Introduce new snake case compliant name azure_blob (#46721)
  • receiver/azure_monitor: Introduce new snake case compliant name azure_monitor (#46730)
  • receiver/cisco_os: Introduce new snake case compliant name cisco_os (#46948)
  • receiver/macos_unified_logging: Introduce new snake case compliant name macos_unified_logging (#46729)
  • receiver/prometheus_remote_write: Introduce new snake case compliant name prometheus_remote_write (#46726)
  • receiver/yang_grpc: Introduce new snake case compliant name yang_grpc (#46723)

🚀 New components 🚀

  • receiver/azure_functions: Introduce new component to receive logs from Azure Functions (#43507)
    This change includes only overall structure, readme and configuration for the new component.

💡 Enhancements 💡

  • cmd/opampsupervisor: Add configurable instance ID to Supervisor (#45596)

  • connector/signal_to_metrics: Add sum.monotonic property for improved counter handling (#45865)

  • connector/spanmetrics: Add support for W3C tracestate-based adjusted count in span metrics with stochastic rounding (#45539)
    The span metrics connector now supports extracting sampling information from W3C tracestate
    to generate extrapolated span metrics with adjusted counts. This enables accurate metric
    aggregation for sampled traces by computing stochastic-rounded adjusted counts based on
    the sampling threshold (ot.th field) in the tracestate. Key features include:

    • Stochastic rounding for fractional adjusted counts using integer-only operations
    • Single-entry cache for consecutive identical tracestates (4% overhead in benchmarks)
    • Support for mixed-mode services where some spans have tracestate and others don't
    • New sampling.method attribute to distinguish between adjusted and non-adjusted metrics
    • Histogram support for observing multiple events at once

    Performance characteristics:

    • ~4% overhead for traces with tracestate (3-span batch: 3684ns → 3829ns). Overhead will further diminish with larger batches.
    • Scales linearly with trace size (500 spans: 577μs → 581μs)
    • Zero allocations for common cases with caching enabled
  • exporter/bmchelix: Enrich metric names with datapoint attributes for unique identification in BMC Helix Operations Management (#46558)
    This feature is controlled by the enrich_metric_with_attributes configuration option (default: true).
    Set to false to disable enrichment and reduce metric cardinality.
    Normalization is applied to ensure BHOM compatibility:

    • entityTypeId and entityName: Invalid characters replaced with underscores (colons not allowed as they are used as separators in entityId)
    • metricName: Normalized to match pattern [a-zA-Z_:.][a-zA-Z0-9_:.]*
    • Label values: Commas replaced with whitespaces
  • exporter/clickhouse: Add per pipeline JSON support for ClickHouse exporter, deprecate JSON feature gate (#46553)
    Previously, the clickhouse.json feature gate was used to enable JSON for all
    ClickHouse exporter instances. This feature gate is now deprecated. Use the json
    config option instead, which allows per-pipeline control.

  • exporter/elasticsearch: Add per-document dynamic_templates for metrics in ECS mapping mode (#46499)
    Each bulk index action for ECS metrics now includes dynamic_templates so Elasticsearch can apply the correct
    mapping (e.g. histogram_metrics, summary_metrics, double_metrics) for the ECS mapping mode. The OTel mapping mode already sent dynamic_templates.

  • exporter/elasticsearch: Add http.response.status_code to failed document logs to allow for better filtering and error analysis. (#45829)

  • exporter/elasticsearch: Update ECS mode encoder to add conversions for telemetry.sdk.language and telemetry.sdk.version (#46690)
    Conversions map semconv attributes telemetry.sdk.language/telemetry.sdk.version to service.language.name/service.language.version'

  • extension/aws_logs_encoding: Adopt streaming for Network Firewall logs (#46214)

  • extension/aws_logs_encoding: Adopt streaming for CloudTrail signal (#46214)

  • extension/aws_logs_encoding: Adopt encoding extension streaming contract for WAF logs (#46214)

  • extension/aws_logs_encoding: Adopt streaming for S3 access logs (#46214)

  • extension/aws_logs_encoding: Adopt encoding extension streaming contract for VPC flow logs (#46214)

  • extension/aws_logs_encoding: Adopt encoding extension streaming contract for CloudWatch Logs subscription (#46214)

  • extension/aws_logs_encoding: Adopt streaming for ELB signal (#46214)

  • extension/awscloudwatchmetricstreams_encoding: Adopt encoding extension streaming contract for OpenTelemetry v1 formatted metrics (#46214)

  • extension/azure_encoding: Add encoding.format attribute to Azure logs to identify the log type (#44278)

  • extension/azure_encoding: Promote the Azure Encoding extension to Alpha stability. (#46886)

  • extension/azure_encoding: Add processing for Azure Metrics (#41725)

  • extension/datadog: Set os.type resource attribute if not already present for Fleet Automation metadata. (#46896)

  • extension/headers_setter: Add support for file-based credentials via value_file...

Read more

v0.147.0

02 Mar 18:37
v0.147.0
28446b3

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 🛑

  • all: Remove unmaintained receiver/bigip component (#46040)

  • exporter/elasticsearch: Ignore mapping::mode config option (#45246)
    The mapping::mode config option has already been deprecated and is now ignored. Instead, use
    the X-Elastic-Mapping-Mode client metadata key (via headers_setter extension) or the
    elastic.mapping.mode scope attribute to control the mapping mode per-request.
    See the README for migration instructions.

  • extension/sumologic: Migrate updateCollectorMetadata from feature gate to config parameter and enable by default (#46102)
    The extension.sumologic.updateCollectorMetadata feature gate has been replaced with an
    update_metadata configuration parameter. The feature is now enabled by default, eliminating
    the need for users to specify the --feature-gates flag. Users can control this behavior via
    the YAML configuration:

    extensions:
      sumologic:
        update_metadata: true  # default: true
  • processor/azuredetector: Changed cloud platform value for Azure VM from azure_vm to azure.vm to align with OpenTelemetry semantic conventions v1.39.0. (#45030)

  • processor/resourcedetection: Remove feature gate processor.resourcedetection.removeGCPFaasID (#45808)

  • processor/resourcedetection: Changed cloud platform value for Azure EKS from azure_eks to azure.eks to align with OpenTelemetry semantic conventions v1.39.0. (#45030)

  • receiver/kafka: Remove deprecated topic and exclude_topic fields (#46232)

  • receiver/mongodb: Add service.instance.id resource attribute and move database from resource to db.namespace metric attribute in MongoDB receiver (#45506)
    The service.instance.id attribute is a deterministic UUID v5 derived from server address and port.
    The database attribute has been moved from a resource attribute to a metric-level attribute (db.namespace) on all per-database metrics, following OpenTelemetry semantic conventions.
    This produces a single resource per MongoDB server instead of one per database, fixing Prometheus batching compatibility.

🚩 Deprecations 🚩

  • processor/k8s_attributes: Rename internal telemetry metrics to use dots instead of underscores (#45871)

💡 Enhancements 💡

  • connector/grafanacloud: Make the default configuration of the Grafana Cloud Connector support Kubernetes deployments. (#45469)
    Add "k8S.node.uid" and "k8S.cluster.name" to the default set of resource attributes evaluated by the Grafana Cloud Connector.

  • exporter/clickhouse: Do not crash the exporter if it cannot inspect the table schemas (#46285)
    Previously setting create_schema: false would skip validating the actual connection on start. This was useful
    if you had unstable targets, as you could run the collector and let the sending queue/failover connector handle
    connection errors to ClickHouse.

  • exporter/loadbalancing: Support metrics routing by attributes in the loadbalancing exporter (#45675)

  • exporter/prometheusremotewrite: Add support for exporting InstrumentationScope attributes as Prometheus labels. This behavior can be disabled via the disable_scope_info configuration option. (#45266)

  • exporter/signalfx: Preserve 'k8s.service.' property names on the 'k8s.service.uid' dimension instead of converting them to 'kubernetes_service_' prefix. (#46291)

  • extension/awscloudwatchmetricstreams_encoding: Adopt encoding extension streaming contract for JSON formatted metrics (#46214)

  • extension/awscloudwatchmetricstreams_encoding: Adopt encoding extension streaming contract for AWS CloudWatch metrics extension (#46214)

  • extension/awslogs_encoding: Adopt encoding extension streaming contract for AWS Logs Extension encoding (#46214)

  • extension/azure_encoding: Add processing for Azure Traces (AppAvailabilityResults, AppDependencies and AppRequests) (#41725)

  • extension/azure_encoding: Add support for Administrative, Alert, Autoscale, Policy, Security, ServiceHealth, and ResourceHealth log categories. (#45699)

  • extension/basicauth: Add username_file and password_file options to client_auth config, enabling file-based credentials with live rotation via file watching. (#46227)
    When set, file-based credentials take precedence over inline values.
    Files are watched for changes using fsnotify, allowing credential rotation without restarting the collector.

  • internal/docker: Add Docker API version auto-negotiation when api_version is not specified in config (#44653)
    When api_version is empty or omitted, the Docker client now automatically negotiates
    the highest mutually supported API version with the daemon using WithAPIVersionNegotiation().
    Existing configurations with an explicit api_version continue to work unchanged.
    Note: The previous default behavior pinned the API version to 1.44 when not specified.
    Now it auto-negotiates with the daemon, which may result in a different API version being used.

  • pkg/ottl: Add Base64Encode function to OTTL (#46071)

  • pkg/ottl: Added metadata access path to all OTTL contexts for accessing client request metadata (#33288)

  • pkg/translator/pprof: Ensure correct handling of default sample/profile in conversion. (#45976)

  • processor/hetznerdetector: Update semantic conventions to v1.39.0 and add support for cloud.platform in Hetzner detector (#45489)

  • processor/k8s_attributes: ReplicaSet handling now supports PartialObjectMetadata, reducing cold-start memory/time compared to typed informers. (#44407)
    In in-process cold-start benchmarks (no API server), PartialObjectMetadata reduced memory by ~57–59%, exact impact depends on cluster size and selectors.

  • processor/oracleclouddetector: Add Oracle realm attribute to Oracle Cloud resource detection processor (#44408)

  • processor/redaction: Add HMAC hash functions (hmac-sha256 and hmac-sha512) for GDPR-compliant pseudonymization of sensitive data like IP addresses (#45715)
    HMAC functions provide rainbow table resistant hashing by using a secret key, making it impossible to reverse-engineer original values without the key.
    This enables true pseudonymization per GDPR Article 4(5) requirements while maintaining consistency for pattern analysis.
    Configure with hash_function: hmac-sha256 (or hmac-sha512) and hmac_key: "${env:REDACTION_SECRET_KEY}".

  • processor/resourcedetection: Added Tencent Cloud CVM resource detector to the Resource Detection Processor (#45779)

  • processor/resourcedetection: Add tags_from_imds config option to EC2 detector to control instance tag retrieval method (#46046)
    Introduces the tags_from_imds boolean field in the EC2 detector configuration.
    When set to true, instance tags are fetched via IMDS, which does not require any IAM
    permissions but requires InstanceMetadataTags=enabled on the instance.
    When set to false (default), tags are fetched via the EC2 DescribeTags API,
    which requires the ec2:DescribeTags IAM permission. This is the existing behavior and
    the default to avoid breaking changes.

  • receiver/apache: Enables dynamic metric reaggregation in the Apache receiver. This does not break existing configuration files. (#46348)

  • receiver/azure_event_hub: Promote the Azure Event Hub receiver to beta stability. (#41661)

  • receiver/azureblob: Enable the Azure Blob receiver to poll for new blobs when the Event Hub endpoint is not configured. (#45717)
    The Azure Blob receiver now supports a polling-based ingestion mode that is automatically
    enabled when no Event Hub endpoint is configured. Instead of relying on
    event-driven notifications, it periodically checks the storage container
    for new blobs to ingest.

  • receiver/ciscoos: Add multi-device configuration with global scraper settings and improved config validation (#42647)

  • receiver/haproxy: Enable dynamic metric reaggregation in the HAProxy receiver. (#46357)

  • receiver/hostmetrics: Reduce excessive float64 precision in memory, disk, and filesystem scrapers (#46141)

  • receiver/k8s_cluster: Define entities and relationships for Kubernetes resources in metadata.yaml. (#41080)

  • receiver/oracledb: Enable dynamic metric reaggregation in the OracleDB receiver. (#46371)

  • receiver/postgresql: Added support for configuring custom collection intervals for Top Query records (#45614)

  • receiver/prometheusremotewrite: Add support for extracting exemplars from Prometheus counters (#46145)

  • receiver/splunkenterprise: Enables dynamic metric reaggregation in the Splunk Enterprise receiver. This does not break existing configuration files. (#45396)

  • receiver/tlscheck: Added support for JKS and PKCS12 keystore formats. (#41518)
    This enhancement allows users to utilize JKS and PKCS12 keystore formats
    for TLS configuration in the tlscheck receiver, providing greater flexibility
    in certificate management.

🧰 Bug fixes 🧰

  • exporter/loadbalancing: Change default timeout for k8s resolver from 1s to 1m to reduce excessive Kubernetes API server load. (#33004)
    The previous 1s default caused watch connections to reconnect every second, generating big amount of requests.
    The new 1m default provides a big reduction in API load while maintaining reasonable
    endpoint discovery latency. The timeout remains configurable for users who need different behavior.

  • exporter/prometheusremotewrite: [exporter/prometheusremotewrite] Fix WAL wake-up race (#45288)

  • exporter/sematext: Add validation to require region and at least one app_token in configuration. (#39610)

  • extension/oauth2client: Make token refresh context-aware (#45917)
    The oauth2clientauth now implements its own HTTP and gRPC middleware, so the request
    cont...

Read more

v0.146.0

18 Feb 15:34
8f6cb46

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.

  • receiver/bigip
  • exporter/alibabacloudlogservice

End User Changelog

🛑 Breaking changes 🛑

  • all: Increase minimum Go version to 1.25 (#46000)

  • exporter/elasticsearch: Remove ecs mode log enrichment for agent.name and agent.version (#45849)
    The removed log enrichments are duplicate code that already exists in the github.com/elastic/opentelemetry-collector-components/processor/elasticapmprocessor. It is recommended to use the github.com/elastic/opentelemetry-collector-components/processor/elasticapmprocessor when using mapping mode ecs to ensure index documents contain all required Elastic fields to power the Kibana UI.

  • processor/akamaidetector: Update semantic conventions to v1.39.0 and use the convention for cloud.platform in Akamai detector (#45511)

  • processor/k8s_attributes: Introduce semantic conventions compliant feature gate pair for k8sattributes processor (#44693)

    • Added processor.k8sattributes.EmitV1K8sConventions feature gate to enable stable semantic convention attributes (singular form: k8s.<workload>.label.<key> and k8s.<workload>.annotation.<key>)
    • Added processor.k8sattributes.DontEmitV0K8sConventions feature gate to disable legacy non-compliant attributes (plural form: k8s.<workload>.labels.<key> and k8s.<workload>.annotations.<key>)
    • Both feature gates are in alpha stage and disabled by default
    • The processor now validates that legacy attributes cannot be disabled without enabling stable attributes
    • Deprecated k8sattr.labelsAnnotationsSingular.allow feature gate in favor of the new semconv-compliant gates (will be removed in v0.150.0)
    • During migration period, both legacy and stable attributes can coexist when EmitV1K8sConventions is enabled but DontEmitV0K8sConventions is not
  • processor/resourcedetection: Promote processor.resourcedetection.propagateerrors feature gate to Stable and is now always enabled (#44609)

  • receiver/hostmetrics: process.context_switches will now properly count context switches for all threads. (#36804)
    Previously, only the lead thread's context switches would be counter. We believe this was a bug,
    but are marking it as a breaking change since the values of these metrics may change drastically
    compared to previous expectations. However, the values you get now will be more accurate than before.

  • receiver/kafkametrics: receiver.kafkametricsreceiver.UseFranzGo feature gate is now in Beta stage and enabled by default (#44600)

🚩 Deprecations 🚩

🚀 New components 🚀

  • receiver/vcr: First PR for new receiver (#42877)

💡 Enhancements 💡

  • cmd/golden: Golden tool now returns all comparison errors with attempt numbers instead of only the last error (#45424)
    When multiple metric payloads fail validation, the golden tool now displays all errors with their attempt numbers,
    making it easier to debug test failures. Previously, only the last error was shown.

  • connector/signal_to_metrics: Add error_mode configuration to control OTTL evaluation error handling. Prevents single bad record from failing entire batch. (#38826, #45746)
    Adds three error modes:

    • propagate (default): Returns error, entire batch fails (backward compatible)
    • ignore: Logs error, skips bad record, continues processing valid records
    • silent: Skips bad record silently, continues processing valid records
  • exporter/datadog: Add new alpha feature gate 'exporter.datadogexporter.DisableAllMetricRemapping' to disable all metric remapping in the Datadog exporter. (#45943)
    The feature gate is marked as alpha pending changes in Datadog's backend.

  • exporter/elasticsearch: Update the ECS mode metrics data point hasher to exclude the elasticsearch.mapping.hints attribute (#45887)
    Excluding the elasticsearch.mapping.hints attribute will allow similar metric data points to be grouped together and indexed to the same document.

  • exporter/elasticsearch: Add traces_dynamic_id config to dynamically set document IDs for traces and span events (#43649)
    Adds traces_dynamic_id configuration option to allow setting document IDs based on span and span event attributes using the elasticsearch.document_id attribute.
    This prevents duplicate documents from being created when the same span is sent multiple times, similar to the existing logs_dynamic_id feature.
    Disabled by default.

  • exporter/file: Add support for rotation when group_by is enabled in file exporter (#43143)

  • exporter/googlecloudstorage: Add compression support for Google Cloud Storage exporter (#45337)
    The Google Cloud Storage exporter now supports compression of log data before uploading to GCS.
    Supported compression algorithms: gzip and zstd.

  • exporter/kafka: Add conn_idle_timeout configuration option to control when idle connections are not reused and may be closed. (#45321)
    Defaults to 9 minutes.

  • extension/awscloudwatchmetricstreams_encoding: Add support for extracting percentile statistics (p50, p90, p99, etc.) from CloudWatch Metric Streams JSON format (#45855)
    The JSON unmarshaler now extracts percentile fields from CloudWatch Metric Streams data and converts them to OpenTelemetry Summary quantiles.
    This enables feature parity with the embedded cwmetricstream unmarshaler in awsfirehosereceiver.

  • extension/awslogs_encoding: Support CloudWatch Logs extracted fields (@aws.account, @aws.region) for centralized logging (#45792)
    CloudWatch Logs subscription filter unmarshaler now supports extracted fields (@aws.account and @aws.region)
    that are automatically added when using CloudWatch Logs centralization and enabling emitSystemFields in
    subscription filters. This enhancement enables proper resource attribution in OpenTelemetry when processing
    logs from multiple AWS accounts and regions. Logs with different extracted field values are automatically
    grouped into separate ResourceLogs for proper semantic convention mapping:

    • @aws.account maps to cloud.account.id
    • @aws.region maps to cloud.region
  • extension/awslogs_encoding: Handle multiple concatenated JSON objects for AWS CloudWatch Log subscription (#46120)

  • extension/azureauth: Add and implement new method Token(context.Context) (*oauth2.Token, error). (#45064)

  • extension/encoding: Introduce streaming support for encoding extensions (#38780)

  • extension/oidc: Adds public_keys_file to the provider config. When set, keys are loaded from a local JWKS file instead of using remote discovery. (#44899)
    The file is watched for changes and keys are automatically reloaded on update. Supported key types are RSA, ECDSA, and ED25519.

  • pkg/ottl: Add IsInCIDR function to check if IP belongs to given list of CIDR (#42215)

  • pkg/sampling: Optimize OTel tracestate parsing by replacing regex validation with hand-written validator (10-21x faster). (#45539)

  • pkg/sampling: Replace regex-based W3C tracestate validation with hand-written validator for 30-65x performance improvement (#45734)

  • pkg/stanza: Ensure filter operator does not split batches of entries (#42391)

  • processor/filter: Introduces inferred context conditions for filtering (#37904)
    Introduces three new top-level config fields [metric_conditions, log_conditions, trace_conditions].
    A user can supply OTTL conditions for each without needing to supply context.

  • processor/k8s_attributes: Added container.image.tags resource attribute with feature gate controls according to OpenTelemetry semantic conventions. (#44589)

  • processor/lookup: Add lookup processor implementation and YAML source (#41816)
    Adds the core lookup processor implementation for enriching telemetry data using external lookups.
    Includes YAML file source for loading lookup tables f...

Read more

v0.145.0

03 Feb 17:19
v0.145.0
6a88877

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.

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: Promote processor.resourcedetection.removeGCPFaasID feature gate to Stable and is now always enabled (#45797)
    The faas.id attribute is replaced by the faas.instance attribute.

  • receiver/azure_event_hub: Upgrade receiver.azureeventhubreceiver.UseAzeventhubs feature 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: Replace StartTracesOp/EndTracesOp with StartProfilesOp/EndProfilesOp in profilesHandler. (#45601)
    The span name generated by the profiles receiver now uses the ProfilesReceived suffix instead of TraceDataReceived.

  • receiver/prometheus: Promote receiver.prometheusreceiver.RemoveReportExtraScrapeMetricsConfig feature gate to beta (#44181)
    The report_extra_scrape_metrics configuration option is now ignored by default. Extra scrape metrics are instead controlled by the receiver.prometheusreceiver.EnableReportExtraScrapeMetrics feature gate and the Prometheus upstream configuration available in promconfig (either globally or per-scrape config).

🚩 Deprecations 🚩

  • receiver/azure_event_hub: Rename azureeventhub receiver to azure_event_hub and add deprecated alias azureeventhub (#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: Rename mongodbatlas receiver to mongodb_atlas and add deprecated alias mongodbatlas (#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 the exporter.signalfx.consumeEntityEvents feature 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: Introducing delete_index function 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.association with status, pod_identifier, and otelcol.signal attributes (#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 deprecated azure-event-hubs-go SDK with azure-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 the build_tags option in the builder configuration to pass Go build tags such as remove_all_sd to 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 when on_error is set to quiet mode (#42646)

  • pkg/stanza: Fix container operator log truncation for large CRI logs (#43982)
    Previously the option max_log_size of the container operator did not work correctly, with the maximum log size limited to an arbitrary value even if max_log_size was higher or set to 0 to remove the limit. With this change max_log_size: 0 works correctly, removing the upper limit on log size.
    The default value for max_log_size is now changed from 0 to 1MiB to prevent boundless memory usage.

  • pkg/stanza: Fix syslog parser operator logging errors at ERROR level when on_error is set to quiet mode (#42646)

  • pkg/stanza: Fix data ...

Read more

v0.144.0

20 Jan 12:52
v0.144.0
d912d96

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

End User Changelog

🛑 Breaking changes 🛑

  • exporter/elasticsearch: Remove ecs mode span enrichment for span.action, span.message.queue.name, and transaction.message.queue.name (#45014)
    The removed span enrichments have been moved to the github.com/elastic/opentelemetry-collector-components/processor/elasticapmprocessor. It is recommended to use the github.com/elastic/opentelemetry-collector-components/processor/elasticapmprocessor when using mapping mode ecs to ensure index documents contain all required Elastic fields to power the Kibana UI.

  • exporter/kafka: Remove Sarama producer implementation (#44565)
    The Sarama-based Kafka producer has been removed from kafkaexporter.
    Feature gate exporter.kafkaexporter.UseFranzGo has also been removed since Franz-go is now the only supported Kafka client.

  • processor/tail_sampling: The deprecated invert decisions are disabled by default. (#44132)
    Drop policies should be used instead of invert decisions for explicitly not sampling a trace.
    If the deprecated behavior is required while migrating to drop policies, disable the processor.tailsamplingprocessor.disableinvertdecisions feature gate.

  • receiver/kafka: Remove Sarama consumer implementation and default_fetch_size configuration option (#44564)
    The Sarama-based Kafka consumer has been removed from kafkareceiver.
    The default_fetch_size configuration option has also been removed as it was only used by the Sarama consumer.
    Feature gate receiver.kafkareceiver.UseFranzGo has also been removed since Franz-go is now the only supported Kafka client.

🚩 Deprecations 🚩

  • exporter/elasticsearch: Deprecate mapping::mode config option (#45246)
    The mapping::mode config option is now deprecated and will soon be ignored. Instead, use
    the X-Elastic-Mapping-Mode client metadata key (via headers_setter extension) or the
    elastic.mapping.mode scope attribute to control the mapping mode per-request.
    See the README for migration instructions.

🚀 New components 🚀

  • processor/lookup: Add skeleton for external lookup enrichment processor (#41816)
    Adds the initial skeleton for a lookup processor that performs external lookups to enrich telemetry signals.
    Also includes source abstraction with factory pattern, noop source for testing, and cache wrapper utility.

💡 Enhancements 💡

  • cmd/schemagen: Extend schemagen script with ability to handle external refs. (#42214)
    The schemagen tool has been enhanced to support external references when generating
    configuration schemas for OpenTelemetry Collector components. This improvement allows
    the tool to accurately reference and include schema definitions from external packages,
    facilitating better modularity and reuse of configuration schemas across different components.

  • cmd/schemagen: Fixes for schemagen to handle common issues with receiver components schemas. (#42214)
    Fix common issues discovered while using schemagen with receiver components:

    • Missing config.go file (e.g. namedpipereceiver)
    • Parsing obsolete types (e.g. nsxtreceiver)
    • Unable to embed fields with squash tag and not exported internal type (e.g. huaweicloudcesreceiver)
  • cmd/telemetrygen: Add batching capability to metrics and traces (#42322)

    • Changed traces batching to have configurable batch size and match batch flag.
    • Added batching to metrics.
    • Added batching to logs.
  • exporter/azureblob: Add timezone option for formatting blob names in azureblob exporter. (#43752)

  • exporter/elasticsearch: Remove go-elasticsearch dependency to reduce binary size (#45104)
    This leads to a 19MB size reduction in contrib distribution

  • exporter/googlecloudstorage: Add support for time partitioning (#44889)

  • exporter/opensearch: Add support for multiple variables to build index names (#42585)

  • exporter/sumologic: Add decompose_otlp_summaries configuration option to decompose OTLP Summary metrics into individual gauges and counters (#44737)

  • extension/awslogs_encoding: Optimize CloudTrail logs unmarshaling for memory usage (#45180)

  • processor/k8sattributes: Bumnp version of semconv to v1.39.0 (#45447)

  • processor/redaction: Add sanitize_span_name option to URL and DB sanitization configs. (#44228)

  • processor/redaction: Add ignored_key_patterns configuration option to allow ignoring keys by regex pattern (#44657)

  • processor/resourcedetection: Add optional docker attributes (#44898)
    Add container.image.name and container.name optional resource attributes with the docker detector. . Note: Because of opentelemetry-collector-releases#1350 this change is not available on the v0.144.0 binary releases. v0.145.0 will include this change.

  • processor/tail_sampling: Provide an option, decision_wait_after_root_received, to make quicker decisions after a root span is received. (#43876)

  • receiver/azureeventhub: Add support for azure auth when feature gate receiver.azureeventhubreceiver.UseAzeventhubs is enabled. (#40711)

  • receiver/prometheus: receiver/prometheus now associates scraped _created text lines as the created timestamp of its metric family rather than its own metric series, as defined by the OpenMetricsText spec (#45291)

  • receiver/prometheus: Add comprehensive troubleshooting and best practices guide to Prometheus receiver README (#44925)
    The guide includes common issues and solutions, performance optimization strategies,
    production deployment best practices, monitoring recommendations, and debugging tips.

  • receiver/prometheusremotewrite: Replace labels.Map() iteration with direct label traversal to eliminate intermediate map allocations. (#45166)

🧰 Bug fixes 🧰

  • exporter/kafka: franz-go: Exclude non-produce metrics from kafka_exporter_write_latency and kafka_exporter_latency (#45258)

  • exporter/opensearch: Fix dynamic log index feature putting logs in wrong index (#43183)

  • exporter/prometheusremotewrite: Prevent duplicate samples by allowing the WAL to be empty (#41785)
    Since the WAL is being truncated after every send it's likely the reader and writer are in sync. Since WAL was not
    allowed to be empty, the reader would always re-read previously delivered samples causing duplicate data to be sent
    continuously.

  • extension/datadog: Datadog extension no longer throws an error for missing extensions when getting a list of active components, and now populates active components even when missing go mod/version info. (#45358, #45460)

  • extension/file_storage: Handle filename too long error in file storage extension by using the sha256 of the attempted filename instead. (#44039)

  • extension/text_encoding: Avoid spurious marshalling separators at end of lines (#42797)
    Previously, text_encoding would append the marshalling separator to the end of
    each log record, potentially resulting in double-newlines between blocks of
    records.

  • extension/text_encoding: Fix an issue where marshalling/unmarshalling separators were ignored (#42797)

  • pkg/kafka/configkafka: Fix consumer group rebalance strategy validation (#45268)

  • pkg/ottl: Fix numeric parsing to correctly handle signed numbers in math expressions. (#45222)
    The OTTL math expression parser did not correctly handle unary signs for plus
    and minus. Expressions like 3-5 would not parse correctly without inserting
    spaces to make it 3 - 5. This change moves the sign handling out of the
    lexer and into the parser.

  • pkg/ottl: Handle floating constants with decimal point but no fraction. (#45222)
    Floating point constants that had a decimal point but no fractional digits
    (e.g., "3.") were not handled properly and could crash the parser. These are
    now parsed as valid floating point numbers.

  • pkg/stanza: Fix Windows UNC network path handling in filelog receiver (#44401)
    The filelog receiver now correctly handles Windows UNC network paths (e.g., \server\share\logs*.log).
    Previously, the receiver could list files from network shares but failed to open them due to path corruption
    during normalization. This fix converts UNC paths to Windows extended-length format (\?\UNC\server\share\path)
    which is more reliable and not affected by filepath.Clean() issues.

  • pkg/stanza: Ensure container parser respects the if condition and on_error settings when format detection fails (#41508)

  • processor/resourcedetection: Prevent the resource detection processor from panicking when detectors return a zero-valued pdata resource. (#41934). Note: Because of opentelemetry-collector-releases#1350 this change is not available on the v0.144.0 binary releases. v0.145.0 will include this change.

  • processor/resourcedetection: Fix nil pointer panic when HTTP client creation fails in Start method (#45220). Note: Because of opentelemetry-collector-releases#1350 this change is not available on the v0.144.0 binary releases. v0.145.0 will include this change.

  • `receiver...

Read more

v0.143.0

05 Jan 22:56
v0.143.0
91039fd

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

End User Changelog

🛑 Breaking changes 🛑

  • connector/servicegraph: remove deprecated warning log about metrics exporter logical (#45177)

  • extension/googlecloudlogentry_encoding: Parse Cloud DNS Query logs into log record attributes instead of placing it in the body as is. (#44561)

  • processor/tail_sampling: Add support for caching the policy name involved in a sampling decision. (#45040)
    This change allows the tailsampling.policy attribute to be set on the spans in a trace when a sampling decision is cached.

  • receiver/prometheus: Remove deprecated use_start_time_metric and start_time_metric_regex configuration options. (#44180)
    The use_start_time_metric and start_time_metric_regex configuration options have been removed after being deprecated in v0.142.0.
    Users who have these options set in their configuration will experience collector startup failures after upgrading.
    To migrate, remove these configuration options and use the metricstarttime processor instead for equivalent functionality.

  • receiver/systemd: Rename systemd.unit.cpu.time metric to systemd.service.cpu.time (#44916)

🚀 New components 🚀

  • cmd/schemagen: Introduce script that generates configuration schemas for collector components based on go structs. (#42214)
    The schemagen tool generates schemas for OpenTelemetry Collector components configuration
    by analyzing Go struct definitions. This is preliminary work to support automatic generation
    of documentation and validation for component configurations.

💡 Enhancements 💡

  • exporter/azureblob: Add time_parser_ranges option to allow selective time parsing of blob name substrings (#44650)
    The new time_parser_ranges configuration allows specifying index ranges (e.g., ["0-10", "15-25"]) to control which parts of the blob name are time-formatted.

  • exporter/coralogix: Exposed a new field to set grpc-accept-encoding. gzip will be used by default. (#45191)

  • exporter/coralogix: Improve log messages when a partial success happens for traces. (#44926)
    The exporter now provides additional context based on the type of partial success | returned by the backend. When the backend indicates issues with the sent data, the error | message is analyzed to identify and display examples of the problematic data.

  • exporter/elasticsearch: Add support for extra query parameters to the outgoing bulk request (#44480)

  • exporter/kafka: Make max_message_bytes and flush_max_messages unconditional in franz-go producer. Changed flush_max_messages default from 0 to 10000 to match franz-go default. (#44840)

  • extension/awslogs_encoding: Enhance VPC flow logs encoding extension with CloudWatch logs support (#44710)

  • extension/azure_encoding: Add processing for AppService, CDN, FrontDoor and Recommendation logs records (#41725)

  • extension/googlecloudlogentry_encoding: Add support for Passthrough External and Internal Network Load Balancer logs (#44524)
    Add support for Passthrough External and Internal Network Load Balancer logs to the Google Cloud log entry encoding extension.
    This includes adding support for the new gcp.load_balancing.passthrough_nlb attributes including connection details,
    bytes/packets sent and received, and RTT measurements.

  • pkg/ottl: Add Bool function for converting values to boolean (#44770)

  • processor/geoip: Bump oschwald/geoip2 to v2 (#44687)

  • receiver/awscloudwatch: Add support for filtering log groups by account ID. (#38391)

  • receiver/awscontainerinsightreceiver: Component type name renamed from awscontainerinsightreceiver to awscontainerinsight, controlled by feature gate receiver.awscontainerinsightreceiver.useNewTypeName. (#44052)
    When the feature gate is enabled, the receiver uses the new type name awscontainerinsight instead of awscontainerinsightreceiver.
    To enable the new type name, use: --feature-gates=+receiver.awscontainerinsightreceiver.useNewTypeName.

  • receiver/awslambda: Add support for AWS Lambda receiver to trigger by CloudWatch logs subscription filters for Lambda (#43504)

  • receiver/awslambda: Add S3 failure replay support to AWS Lambda receiver (#43504)

  • receiver/filelog: gzip files are auto detected based on their header (#39682)

  • receiver/github: Add merged_pr_lookback_days configuration to limit historical PR queries and reduce API usage (#43388)
    The merged_pr_lookback_days configuration option limits the timeframe for
    which merged pull requests are queried. Set to 0 to fetch all merged PRs.
    Open PRs are always fetched regardless of this setting.

  • receiver/oracledb: Add stored procedure information to logs for top queries and query samples. (#44764)
    The db.server.top_query event now includes oracledb.procedure_id, oracledb.procedure_name, and oracledb.procedure_type attributes.
    The db.server.query_sample event now includes oracledb.procedure_id, oracledb.procedure_name, and oracledb.procedure_type attributes.

  • receiver/postgresql: Added service.instance.id resource attribute for metrics and logs (#43907)
    service.instance.id is enabled by default.

  • receiver/postgresql: Add trace propagation support (#44868)
    When postgresql.application_name contains a valid W3C traceparent, emitted db.server.query_sample logs include trace_id and span_id for correlation.

  • receiver/prometheus: Add receiver.prometheusreceiver.RemoveReportExtraScrapeMetricsConfig feature gate to disable the report_extra_scrape_metrics config option. (#44181)
    When enabled, the report_extra_scrape_metrics configuration option is ignored, and extra scrape metrics are
    controlled solely by the receiver.prometheusreceiver.EnableReportExtraScrapeMetrics feature gate.
    This mimics Prometheus behavior where extra scrape metrics are controlled by a feature flag.

  • receiver/systemd: Add metric for number of times a service has restarted. (#45071)

  • receiver/windowseventlog: Improved performance of the Windows Event Log Receiver (#43195)
    Previously, the Windows Event Log Receiver could only process events up to 100 messages per second with default settings.
    This was because the receiver would read at most max_reads messages within each configured poll_interval, even if
    additional events were already available.

    This restriction has been removed. The poll_interval parameter behaves as described in the documentation:
    The poll_interval parameter now only takes effect after all current events have been read.

    For users who prefer the previous behavior, a new configuration option, max_events_per_poll, has been introduced.

  • receiver/windowseventlog: Add parsing for Version and Correlation event fields. (#45018)

🧰 Bug fixes 🧰

  • connector/count: Basic config should emit default metrics (#41769)

  • exporter/elasticsearch: Deduplicate attribute keys from non-compliant SDKs in otel mapping mode (#39304)
    The serializer in otel mapping mode now explicitly deduplicates attribute keys when writing to Elasticsearch,
    keeping only the first occurrence. This prevents invalid JSON from being produced when
    non-compliant SDKs send duplicate keys.

  • exporter/kafka: Wrap non-retriable errors from franzgo with consumererror::permanent (#44918)

  • exporter/loadbalancing: Fix k8s resolver parsing so loadbalancing exporter works with service FQDNs (#44472)

  • pkg/translator/azurelogs: Fix missing data when ingesting Azure logs without properties field. (#44222)

  • receiver/awss3: Fix data loss when SQS messages contain multiple S3 object notifications and some fail to process (#45153)
    The SQS notification reader was unconditionally deleting messages after processing,
    even when some S3 object retrievals or callback processing failed. This caused data
    loss when a message contained multiple S3 notification records and any of them failed.
    Messages are now only deleted when all records are successfully processed, allowing
    failed records to be retried after the visibility timeout.

  • receiver/azureeventhub: Make storage of new azeventhub library backward compatible and fix checkpoint starting at earliest when storage is enabled (#44461)

  • receiver/fluentforward: Ensure all established connections are properly closed on shutdown in the fluentforward receiver. The shutdown process now reliably closes all active connections. (#44433)

    • Fixes shutdown behavior so that all existing connections are closed cleanly.
    • Adds tests to verify proper connection closure.
  • receiver/kafka: Fix deprecated field migration logic for metrics, traces, and profiles topic configuration (#45215)
    Fixed bug where deprecated topic and exclude_topic fields for metrics, traces, and profiles
    were incorrectly checking logs configuration instead of their respective signal type's configuration.
    This prevented proper migration from deprecated fields unless logs.topics was empty.
    Also fixed validation error message typo for traces.exclude_topic and corrected profiles validation
    to check ExcludeTopic fields instead of Topic fields.

  • receiver/sqlserver: Collect query metrics for long running queries (#44984)

  • receiver/tcpcheck: Fix the unit of th...

Read more