fix(deps): update go modules #36

Merged
renovate merged 1 commit from renovate/go-modules into main 2026-07-09 12:32:45 -04:00
Member

This PR contains the following updates:

Package Change Age Confidence
github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.154.0v0.156.0 age confidence
go.opentelemetry.io/collector/confmap/provider/envprovider v1.61.0v1.62.0 age confidence
go.opentelemetry.io/collector/confmap/provider/yamlprovider v1.60.0v1.62.0 age confidence
go.opentelemetry.io/collector/connector v0.155.0v0.156.0 age confidence
go.opentelemetry.io/collector/otelcol v0.155.0v0.156.0 age confidence
go.opentelemetry.io/collector/processor/batchprocessor v0.154.0v0.156.0 age confidence
go.opentelemetry.io/collector/receiver/otlpreceiver v0.155.0v0.156.0 age confidence
go.opentelemetry.io/collector/service v0.155.0v0.156.0 age confidence

Release Notes

open-telemetry/opentelemetry-collector-contrib (github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver)

v0.156.0

Compare Source

🛑 Breaking changes 🛑
  • pkg/fileconsumer: Move feature gate filelog.protobufCheckpointEncoding to beta and keep it enabled by default (#​49387)

  • receiver/oracledb: Enhanced Oracle SQL query plan details with runtime execution statistics. (#​49329)
    This change requires the collector user to have access to V$SQL_PLAN_STATISTICS_ALL. Existing deployments that only grant access to V$SQL_PLAN
    may experience query plan collection failures until the appropriate privileges are granted.

    SQL query plan details are now retrieved from V$SQL_PLAN_STATISTICS_ALL instead of V$SQL_PLAN. Since V$SQL_PLAN_STATISTICS_ALL is a superset of V$SQL_PLAN,
    this change is backward compatible with respect to the emitted plan detail fields while enabling collection of additional runtime execution statistics,
    including OUTPUT_ROWS, LAST_OUTPUT_ROWS, LAST_ELAPSED_TIME, LAST_CR_BUFFER_GETS, LAST_CU_BUFFER_GETS, STARTS, and LAST_STARTS.

🚩 Deprecations 🚩
  • connector/routing: Deprecate the request context in favor of otelcol.* OTTL paths. (#​44762)
    The routing connector request context and request["key"] condition syntax are deprecated in favor of
    otelcol.client.metadata["key"][0] for HTTP/client metadata and otelcol.grpc.metadata["key"][0] for gRPC metadata.
    These paths work in all signal contexts and are documented in the OTelCol OTTL context.
    A warning is logged when the request context is still configured.

  • exporter/datadog: The exporter.datadogexporter.metricremappingdisabled feature gate no longer has any effect when the serializer exporter path is active (the default). Use exporter.datadogexporter.DisableAllMetricRemapping to disable metric remapping. (#​49320)
    See DataDog/datadog-agent#51232.

  • receiver/aws_cloudwatch: rename to aws_cloudwatch with deprecated alias awscloudwatch (#​45339)

🚀 New components 🚀
  • processor/dynamic_sampling: Add dynamic sampling processor for adaptive trace sampling with W3C TraceState rate encoding. (#​48898)
💡 Enhancements 💡
  • cmd/opampsupervisor: Make the OpAMP Supervisor logger encoding configurable so it can emit console (plain-text) logs as well as JSON (#​47532)

  • connector/routing: Add OTTL context inference support to routing connector. (#​38080)
    The routing connector now supports OTTL context inference, allowing users to write clearer routing conditions using
    context-qualified paths. Instead of relying on implicit context resolution, users can explicitly specify which
    context's attributes they want to access (e.g., resource.attributes["env"] or span.attributes["http.method"]).
    Unqualified paths like attributes["key"] continue to work and default to the resource context for backward compatibility.

  • exporter/alibabacloud_logservice: Add security_token (STS) support alongside AK/SK; preserve ECS role/token-file fallback. (#​48624)
    When security_token is provided in the exporter configuration the SDK is
    configured to use static STS credentials via the provider. The existing
    ecs_ram_role and token_file_path behavior remains the higher-priority
    authentication method and is unchanged.

  • exporter/clickhouse: Add experimental support for the profiles signal (#​49304)

  • exporter/datadog: Emit otel.datadog_exporter.metrics.running.fargate{task_arn} for AWS ECS Fargate workloads so that each workload has its own metric. (#​49042)
    Host-based workloads continue to use otel.datadog_exporter.metrics.running{host} unchanged.
    otel.datadog_exporter.metrics.running will no longer be tagged with task_arn. Fargate workloads will only use otel.datadog_exporter.metrics.running.fargate{task_arn}.

  • exporter/datadog: Fargate workloads now emit a dedicated otel.datadog_exporter.metrics.running.fargate metric tagged with task_arn instead of sharing otel.datadog_exporter.metrics.running with host-based workloads. (#​49320)
    Host-based workloads continue to emit otel.datadog_exporter.metrics.running{host} unchanged.
    See DataDog/datadog-agent#52203.

  • exporter/elasticsearch: Support routing from data_stream attributes defined as scope attributes (#​49306)

  • extension/azure_auth: Promote the Azure Authenticator extension to beta stability. (#​48521)

  • extension/file_storage: Added max_size support to the filestorage extension to cap per-component database growth. (#​38620)

  • extension/sigv4auth: Add automatic service detection for CloudWatch OTLP metrics endpoint (monitoring..amazonaws.com) (#​48738)

  • pkg/translator/pprof: reduce allocations in sample conversion (#​49452)

  • processor/transform: Add exemplar context support to the transform processor, allowing metric_statements to read and modify exemplar fields on metric datapoints. (#​49022)

  • receiver/aws_lambda: Add support for AWS configuration overrides for static credentials (#​49163)

  • receiver/faro: Emit per-payload counters for ingested Faro logs, measurements, exceptions, and events (#​48071)
    Adds otelcol_faro_log_ingested_total, otelcol_faro_measurement_ingested_total,
    otelcol_faro_exception_ingested_total, and otelcol_faro_event_ingested_total. Each
    counter is incremented by the number of entries in the corresponding
    payload section after the request body is parsed.

  • receiver/mongodb: Add Query Sample collection to the MongoDB receiver, emitting a db.server.query_sample log event for each currently executing operation. (#​48573)
    Samples are collected via $currentOp, with idle connections and administrative commands
    filtered out. Each event includes obfuscated query text and operation metadata.
    The logs signal is at development stability; attribute names may change until OTel
    db.server.query_sample conventions stabilize. The metrics signal remains at beta.

  • receiver/oracledb: Add service.name and service.namespace opt-in resource attributes and allow overriding any resource attribute via override_value. (#​47088)

  • receiver/oracledb: Add workload analysis metrics related to scans, enqueue, LOB, parse, sort, cursor, and session activity (#​48808)
    Adds fourteen new opt-in metrics (disabled by default):

    • oracledb.call.count, oracledb.call.recursive.cpu.time
    • oracledb.cursor.cache.hits, oracledb.cursor.cache.size, oracledb.cursor.open
    • oracledb.db.time
    • oracledb.enqueue.operations
    • oracledb.lob.operations
    • oracledb.parse.cpu.time, oracledb.parse.elapsed.time
    • oracledb.scan.count, oracledb.scan.table.rows
    • oracledb.sort.operations, oracledb.sort.rows
      No new SQL queries are issued; the existing v$sysstat scrape already returns
      all required rows, so the receiver adds no additional load on the monitored
      Oracle instance.
  • receiver/oracledb: Add buffer cache and Database Writer (DBWR) metrics (#​49061)

  • receiver/oracledb: Add redo log metrics (#​49060)

  • receiver/postgresql: Add default service.name and service.namespace resource attributes (#​47087)
    Both attributes default to enabled: false. When enabled, service.name
    defaults to unknown_service:postgresql and service.namespace defaults
    to an empty string. Additionally, override_value is enabled for all
    resource attributes, allowing users to set custom values via
    override_value in the collector configuration.

  • receiver/postgresql: Adds blocking session and lock attributes to db.server.query_sample events for PostgreSQL blocking session detection. Blocking attributes are always emitted (empty string / 0 when not blocked). (#​49028)
    New attributes under postgresql.blocking.*: postgresql.blocking.pids, postgresql.blocking.start_time,
    postgresql.blocking.wait_duration, postgresql.blocking.lock.mode, postgresql.blocking.lock.type,
    postgresql.blocking.lock.relation, postgresql.blocking.transaction.start_time.
    postgresql.blocking.pids contains the full array of blocking PIDs from pg_blocking_pids() (e.g. {5121,5122}).
    postgresql.blocking.start_time uses pg_locks.waitstart (PostgreSQL 14+) to record when the lock wait began. waitstart is stable for the full duration of the wait — it is set once when the lock wait starts and is not affected by blockers joining or leaving.
    postgresql.blocking.transaction.start_time provides a UTC timestamp (RFC3339) from xact_start representing when the transaction started, predating the lock contention itself.
    Idle-in-transaction blocker sessions (holding locks without an active request) are captured via pg_blocking_pids subquery in the WHERE clause.
    All blocking attributes are always present on every db.server.query_sample event; empty string / 0 values indicate no active blocking.
    Requires PostgreSQL 14 or later.

  • receiver/prometheus: Promote receiver.prometheusreceiver.IgnoreScopeInfoMetric feature gate to beta. (#​47312)
    The otel_scope_info metric is now ignored for scope attribute extraction by default.
    To temporarily restore the previous behavior, disable the feature gate with --feature-gates=-receiver.prometheusreceiver.IgnoreScopeInfoMetric.

  • receiver/sqlserver: Add access methods and buffer pool metrics (#​49182)
    Adds the following metrics, all disabled by default:

    • sqlserver.access.scan.rate
    • sqlserver.extent.operation.rate
    • sqlserver.ghost_record.skipped.rate
    • sqlserver.page.allocation.rate
    • sqlserver.page.compression.rate
    • sqlserver.page.read_ahead.rate
    • sqlserver.scan_point.revalidation.rate
    • sqlserver.worktable.cache.hit_ratio
  • receiver/syslog: Add support for RFC6587 Octet Counting framing with RFC3164 message format. (#​45216)

🧰 Bug fixes 🧰
  • connector/routing: Fix duplicate routing table entry handling to correctly ignore duplicates instead of overwriting the original route (#​44762)
    Previously, when duplicate routing table entries were encountered, the warning message indicated that the duplicate
    would be ignored, but in fact the original entry was being overwritten by the duplicate.
    This fix ensures that duplicates are properly ignored and the original route's consumer is preserved.

  • exporter/awsxray: Use local service name for Consumer local root segment names, falling back to resource service name when aws.local.service is absent. (#​43432)
    Consumer spans promoted to X-Ray Segments after #​42633 were named
    using the span (operation) name instead of the local service name.
    The fix mirrors the existing Server span naming behavior.

  • exporter/datadog: Compress the metric sketches payload with gzip in the legacy metric API client, matching the metric series payload. Previously sketches were sent uncompressed, increasing egress for distribution/histogram metrics. (#​49313)

  • exporter/datadog: Fix CPU core count fields (cpu_cores, cpu_logical_processors) missing from host metadata payloads for remote hosts in OTel gateway topologies. (#​49320)
    CPU data arrives via system.cpu.physical.count / system.cpu.logical.count metrics and was never
    forwarded to the host metadata reporter in the serializer exporter path.
    See DataDog/datadog-agent#51893.

  • exporter/datadog: Fix host metadata collection no longer aborts the entire batch when one resource fails; errors are accumulated and processing continues for remaining resources (#​49153)
    See DataDog/datadog-agent#51893.

  • exporter/datadog: Metrics from the Podman stats receiver now report the correct Datadog metric origin (opentelemetry_collector_podmanreceiver) instead of falling through to opentelemetry_collector_unknown. (#​49320)
    See DataDog/datadog-agent#52594.

  • exporter/file: Fix path traversal vulnerability on Windows when using grouping file exporter (#​49194)

  • exporter/opensearch: Preserve LogRecord EventName field in all log encoding modes. (#​49314)

  • extension/datadog: Skip cloud metadata source provider probe when hostname is already set in config, avoiding spurious GCP metadata server requests on non-GCP hosts. (#​49241)

  • pkg/translator/pprof: Wrong conversion of labels from pprof to OTLP profiles (#​49449)

  • processor/cumulativetodelta: Align reset detection and dropping on histograms and exponential histograms (#​48278)
    Histograms and exponential histograms where there is a drop in total count or on any bucket counts are now treated as a reset and dropped.

  • processor/cumulativetodelta: Fix non-deterministic order of valid metric types in error messages for invalid metric_types config values. (#​49120)

  • processor/gen_ai_normalizer: Fix OpenInference message normalization for flattened indexed attributes (#​48421)
    Reconstruct gen_ai.input.messages and gen_ai.output.messages from
    OpenInference flattened indexed span attributes
    (llm.{input,output}_messages.N.message.*).

  • processor/k8s_attributes: Fix cache key memory leak in k8sattributesprocessor when a Pod's IP is missing or cleared from the delete event (#​48986)
    When a Pod is deleted, if its IP address is missing or already cleared from the delete event status,
    the processor now looks up the cached pod by its UID to retrieve the stored IP and correctly queue
    all associated keys for deletion.

  • processor/resource_detection: Fix Docker resource detection failing to start when optional resource attributes are disabled, including container attributes when the hostname does not match a Docker container name. (#​46275)

  • processor/spanpruning: Fix non-deterministic depth of preserved outlier spans by grouping leaves and parents by tree depth, so same-named ancestors at different depths are no longer merged. (#​49323)

  • receiver/aws_cloudwatch: Fix logs being skipped when AWS pagination returns an empty page (#​48577)

  • receiver/github: Capture the datapoint timestamp per repository instead of once at scrape start, so per-repository metrics carry a timestamp close to when each repository was observed. (#​48497)

  • receiver/prometheus: Prometheus API server config/targets stay in sync with Target Allocator changing it if both are enabled. (#​48040)
    Previously, the API server config and targets did not get the updates from the Target Allocator.

  • receiver/tcp_log: Fix tcp input operator emitting partial log data after a connection read error when one_log_per_packet is enabled (#​49199)
    Previously, if a TCP connection was reset mid-read while one_log_per_packet
    was set to true, the partial buffer was still processed and emitted as a log
    entry. Now the read error causes the message to be discarded instead.

v0.155.0

Compare Source

🛑 Breaking changes 🛑
  • all: Move cmd/schemagen to opentelemetry-collector as go.opentelemetry.io/collector/cmd/schemagen. (#​14543)
    The schemagen CLI now lives in the opentelemetry-collector repository. Existing make schemagen and
    make generate-schemas targets continue to work — they now invoke the tool via
    go run go.opentelemetry.io/collector/cmd/schemagen@latest. Override the new SCHEMAGEN_PKG variable
    to pin a specific release. Downstream users that previously imported
    github.com/open-telemetry/opentelemetry-collector-contrib/cmd/schemagen must update their import path
    to go.opentelemetry.io/collector/cmd/schemagen.

  • exporter/signalfx: Stop calculating per-core cpu.* metrics disabled by default. (#​49247)
    The default transformations still create aggregate CPU metrics. However, per-core cpu.* metrics which are disabled by default aren't produced by the default transformations anymore.
    This change doesn't have any impact unless any of cpu.* metrics are explicitly enabled with the cpu attribute in signalfx exporter with configuration like this:

    exporters:
      signalfx:
        include_metrics:
          - metric_name: cpu.idle
            dimensions:
              cpu: ["*"]
    

    In that case, the same metrics can be restore by applying the transform processor the following way:

    receivers:
      hostmetrics:
        scrapers:
          cpu:
            metrics:
              system.cpu.time:
                enabled: true
                attributes: [cpu, state]
    processors:
      transform/cpu_idle_per_core:
        error_mode: ignore
        metric_statements:
          - context: metric
            statements:
              - copy_metric(name="cpu.idle") where metric.name == "system.cpu.time"
          - context: datapoint
            statements:
              - set(datapoint.value_double, 0.0) where metric.name == "cpu.idle" and datapoint.attributes["state"] != "idle"
          - context: metric
            statements:
              - aggregate_on_attributes("sum", ["cpu"]) where metric.name == "cpu.idle"
              - scale_metric(100.0) where metric.name == "cpu.idle"
          - context: datapoint
            statements:
              - set(datapoint.value_int, Int(datapoint.value_double)) where metric.name == "cpu.idle"
    service:
      pipelines:
        metrics:
          receivers: [hostmetrics]
          processors: [transform/cpu_idle_per_core]
          exporters: [signalfx]
    
  • exporter/signalfx: Stop calculating cpu.utilization_per_core disabled by default. (#​49243)
    The exporter still creates the aggregate cpu.utilization metric by default. However, cpu.utilization_per_core which is disabled by default isn't produced by the default transformations anymore.
    This change doesn't have any impact unless cpu.utilization_per_core metric is explicitly enabled in signalfx exporter with configuration like this:

    exporters:
      signalfx:
        include_metrics:
          - metric_name: cpu.utilization_per_core
    

    In that case, the same metric can be restore by applying the transform processor the following way:

    receivers:
      hostmetrics:
        scrapers:
          cpu:
            metrics:
              system.cpu.utilization:
                enabled: true
                attributes: [cpu, state]
    processors:
      transform/cpu_utilization_per_core:
        error_mode: ignore
        metric_statements:
          - context: metric
            statements:
              - set(metric.name, "cpu.utilization_per_core") where metric.name == "system.cpu.utilization"
          - context: datapoint
            statements:
              - set(datapoint.value_double, 0.0) where metric.name == "cpu.utilization_per_core" and datapoint.attributes["state"] == "idle"
          - context: metric
            statements:
              - aggregate_on_attributes("sum", ["cpu"]) where metric.name == "cpu.utilization_per_core"
    service:
      pipelines:
        metrics:
          receivers: [hostmetrics]
          processors: [transform/cpu_utilization_per_core]
          exporters: [signalfx]
    
  • pkg/fileconsumer: Remove stable gate filelog.decompressFingerprint (#​48980)

  • processor/k8s_attributes: Remove deprecated gate k8sattr.labelsAnnotationsSingular.allow (#​48977)

  • processor/tail_sampling: Remove stable gate processor.tailsamplingprocessor.disableinvertdecisions (#​48976)

  • receiver/datadog: Enhance Datadog logs support (#​49102)
    Logs are now translated to the OpenTelemetry data model instead of being emitted as flat string
    attributes: the record timestamp/observed timestamp are set (converting Datadog epoch-milliseconds
    to nanoseconds), status maps to the severity number/text, hostname/service and known ddtags
    are promoted to resource attributes, and dd.trace_id/dd.span_id populate TraceID/SpanID for
    trace correlation (reconstructing full 128-bit trace ids from _dd.p.tid the same way spans do).
    A new logs::decode_json_message option (enabled by default) expands JSON-encoded log messages
    forwarded by the Datadog Agent, lifting their reserved fields and attributes into the log record.

  • receiver/datadog: Enable the receiver.datadogreceiver.Enable128BitTraceID feature gate by default (#​49103)
    The gate is promoted from alpha to beta (on by default), so spans reconstruct full 128-bit trace ids
    from _dd.p.tid and emit OpenTelemetry-native trace ids that correlate with other OpenTelemetry
    services. Disable the gate to fall back to 64-bit (zero-padded) trace ids.

  • receiver/mongodb: Minimum supported MongoDB version is now 4.4. (#​49248)
    MongoDB 4.0 reached end-of-life in April 2022 and is no longer supported by the Go MongoDB driver v2.7.0+,
    which raised the minimum required wire protocol version. Users still on MongoDB 4.0 must upgrade to at
    least MongoDB 4.4 before upgrading to this version of the receiver.

  • receiver/oracledb: Set db.namespace to database name and add oracle.db.service attribute on query sample and top query events. (#​48996)
    On db.server.query_sample and db.server.top_query events, db.namespace
    now reports the database name instead of the Oracle service
    name. The service name moves to the new oracle.db.service attribute.

🚩 Deprecations 🚩
  • connector/service_graph: Deprecate the legacy servicegraph connector latency metric names and millisecond latency unit feature gates, and mark the virtual node feature gate as stable. (#​49215)
  • receiver/flink_metrics: Rename receiver type from flinkmetrics to flink_metrics (#​45339)
  • receiver/splunk_enterprise: Rename receiver type from splunkenterprise to splunk_enterprise (#​45339)
🚀 New components 🚀
  • processor/cardinality_guardian: Promote the cardinalityguardian processor to alpha stability and include it in the contrib distribution. (#​47368)
  • receiver/active_directory_inv: Add Windows Active Directory Inventory receiver for collecting inventory data from Active Directory. (#​48733)
💡 Enhancements 💡
  • cmd/opampsupervisor: Allow Supervisor to configure its managed OpAMP extension config to include Collector resource attributes (#​48536)

  • connector/routing: Add connector.routing.defaultErrorModeIgnore feature gate to change default error_mode from propagate to ignore (#​48418)

  • exporter/awsxray: Migrate http.status_code (v1.25.0) semantic convention to http.response.status_code (v1.40.0) (#​45058)

  • exporter/awsxray: Migrate container.image.tag (v1.21.0) semantic convention to container.image.tags (v1.40.0) (#​45057)

  • exporter/azure_blob: Add support for gzip and zstd compression to the Azure Blob Storage exporter. The compression config option is now supported and the appropriate file extension is added to blob names. (#​45338)
    This mirrors the compression support added to the Google Cloud Storage exporter in commit 6fd0eb6. Compression is applied to the marshaled data before upload (including append blocks). Tests and documentation updated.

  • exporter/elasticsearch: Extract span events as separate ECS log documents in ECS mapping mode (#​49181)
    In ECS mapping mode, exception span events are routed to logs-apm.error-* and all other
    span events to logs-apm.app.<service>-*, with OTel exception attributes mapped to
    their correct nested ECS paths (error.exception.type, error.exception.message,
    error.stack_trace).

  • exporter/file: Add feature gate for native file-level compression in file exporter (#​44077)
    A new alpha feature gate exporter.file.nativeCompression enables native file-level zstd compression.
    When enabled, the exporter produces standard .zst files that can be decompressed with zstd -d,
    unlike the legacy per-message compression format which requires custom tooling.

  • exporter/google_cloud_storage: Add universe_domain config option to support Sovereign Google Cloud regions. Setting this field passes option.WithUniverseDomain to the underlying Google API client. (#​48924)

  • exporter/google_cloud_storage: Add resource_attrs_to_gcs to partition objects by a resource attribute value. (#​49136)
    When resource_attrs_to_gcs.prefix is set, the value of the given resource attribute
    (read from the first resource of each batch) is inserted as a partition path segment
    between bucket.partition.prefix and the time-based bucket.partition.format, mirroring
    the awss3exporter resource_attrs_to_s3 behavior.

  • exporter/googlecloudpubsub: Add universe_domain config option to support Sovereign Google Cloud regions. Setting this field passes option.WithUniverseDomain to the underlying Google API client. (#​48924)

  • exporter/kafka: Add producer.max_broker_write_bytes config (#​47492)
    The maximum size of a single write to a broker was previously fixed at the underlying
    franz-go default of 100 MiB and could not be configured. As a result, setting
    producer.max_message_bytes above 100 MiB passed configuration validation but caused the
    collector to fail on startup with an unrecoverable error ("max broker write bytes ... is
    erroneously less than max record batch bytes ...").

    The new producer.max_broker_write_bytes setting (default 1048576, i.e. 100 MiB) exposes
    this limit. To send messages larger than 100 MiB, raise it so it is greater than or equal to
    max_message_bytes. Configuration is now validated up front: the collector reports a clear
    error if max_broker_write_bytes is below the 100 MiB minimum or smaller than
    max_message_bytes, rather than failing at runtime.

  • exporter/load_balancing: Reduce CPU usage and memory allocations when routing traces by traceID (the default routing key) (#​48983)
    Routing decisions are unchanged. Spans are now regrouped per backend, so the exact
    ResourceSpans/ScopeSpans grouping of exported traces may differ from the input. If a downstream
    consumer is sensitive to this, a groupbyattrsprocessor on the receiving end can recompact the
    ResourceSpans.

  • exporter/splunk_hec: Support exporting profiles (#​48598)

  • extension/azure_encoding: Map schemaVersion and resourceType fields of Azure Storage Blob logs to azure.storage.schema_version and azure.resource.type. (#​48753)

  • extension/azure_encoding: Support statusMessage on Administrative Activity Logs (#​48932)
    The properties.statusMessage field on Azure Administrative activity logs is now
    parsed. When it contains JSON (the common case for VM ScaleSet operations etc.),
    the structured object is stored under the azure.administrative.status_message
    attribute. Plain-string values are stored as-is.

  • pkg/coreinternal: Migrate messaging.destination (v1.16.0) semantic convention to messaging.destination.name (v1.40.0) (#​45077)

  • pkg/coreinternal: Migrate semantic conventions from v1.18.0 to v1.40.0 (#​45293)
    Introduced feature gates for the migration of two deprecated semantic conventions:

    • FaaS Execution (faas.execution): Added internal.coreinternal.goldendataset.EmitV1FaaSConventions to opt-in to the new faas.invocation_id attribute.
    • HTTP User Agent (http.user_agent): Added internal.coreinternal.goldendataset.EmitV1HTTPConventions to opt-in to the new user_agent.original attribute.
  • pkg/coreinternal: Improved strptime compatibility for time parsing (#​43842)
    Time parsing interfaces (such as the OTTL Time function and the
    timestamp operator) accept strptime-style format strings. This
    PR makes several changes to the parsing logic to better match the
    behavior of strptime. (Most notably, leading zeros are now
    optional for numbers, whitespace is ignored before most elements,
    and more ISO 8601 timezone formats are accepted for %z.)

  • pkg/faro: Migrate deployment.environment (v1.26.0) semantic convention to deployment.environment.name (v1.40.0) (#​45074)

  • pkg/ottl: Add stringify_all editor that converts all non-string values in a map to their string representation (#​48044)

  • pkg/ottl: Add support for dynamic keys in converters results. (#​48834)
    Converter results can now be indexed with dynamic keys expressions that evaluate to a string or integer.
    For example: Split(...)[Len(attributes["items"])] or Split(...)[attributes["index"]].
    Previously, only literal keys (e.g. [0] or ["index"]) were supported.

  • pkg/translator/pprof: Add support for OTel Profiles to pprof conversion across all three message Sample value/timestamp combinations (#​48864)

  • pkg/zipkin: Migrated semantic convention from v1.18.0 to v1.40.0 (#​45080)

  • processor/coralogix: Add critical path trace annotations. (#​48824)
    New critical_path.enabled config computes and writes span attributes cgx.critical_path.is_on_path, cgx.critical_path.exclusive_duration_ns, and cgx.critical_path.inclusive_duration_ns.
    Feature expects complete traces, so groupbytrace should run before coralogixprocessor in the pipeline.
    Example:
    processors: coralogix: critical_path: enabled: true

  • processor/geoip: Add error_mode configuration option to control how geolocation lookup errors are handled. (#​35069)
    The error_mode option supports propagate (default, preserves existing behavior),
    ignore (logs the error and continues), and silent (continues without logging).

  • processor/log_dedup: Add metadata_keys and metadata_cardinality_limit options to support multi-tenant pipelines by aggregating logs into separate buckets per unique metadata combination and preserving request context for downstream extensions. (#​47521)

  • processor/resource_detection: Add GCP Cloud Run Worker Pool detector to the resource detection processor (#​48931)

  • processor/schema: Add support for the Schema v2 file formats (manifest/2.0 and resolved/2.0) defined by OTEP (#​48189)
    The processor now auto-detects the schema document format via the file_format
    field and dispatches to a v1.1 or v2 code path accordingly. When the schema URL
    serves a manifest/2.0, the processor follows resolved_registry_uri through
    the existing provider chain (so caching, retry, and storage all apply to both
    fetches) and constructs a single-hop translator from the resolved registry.
    Renames are extracted from deprecated.renamed_to entries in
    attribute_catalog and registry.{metrics,spans,events}. diff/2.0 and
    definition/2 are recognised but not yet supported.

  • processor/spanpruning: Add duration outlier detection, attribute correlation, and outlier preservation to span aggregation (#​48984)
    Enabled with enable_outlier_analysis and configured via outlier_analysis.*. Detects slow spans within
    an aggregation group using IQR (default) or MAD, reports attribute values correlated with outliers, and can
    optionally preserve outliers as individual spans instead of aggregating them. Adds the
    processor_spanpruning_outliers_detected, processor_spanpruning_outliers_preserved, and
    processor_spanpruning_outliers_correlations_detected metrics. Behavior is unchanged when disabled.

  • processor/transform: Improve merge_histogram_buckets with method="limit_buckets" to compact buckets closer to the configured limit. (#​49020)

  • processor/transformprocessor/internal/logparsingfuncs: Add ParseLEEF function to parse Log Event Extended Format (LEEF) messages. (#​44908)

  • processor/transformprocessor/internal/logparsingfuncs: Add ParseCLF function for parsing Common Log Format (CLF) HTTP access log entries. (#​48349)
    ParseCLF is available in log statements and returns a map with the parsed
    clf.remote_host, clf.rfc931, clf.auth_user, clf.timestamp, clf.request,
    clf.method, clf.request_uri, clf.protocol, clf.status, and clf.bytes
    fields. An optional format parameter selects between the strict "clf" format
    (default) and the NCSA "combined" format, which additionally parses
    clf.referer and clf.user_agent.

  • receiver/aws_lambda: Introduce Custom Handler support for AWS Lambda Receiver. The custom handler allows the receiver to bind a signal-agnostic extension. (#​49160)

  • receiver/awscloudwatch: Adds a new configuration option initial_lookback to the AWS CloudWatch Logs receiver for specifying how far back from the collector's startup time to begin collecting logs. (#​47754)

  • receiver/azure_event_hub: Add the ability to use encoding extensions to the Azure Event Hub receiver. (#​48753)

  • receiver/datadog: Support zstd-compressed request payloads (#​49101)
    Recent Datadog Agents (7.59+) zstd-compress HTTP payloads by default. The receiver now decompresses
    both gzip and zstd request bodies.

  • receiver/datadog: Add feature gate to stop emitting deprecated rpc.service attribute (#​22095)
    The feature gate receiver.datadogreceiver.DontEmitDeprecatedRPCServiceAttr
    (disabled by default) allows users to opt out of the deprecated rpc.service
    attribute on gRPC spans. The service name is already captured in the span
    name (service/method) and rpc.method attribute.

  • receiver/file_log: Improve polling performance when watching many files by indexing fingerprint matching. (#​27404)

  • receiver/googlecloudmonitoring: Add universe_domain config option to support Sovereign Google Cloud regions. Setting this field passes option.WithUniverseDomain to the underlying Google API client. (#​48924)

  • receiver/googlecloudpubsub: Add universe_domain config option to support Sovereign Google Cloud regions. Setting this field passes option.WithUniverseDomain to the underlying Google API client. (#​48924)

  • receiver/host_metrics: Enable the Android platform in the process scraper. (#​47296)

  • receiver/host_metrics: Add AIX-specific process scraper implementation. (#​47095)
    Implements AIX versions of the platform-specific process scraper hooks
    (CPU time/utilization recording, process name, executable, and command
    extraction), replacing the previous empty stubs that the "others"
    fallback provided.

  • receiver/oracledb: Enhance SQL obfuscation to anonymize comments while preserving query structure (#​48508)

    • Query structure, formatting, and whitespace are now preserved during obfuscation for improved readability.
  • receiver/oracledb: Add additional attributes to the Oracle query execution plan. (#​48965)
    Extend the execution plan with five additional attributes:

    • OBJECT_NAME: Name of the object referenced by the plan step
    • OBJECT_TYPE: Type of the referenced object (e.g., table, index)
    • FILTER_PREDICATES: Predicates applied as a filter during the step
    • PARTITION_START: Starting partition for partitioned access
    • PARTITION_STOP: Ending partition for partitioned access
  • receiver/oracledb: Add oracledb.plan.first_load attribute to the db.server.top_query event (#​48998)

  • receiver/oracledb: Add SQL comment extraction support. Users can now configure allowed_comment_keys to extract key-value pairs from leading SQL block comments and include them as the db.query.comment_tags telemetry attribute. (#​48338)

  • receiver/prometheus: Add scrape_on_shutdown, discovery_reload_on_startup, and initial_scrape_offset configuration options to allow tuning startup and shutdown scrape behavior in serverless environments. (#​48979)

    • scrape_on_shutdown (default: false): Enables a final scrape before the receiver closes.
    • discovery_reload_on_startup (default: false): Enables discovering targets immediately on startup.
    • initial_scrape_offset (default: 0s): Adds a fixed delay before the initial scrape of targets.
  • receiver/sqlserver: Add sqlserver.query.plan.creation_time attribute to the db.server.top_query event. (#​49018)

  • receiver/sqlserver: Add service.name and service.namespace opt-in resource attributes and allow overriding any resource attribute via override_value. (#​46176)
    When service.name is enabled, the receiver sets it to unknown_service:microsoft.sql_server per OTel specification.
    When service.namespace is enabled, it defaults to an empty string until set via configuration.
    Each resource attribute now accepts an override_value under resource_attributes, letting users pin
    values such as service.name, service.namespace, or service.instance.id to uniquely identify
    database instances across environments.

🧰 Bug fixes 🧰
  • cmd/opampsupervisor: Normalize merged service.telemetry.resource settings so mixed legacy inline attributes and declarative attributes entries do not produce invalid effective Collector configs (#​48365)

  • connector/failover: Stop the connector's wrapped exporterhelper from imposing its default 5s timeout on the downstream pipeline when sending_queue is enabled. (#​48567)
    Previously, enabling sending_queue caused the connector to wrap itself in exporterhelper.NewLogs/Traces/Metrics, which silently installs a timeoutSender with the 5s default TimeoutConfig.Timeout. That deadline propagated through to downstream exporters via ctx.Deadline(), capping their configured timeouts (e.g., a downstream exporter configured with timeout: 30s would only see ~5s of budget at its pushLogsData). The connector now passes WithTimeout(TimeoutConfig{Timeout: 0}) explicitly, matching the pattern used by signalfxexporter and splunkhecexporter. A user-facing timeout config field on the connector may be added separately if there is demand for connector-level hang-protection.

  • exporter/elasticsearch: Skip error.grouping_name when encoding ECS span events, as it is a scripted field in the logs-apm.error index template and cannot be indexed directly. (#​49216)

  • exporter/load_balancing: Fix Kubernetes resolver initialization to allow exporter creation outside k8s cluster by deferring client creation to start time (#​42293)

  • exporter/load_balancing: Fix a wait-group leak on the trace routing path that could cause Shutdown to hang when backend resolution fails partway through a batch (#​48983)

  • extension/datadog: Fix tls.insecure_skip_verify being ignored (#​48992)

  • extension/google_cloud_logentry_encoding: Accept short ALPN protocol tokens (e.g. h2, h3) in httpRequest.protocol that do not contain a /; previously any protocol string without a slash was rejected with an error, causing log entries from Google Cloud Load Balancers that switched to reporting h2 for HTTP/2 to be silently dropped. (#​45214)

  • pkg/ottl: Fix replace_pattern and replace_all_patterns using a Function argument so each match is replaced only at its position, instead of everywhere the matched text appears. (#​48437)

  • pkg/stanza: Fix stanza container operator logging errors at ERROR level when on_error is set to a quiet mode (#​42646)
    Previously, the container operator logged entry-level processing errors at
    ERROR level even when on_error was set to drop_quiet or send_quiet.
    These errors are now logged at DEBUG level in quiet modes, matching the
    documented behavior. Downstream delivery failures continue to propagate so
    the pipeline can react to them.

  • pkg/translator/pprof: Fix the wrong timestamp conversion. (#​48813)

  • processor/k8s_attributes: Prevent unbounded memory growth by cleaning up stale pod identifiers, including container.id entries left behind after container restarts (#​48398)

  • processor/metrics_transform: Add required-field validation for combine action: return an error if new_name or aggregation_type is missing, preventing silent data loss and empty metric names. (#​48871)

  • processor/redaction: Fix a panic in database attribute sanitization when traces are processed concurrently. (#​49048)

  • processor/transform: Fix transform processor config unmarshaling to return an error for empty statement list items instead of panicking. (#​49245)

  • receiver/azure_monitor: Fix discovery and collection of custom metric namespace definitions (e.g. azure.vm.linux.guestmetrics published by Azure Monitor Agent / MetricsExtension) (#​40989)
    The MetricDefinitions API only returns custom namespace metrics when the metricnamespace query parameter is explicitly set. Previously, metrics configured under receiver::metrics for a custom namespace were silently dropped because the API call used no filter and only returned the resource's default namespace. The receiver now makes an additional namespace-filtered call for each custom namespace in the metrics config that was not returned by the default call.

  • receiver/datadog: Fix StartTimestamp exceeding Timestamp on delta-temporality data points when out-of-order or late-arriving submissions are received. (#​48449)
    The datadog receiver now guards StartTimestamp assignment to enforce the OTel data model
    invariant (StartTimestamp <= Timestamp) for delta-temporality metrics. Late-arriving or
    out-of-order data points no longer poison the stored timestamp for subsequent submissions.

  • receiver/http_check: Stop emitting two httpcheck.tls.cert_remaining data points per scrape (#​47740)

  • receiver/kafka_metrics: use kadm.Client.Lag and do not record negative values (#​48701)

  • receiver/oracledb: Clamp negative DURATION_SEC and SESSION_DURATION_SEC values in the query sample to zero. (#​48901)
    Fix negative duration values in query sample metrics by clamping DURATION_SEC and SESSION_DURATION_SEC to zero minimum.

  • receiver/purefa: Fix the receiver failing to start due to an invalid internal Prometheus scrape configuration. (#​48847)
    The receiver used a *discovery.StaticConfig pointer when building the Prometheus scrape
    configs. Only the value type discovery.StaticConfig is registered for YAML marshaling, so
    the prometheus receiver failed on startup with "cannot marshal unregistered Config type:
    *discovery.StaticConfig". The config now uses the value type.

  • receiver/purefb: Fix the receiver failing to start due to an invalid internal Prometheus scrape configuration. (#​48851)
    The receiver used a *discovery.StaticConfig pointer when building the Prometheus scrape
    configs. Only the value type discovery.StaticConfig is registered for YAML marshaling, so
    the prometheus receiver failed on startup with "cannot marshal unregistered Config type:
    *discovery.StaticConfig". The config now uses the value type.

  • receiver/statsd: Clean up stale unix socket file on startup to prevent "address already in use" errors after unclean shutdown. (#​44866)

  • receiver/statsd: Skip empty tag entries instead of aborting the tag parse loop, so valid tags after an empty entry are no longer dropped. (#​48483)
    Previously, tags containing an empty entry (e.g. from consecutive commas like |#,,key:value) caused the
    parser to exit the loop on the first empty entry, silently dropping all subsequent valid tags. Empty entries
    are now skipped, matching the permissive behavior of the Datadog agent.

open-telemetry/opentelemetry-collector (go.opentelemetry.io/collector/confmap/provider/envprovider)

v1.62.0

💡 Enhancements 💡
  • cmd/mdatagen: Add support for defining stability levels for resource attributes (#​15312)
  • cmd/mdatagen: Add semantic convention reference to resource attributes (#​15313)
  • processor/memory_limiter: Adding health events for the memorylimiter (#​14700)
    Publish health event from memorylimiter using componentstatus.ReportStatus
🧰 Bug fixes 🧰
  • cmd/mdatagen: Removes the extra line in the documentation.md between extended description and table (#​15458)

  • exporter/otlp_http: Treat errors parsing successful (2xx) HTTP response bodies as permanent errors to prevent retrying already-accepted data. (#​15386)
    When a server returns a 2xx status but the response body exceeds the 64kB read limit,
    the body is truncated and proto unmarshaling fails. Previously this was treated as a
    retryable error, causing duplicate data to be exported. Now it is marked as a permanent
    error so the retry logic will not re-send data that was already accepted by the server.

  • pkg/config/configretry: Always validate BackOffConfig fields regardless of the Enabled flag. (#​15437)

  • pkg/service: Ensure receivers always start after all other components (#​15495)
    There was previously a race condition where multiple receivers using a shared internal implementation,
    such as the OTLP receiver, could start sending telemetry into a pipeline before all its components had fully started.

  • processor/memory_limiter: Fix degenerate collector performance when exporter has problems causing permanent CPU-burning GC loop (#​4981)
    Forced GC runs now use exponential backoff when deemed ineffective
    (still above soft limit and less than 5% reclaimed) to avoid preventing
    recovery by overloading CPU with excessive GC runs. The cap on the
    backoff interval is exposed via max_gc_interval_when_soft_limited and
    max_gc_interval_when_hard_limited (both default 30s); set either to
    0 to disable backoff on that path.

  • provider/env: Fix empty env var default resolving to nil instead of empty string (#​14587)
    When using ${env:VAR:-} with an unset variable, the empty default now correctly
    resolves to an empty string instead of nil.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver](https://github.com/open-telemetry/opentelemetry-collector-contrib) | `v0.154.0` → `v0.156.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2freceiver%2fprometheusreceiver/v0.156.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fopen-telemetry%2fopentelemetry-collector-contrib%2freceiver%2fprometheusreceiver/v0.154.0/v0.156.0?slim=true) | | [go.opentelemetry.io/collector/confmap/provider/envprovider](https://github.com/open-telemetry/opentelemetry-collector) | `v1.61.0` → `v1.62.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fconfmap%2fprovider%2fenvprovider/v1.62.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fconfmap%2fprovider%2fenvprovider/v1.61.0/v1.62.0?slim=true) | | [go.opentelemetry.io/collector/confmap/provider/yamlprovider](https://github.com/open-telemetry/opentelemetry-collector) | `v1.60.0` → `v1.62.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fconfmap%2fprovider%2fyamlprovider/v1.62.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fconfmap%2fprovider%2fyamlprovider/v1.60.0/v1.62.0?slim=true) | | [go.opentelemetry.io/collector/connector](https://github.com/open-telemetry/opentelemetry-collector) | `v0.155.0` → `v0.156.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fconnector/v0.156.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fconnector/v0.155.0/v0.156.0?slim=true) | | [go.opentelemetry.io/collector/otelcol](https://github.com/open-telemetry/opentelemetry-collector) | `v0.155.0` → `v0.156.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fotelcol/v0.156.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fotelcol/v0.155.0/v0.156.0?slim=true) | | [go.opentelemetry.io/collector/processor/batchprocessor](https://github.com/open-telemetry/opentelemetry-collector) | `v0.154.0` → `v0.156.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fprocessor%2fbatchprocessor/v0.156.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fprocessor%2fbatchprocessor/v0.154.0/v0.156.0?slim=true) | | [go.opentelemetry.io/collector/receiver/otlpreceiver](https://github.com/open-telemetry/opentelemetry-collector) | `v0.155.0` → `v0.156.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2freceiver%2fotlpreceiver/v0.156.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2freceiver%2fotlpreceiver/v0.155.0/v0.156.0?slim=true) | | [go.opentelemetry.io/collector/service](https://github.com/open-telemetry/opentelemetry-collector) | `v0.155.0` → `v0.156.0` | ![age](https://developer.mend.io/api/mc/badges/age/go/go.opentelemetry.io%2fcollector%2fservice/v0.156.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/go/go.opentelemetry.io%2fcollector%2fservice/v0.155.0/v0.156.0?slim=true) | --- ### Release Notes <details> <summary>open-telemetry/opentelemetry-collector-contrib (github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver)</summary> ### [`v0.156.0`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/HEAD/CHANGELOG.md#v01560) [Compare Source](https://github.com/open-telemetry/opentelemetry-collector-contrib/compare/v0.155.0...v0.156.0) ##### 🛑 Breaking changes 🛑 - `pkg/fileconsumer`: Move feature gate filelog.protobufCheckpointEncoding to beta and keep it enabled by default ([#&#8203;49387](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49387)) - `receiver/oracledb`: Enhanced Oracle SQL query plan details with runtime execution statistics. ([#&#8203;49329](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49329)) This change requires the collector user to have access to V$SQL\_PLAN\_STATISTICS\_ALL. Existing deployments that only grant access to V$SQL\_PLAN may experience query plan collection failures until the appropriate privileges are granted. SQL query plan details are now retrieved from V$SQL\_PLAN\_STATISTICS\_ALL instead of V$SQL\_PLAN. Since V$SQL\_PLAN\_STATISTICS\_ALL is a superset of V$SQL\_PLAN, this change is backward compatible with respect to the emitted plan detail fields while enabling collection of additional runtime execution statistics, including OUTPUT\_ROWS, LAST\_OUTPUT\_ROWS, LAST\_ELAPSED\_TIME, LAST\_CR\_BUFFER\_GETS, LAST\_CU\_BUFFER\_GETS, STARTS, and LAST\_STARTS. ##### 🚩 Deprecations 🚩 - `connector/routing`: Deprecate the `request` context in favor of `otelcol.*` OTTL paths. ([#&#8203;44762](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44762)) The routing connector `request` context and `request["key"]` condition syntax are deprecated in favor of `otelcol.client.metadata["key"][0]` for HTTP/client metadata and `otelcol.grpc.metadata["key"][0]` for gRPC metadata. These paths work in all signal contexts and are documented in the [OTelCol OTTL context](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/pkg/ottl/contexts/ottlotelcol/README.md). A warning is logged when the `request` context is still configured. - `exporter/datadog`: The `exporter.datadogexporter.metricremappingdisabled` feature gate no longer has any effect when the serializer exporter path is active (the default). Use `exporter.datadogexporter.DisableAllMetricRemapping` to disable metric remapping. ([#&#8203;49320](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49320)) See [DataDog/datadog-agent#51232](https://github.com/DataDog/datadog-agent/pull/51232). - `receiver/aws_cloudwatch`: rename to `aws_cloudwatch` with deprecated alias `awscloudwatch` ([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339)) ##### 🚀 New components 🚀 - `processor/dynamic_sampling`: Add dynamic sampling processor for adaptive trace sampling with W3C TraceState rate encoding. ([#&#8203;48898](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48898)) ##### 💡 Enhancements 💡 - `cmd/opampsupervisor`: Make the OpAMP Supervisor logger encoding configurable so it can emit console (plain-text) logs as well as JSON ([#&#8203;47532](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47532)) - `connector/routing`: Add OTTL context inference support to routing connector. ([#&#8203;38080](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/38080)) The routing connector now supports OTTL context inference, allowing users to write clearer routing conditions using context-qualified paths. Instead of relying on implicit context resolution, users can explicitly specify which context's attributes they want to access (e.g., `resource.attributes["env"]` or `span.attributes["http.method"]`). Unqualified paths like `attributes["key"]` continue to work and default to the resource context for backward compatibility. - `exporter/alibabacloud_logservice`: Add `security_token` (STS) support alongside AK/SK; preserve ECS role/token-file fallback. ([#&#8203;48624](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48624)) When `security_token` is provided in the exporter configuration the SDK is configured to use static STS credentials via the provider. The existing `ecs_ram_role` and `token_file_path` behavior remains the higher-priority authentication method and is unchanged. - `exporter/clickhouse`: Add experimental support for the profiles signal ([#&#8203;49304](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49304)) - `exporter/datadog`: Emit `otel.datadog_exporter.metrics.running.fargate{task_arn}` for AWS ECS Fargate workloads so that each workload has its own metric. ([#&#8203;49042](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49042)) Host-based workloads continue to use `otel.datadog_exporter.metrics.running{host}` unchanged. `otel.datadog_exporter.metrics.running` will no longer be tagged with `task_arn`. Fargate workloads will only use `otel.datadog_exporter.metrics.running.fargate{task_arn}`. - `exporter/datadog`: Fargate workloads now emit a dedicated `otel.datadog_exporter.metrics.running.fargate` metric tagged with `task_arn` instead of sharing `otel.datadog_exporter.metrics.running` with host-based workloads. ([#&#8203;49320](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49320)) Host-based workloads continue to emit `otel.datadog_exporter.metrics.running{host}` unchanged. See [DataDog/datadog-agent#52203](https://github.com/DataDog/datadog-agent/pull/52203). - `exporter/elasticsearch`: Support routing from data\_stream attributes defined as scope attributes ([#&#8203;49306](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49306)) - `extension/azure_auth`: Promote the Azure Authenticator extension to beta stability. ([#&#8203;48521](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48521)) - `extension/file_storage`: Added `max_size` support to the filestorage extension to cap per-component database growth. ([#&#8203;38620](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/38620)) - `extension/sigv4auth`: Add automatic service detection for CloudWatch OTLP metrics endpoint (monitoring.<region>.amazonaws.com) ([#&#8203;48738](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48738)) - `pkg/translator/pprof`: reduce allocations in sample conversion ([#&#8203;49452](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49452)) - `processor/transform`: Add `exemplar` context support to the transform processor, allowing `metric_statements` to read and modify exemplar fields on metric datapoints. ([#&#8203;49022](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49022)) - `receiver/aws_lambda`: Add support for AWS configuration overrides for static credentials ([#&#8203;49163](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49163)) - `receiver/faro`: Emit per-payload counters for ingested Faro logs, measurements, exceptions, and events ([#&#8203;48071](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48071)) Adds `otelcol_faro_log_ingested_total`, `otelcol_faro_measurement_ingested_total`, `otelcol_faro_exception_ingested_total`, and `otelcol_faro_event_ingested_total`. Each counter is incremented by the number of entries in the corresponding payload section after the request body is parsed. - `receiver/mongodb`: Add Query Sample collection to the MongoDB receiver, emitting a `db.server.query_sample` log event for each currently executing operation. ([#&#8203;48573](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48573)) Samples are collected via `$currentOp`, with idle connections and administrative commands filtered out. Each event includes obfuscated query text and operation metadata. The `logs` signal is at `development` stability; attribute names may change until OTel `db.server.query_sample` conventions stabilize. The `metrics` signal remains at `beta`. - `receiver/oracledb`: Add `service.name` and `service.namespace` opt-in resource attributes and allow overriding any resource attribute via `override_value`. ([#&#8203;47088](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47088)) - `receiver/oracledb`: Add workload analysis metrics related to scans, enqueue, LOB, parse, sort, cursor, and session activity ([#&#8203;48808](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48808)) Adds fourteen new opt-in metrics (disabled by default): - `oracledb.call.count`, `oracledb.call.recursive.cpu.time` - `oracledb.cursor.cache.hits`, `oracledb.cursor.cache.size`, `oracledb.cursor.open` - `oracledb.db.time` - `oracledb.enqueue.operations` - `oracledb.lob.operations` - `oracledb.parse.cpu.time`, `oracledb.parse.elapsed.time` - `oracledb.scan.count`, `oracledb.scan.table.rows` - `oracledb.sort.operations`, `oracledb.sort.rows` No new SQL queries are issued; the existing v$sysstat scrape already returns all required rows, so the receiver adds no additional load on the monitored Oracle instance. - `receiver/oracledb`: Add buffer cache and Database Writer (DBWR) metrics ([#&#8203;49061](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49061)) - `receiver/oracledb`: Add redo log metrics ([#&#8203;49060](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49060)) - `receiver/postgresql`: Add default service.name and service.namespace resource attributes ([#&#8203;47087](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47087)) Both attributes default to enabled: false. When enabled, service.name defaults to unknown\_service:postgresql and service.namespace defaults to an empty string. Additionally, override\_value is enabled for all resource attributes, allowing users to set custom values via override\_value in the collector configuration. - `receiver/postgresql`: Adds blocking session and lock attributes to `db.server.query_sample` events for PostgreSQL blocking session detection. Blocking attributes are always emitted (empty string / 0 when not blocked). ([#&#8203;49028](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49028)) New attributes under postgresql.blocking.\*: postgresql.blocking.pids, postgresql.blocking.start\_time, postgresql.blocking.wait\_duration, postgresql.blocking.lock.mode, postgresql.blocking.lock.type, postgresql.blocking.lock.relation, postgresql.blocking.transaction.start\_time. postgresql.blocking.pids contains the full array of blocking PIDs from pg\_blocking\_pids() (e.g. {5121,5122}). postgresql.blocking.start\_time uses pg\_locks.waitstart (PostgreSQL 14+) to record when the lock wait began. waitstart is stable for the full duration of the wait — it is set once when the lock wait starts and is not affected by blockers joining or leaving. postgresql.blocking.transaction.start\_time provides a UTC timestamp (RFC3339) from xact\_start representing when the transaction started, predating the lock contention itself. Idle-in-transaction blocker sessions (holding locks without an active request) are captured via pg\_blocking\_pids subquery in the WHERE clause. All blocking attributes are always present on every db.server.query\_sample event; empty string / 0 values indicate no active blocking. Requires PostgreSQL 14 or later. - `receiver/prometheus`: Promote `receiver.prometheusreceiver.IgnoreScopeInfoMetric` feature gate to beta. ([#&#8203;47312](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47312)) The `otel_scope_info` metric is now ignored for scope attribute extraction by default. To temporarily restore the previous behavior, disable the feature gate with `--feature-gates=-receiver.prometheusreceiver.IgnoreScopeInfoMetric`. - `receiver/sqlserver`: Add access methods and buffer pool metrics ([#&#8203;49182](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49182)) Adds the following metrics, all disabled by default: - `sqlserver.access.scan.rate` - `sqlserver.extent.operation.rate` - `sqlserver.ghost_record.skipped.rate` - `sqlserver.page.allocation.rate` - `sqlserver.page.compression.rate` - `sqlserver.page.read_ahead.rate` - `sqlserver.scan_point.revalidation.rate` - `sqlserver.worktable.cache.hit_ratio` - `receiver/syslog`: Add support for RFC6587 Octet Counting framing with RFC3164 message format. ([#&#8203;45216](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45216)) ##### 🧰 Bug fixes 🧰 - `connector/routing`: Fix duplicate routing table entry handling to correctly ignore duplicates instead of overwriting the original route ([#&#8203;44762](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44762)) Previously, when duplicate routing table entries were encountered, the warning message indicated that the duplicate would be ignored, but in fact the original entry was being overwritten by the duplicate. This fix ensures that duplicates are properly ignored and the original route's consumer is preserved. - `exporter/awsxray`: Use local service name for Consumer local root segment names, falling back to resource service name when aws.local.service is absent. ([#&#8203;43432](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43432)) Consumer spans promoted to X-Ray Segments after [#&#8203;42633](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42633) were named using the span (operation) name instead of the local service name. The fix mirrors the existing Server span naming behavior. - `exporter/datadog`: Compress the metric sketches payload with gzip in the legacy metric API client, matching the metric series payload. Previously sketches were sent uncompressed, increasing egress for distribution/histogram metrics. ([#&#8203;49313](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49313)) - `exporter/datadog`: Fix CPU core count fields (`cpu_cores`, `cpu_logical_processors`) missing from host metadata payloads for remote hosts in OTel gateway topologies. ([#&#8203;49320](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49320)) CPU data arrives via `system.cpu.physical.count` / `system.cpu.logical.count` metrics and was never forwarded to the host metadata reporter in the serializer exporter path. See [DataDog/datadog-agent#51893](https://github.com/DataDog/datadog-agent/pull/51893). - `exporter/datadog`: Fix host metadata collection no longer aborts the entire batch when one resource fails; errors are accumulated and processing continues for remaining resources ([#&#8203;49153](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49153)) See [DataDog/datadog-agent#51893](https://github.com/DataDog/datadog-agent/pull/51893). - `exporter/datadog`: Metrics from the Podman stats receiver now report the correct Datadog metric origin (`opentelemetry_collector_podmanreceiver`) instead of falling through to `opentelemetry_collector_unknown`. ([#&#8203;49320](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49320)) See [DataDog/datadog-agent#52594](https://github.com/DataDog/datadog-agent/pull/52594). - `exporter/file`: Fix path traversal vulnerability on Windows when using grouping file exporter ([#&#8203;49194](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49194)) - `exporter/opensearch`: Preserve LogRecord EventName field in all log encoding modes. ([#&#8203;49314](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49314)) - `extension/datadog`: Skip cloud metadata source provider probe when hostname is already set in config, avoiding spurious GCP metadata server requests on non-GCP hosts. ([#&#8203;49241](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49241)) - `pkg/translator/pprof`: Wrong conversion of labels from pprof to OTLP profiles ([#&#8203;49449](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49449)) - `processor/cumulativetodelta`: Align reset detection and dropping on histograms and exponential histograms ([#&#8203;48278](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48278)) Histograms and exponential histograms where there is a drop in total count or on any bucket counts are now treated as a reset and dropped. - `processor/cumulativetodelta`: Fix non-deterministic order of valid metric types in error messages for invalid `metric_types` config values. ([#&#8203;49120](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49120)) - `processor/gen_ai_normalizer`: Fix OpenInference message normalization for flattened indexed attributes ([#&#8203;48421](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48421)) Reconstruct gen\_ai.input.messages and gen\_ai.output.messages from OpenInference flattened indexed span attributes (llm.{input,output}\_messages.N.message.\*). - `processor/k8s_attributes`: Fix cache key memory leak in k8sattributesprocessor when a Pod's IP is missing or cleared from the delete event ([#&#8203;48986](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48986)) When a Pod is deleted, if its IP address is missing or already cleared from the delete event status, the processor now looks up the cached pod by its UID to retrieve the stored IP and correctly queue all associated keys for deletion. - `processor/resource_detection`: Fix Docker resource detection failing to start when optional resource attributes are disabled, including container attributes when the hostname does not match a Docker container name. ([#&#8203;46275](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46275)) - `processor/spanpruning`: Fix non-deterministic depth of preserved outlier spans by grouping leaves and parents by tree depth, so same-named ancestors at different depths are no longer merged. ([#&#8203;49323](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49323)) - `receiver/aws_cloudwatch`: Fix logs being skipped when AWS pagination returns an empty page ([#&#8203;48577](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48577)) - `receiver/github`: Capture the datapoint timestamp per repository instead of once at scrape start, so per-repository metrics carry a timestamp close to when each repository was observed. ([#&#8203;48497](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48497)) - `receiver/prometheus`: Prometheus API server config/targets stay in sync with Target Allocator changing it if both are enabled. ([#&#8203;48040](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48040)) Previously, the API server config and targets did not get the updates from the Target Allocator. - `receiver/tcp_log`: Fix tcp input operator emitting partial log data after a connection read error when `one_log_per_packet` is enabled ([#&#8203;49199](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49199)) Previously, if a TCP connection was reset mid-read while `one_log_per_packet` was set to true, the partial buffer was still processed and emitted as a log entry. Now the read error causes the message to be discarded instead. <!-- previous-version --> ### [`v0.155.0`](https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/HEAD/CHANGELOG.md#v01550) [Compare Source](https://github.com/open-telemetry/opentelemetry-collector-contrib/compare/v0.154.0...v0.155.0) ##### 🛑 Breaking changes 🛑 - `all`: Move `cmd/schemagen` to opentelemetry-collector as `go.opentelemetry.io/collector/cmd/schemagen`. ([#&#8203;14543](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/14543)) The `schemagen` CLI now lives in the opentelemetry-collector repository. Existing `make schemagen` and `make generate-schemas` targets continue to work — they now invoke the tool via `go run go.opentelemetry.io/collector/cmd/schemagen@latest`. Override the new `SCHEMAGEN_PKG` variable to pin a specific release. Downstream users that previously imported `github.com/open-telemetry/opentelemetry-collector-contrib/cmd/schemagen` must update their import path to `go.opentelemetry.io/collector/cmd/schemagen`. - `exporter/signalfx`: Stop calculating per-core `cpu.*` metrics disabled by default. ([#&#8203;49247](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49247)) The default transformations still create aggregate CPU metrics. However, per-core `cpu.*` metrics which are disabled by default aren't produced by the default transformations anymore. This change doesn't have any impact unless any of `cpu.*` metrics are explicitly enabled with the `cpu` attribute in signalfx exporter with configuration like this: ```yaml exporters: signalfx: include_metrics: - metric_name: cpu.idle dimensions: cpu: ["*"] ``` In that case, the same metrics can be restore by applying the transform processor the following way: ```yaml receivers: hostmetrics: scrapers: cpu: metrics: system.cpu.time: enabled: true attributes: [cpu, state] processors: transform/cpu_idle_per_core: error_mode: ignore metric_statements: - context: metric statements: - copy_metric(name="cpu.idle") where metric.name == "system.cpu.time" - context: datapoint statements: - set(datapoint.value_double, 0.0) where metric.name == "cpu.idle" and datapoint.attributes["state"] != "idle" - context: metric statements: - aggregate_on_attributes("sum", ["cpu"]) where metric.name == "cpu.idle" - scale_metric(100.0) where metric.name == "cpu.idle" - context: datapoint statements: - set(datapoint.value_int, Int(datapoint.value_double)) where metric.name == "cpu.idle" service: pipelines: metrics: receivers: [hostmetrics] processors: [transform/cpu_idle_per_core] exporters: [signalfx] ``` - `exporter/signalfx`: Stop calculating `cpu.utilization_per_core` disabled by default. ([#&#8203;49243](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49243)) The exporter still creates the aggregate `cpu.utilization` metric by default. However, `cpu.utilization_per_core` which is disabled by default isn't produced by the default transformations anymore. This change doesn't have any impact unless `cpu.utilization_per_core` metric is explicitly enabled in signalfx exporter with configuration like this: ```yaml exporters: signalfx: include_metrics: - metric_name: cpu.utilization_per_core ``` In that case, the same metric can be restore by applying the transform processor the following way: ```yaml receivers: hostmetrics: scrapers: cpu: metrics: system.cpu.utilization: enabled: true attributes: [cpu, state] processors: transform/cpu_utilization_per_core: error_mode: ignore metric_statements: - context: metric statements: - set(metric.name, "cpu.utilization_per_core") where metric.name == "system.cpu.utilization" - context: datapoint statements: - set(datapoint.value_double, 0.0) where metric.name == "cpu.utilization_per_core" and datapoint.attributes["state"] == "idle" - context: metric statements: - aggregate_on_attributes("sum", ["cpu"]) where metric.name == "cpu.utilization_per_core" service: pipelines: metrics: receivers: [hostmetrics] processors: [transform/cpu_utilization_per_core] exporters: [signalfx] ``` - `pkg/fileconsumer`: Remove stable gate filelog.decompressFingerprint ([#&#8203;48980](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48980)) - `processor/k8s_attributes`: Remove deprecated gate k8sattr.labelsAnnotationsSingular.allow ([#&#8203;48977](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48977)) - `processor/tail_sampling`: Remove stable gate processor.tailsamplingprocessor.disableinvertdecisions ([#&#8203;48976](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48976)) - `receiver/datadog`: Enhance Datadog logs support ([#&#8203;49102](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49102)) Logs are now translated to the OpenTelemetry data model instead of being emitted as flat string attributes: the record timestamp/observed timestamp are set (converting Datadog epoch-milliseconds to nanoseconds), `status` maps to the severity number/text, `hostname`/`service` and known `ddtags` are promoted to resource attributes, and `dd.trace_id`/`dd.span_id` populate `TraceID`/`SpanID` for trace correlation (reconstructing full 128-bit trace ids from `_dd.p.tid` the same way spans do). A new `logs::decode_json_message` option (enabled by default) expands JSON-encoded log messages forwarded by the Datadog Agent, lifting their reserved fields and attributes into the log record. - `receiver/datadog`: Enable the `receiver.datadogreceiver.Enable128BitTraceID` feature gate by default ([#&#8203;49103](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49103)) The gate is promoted from alpha to beta (on by default), so spans reconstruct full 128-bit trace ids from `_dd.p.tid` and emit OpenTelemetry-native trace ids that correlate with other OpenTelemetry services. Disable the gate to fall back to 64-bit (zero-padded) trace ids. - `receiver/mongodb`: Minimum supported MongoDB version is now 4.4. ([#&#8203;49248](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49248)) MongoDB 4.0 reached end-of-life in April 2022 and is no longer supported by the Go MongoDB driver v2.7.0+, which raised the minimum required wire protocol version. Users still on MongoDB 4.0 must upgrade to at least MongoDB 4.4 before upgrading to this version of the receiver. - `receiver/oracledb`: Set `db.namespace` to database name and add `oracle.db.service` attribute on query sample and top query events. ([#&#8203;48996](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48996)) On `db.server.query_sample` and `db.server.top_query` events, `db.namespace` now reports the database name instead of the Oracle service name. The service name moves to the new `oracle.db.service` attribute. ##### 🚩 Deprecations 🚩 - `connector/service_graph`: Deprecate the legacy servicegraph connector latency metric names and millisecond latency unit feature gates, and mark the virtual node feature gate as stable. ([#&#8203;49215](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49215)) - `receiver/flink_metrics`: Rename receiver type from `flinkmetrics` to `flink_metrics` ([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339)) - `receiver/splunk_enterprise`: Rename receiver type from `splunkenterprise` to `splunk_enterprise` ([#&#8203;45339](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45339)) ##### 🚀 New components 🚀 - `processor/cardinality_guardian`: Promote the cardinalityguardian processor to alpha stability and include it in the contrib distribution. ([#&#8203;47368](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47368)) - `receiver/active_directory_inv`: Add Windows Active Directory Inventory receiver for collecting inventory data from Active Directory. ([#&#8203;48733](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48733)) ##### 💡 Enhancements 💡 - `cmd/opampsupervisor`: Allow Supervisor to configure its managed OpAMP extension config to include Collector resource attributes ([#&#8203;48536](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48536)) - `connector/routing`: Add `connector.routing.defaultErrorModeIgnore` feature gate to change default `error_mode` from `propagate` to `ignore` ([#&#8203;48418](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48418)) - `exporter/awsxray`: Migrate http.status\_code (v1.25.0) semantic convention to http.response.status\_code (v1.40.0) ([#&#8203;45058](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45058)) - `exporter/awsxray`: Migrate container.image.tag (v1.21.0) semantic convention to container.image.tags (v1.40.0) ([#&#8203;45057](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45057)) - `exporter/azure_blob`: Add support for `gzip` and `zstd` compression to the Azure Blob Storage exporter. The `compression` config option is now supported and the appropriate file extension is added to blob names. ([#&#8203;45338](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45338)) This mirrors the compression support added to the Google Cloud Storage exporter in commit [`6fd0eb6`](https://github.com/open-telemetry/opentelemetry-collector-contrib/commit/6fd0eb64). Compression is applied to the marshaled data before upload (including append blocks). Tests and documentation updated. - `exporter/elasticsearch`: Extract span events as separate ECS log documents in ECS mapping mode ([#&#8203;49181](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49181)) In ECS mapping mode, exception span events are routed to `logs-apm.error-*` and all other span events to `logs-apm.app.<service>-*`, with OTel exception attributes mapped to their correct nested ECS paths (`error.exception.type`, `error.exception.message`, `error.stack_trace`). - `exporter/file`: Add feature gate for native file-level compression in file exporter ([#&#8203;44077](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44077)) A new alpha feature gate `exporter.file.nativeCompression` enables native file-level zstd compression. When enabled, the exporter produces standard `.zst` files that can be decompressed with `zstd -d`, unlike the legacy per-message compression format which requires custom tooling. - `exporter/google_cloud_storage`: Add `universe_domain` config option to support Sovereign Google Cloud regions. Setting this field passes `option.WithUniverseDomain` to the underlying Google API client. ([#&#8203;48924](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48924)) - `exporter/google_cloud_storage`: Add `resource_attrs_to_gcs` to partition objects by a resource attribute value. ([#&#8203;49136](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49136)) When `resource_attrs_to_gcs.prefix` is set, the value of the given resource attribute (read from the first resource of each batch) is inserted as a partition path segment between `bucket.partition.prefix` and the time-based `bucket.partition.format`, mirroring the `awss3exporter` `resource_attrs_to_s3` behavior. - `exporter/googlecloudpubsub`: Add `universe_domain` config option to support Sovereign Google Cloud regions. Setting this field passes `option.WithUniverseDomain` to the underlying Google API client. ([#&#8203;48924](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48924)) - `exporter/kafka`: Add `producer.max_broker_write_bytes` config ([#&#8203;47492](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47492)) The maximum size of a single write to a broker was previously fixed at the underlying franz-go default of 100 MiB and could not be configured. As a result, setting `producer.max_message_bytes` above 100 MiB passed configuration validation but caused the collector to fail on startup with an unrecoverable error ("max broker write bytes ... is erroneously less than max record batch bytes ..."). The new `producer.max_broker_write_bytes` setting (default [`1048576`](https://github.com/open-telemetry/opentelemetry-collector-contrib/commit/104857600), i.e. 100 MiB) exposes this limit. To send messages larger than 100 MiB, raise it so it is greater than or equal to `max_message_bytes`. Configuration is now validated up front: the collector reports a clear error if `max_broker_write_bytes` is below the 100 MiB minimum or smaller than `max_message_bytes`, rather than failing at runtime. - `exporter/load_balancing`: Reduce CPU usage and memory allocations when routing traces by `traceID` (the default routing key) ([#&#8203;48983](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48983)) Routing decisions are unchanged. Spans are now regrouped per backend, so the exact ResourceSpans/ScopeSpans grouping of exported traces may differ from the input. If a downstream consumer is sensitive to this, a groupbyattrsprocessor on the receiving end can recompact the ResourceSpans. - `exporter/splunk_hec`: Support exporting profiles ([#&#8203;48598](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48598)) - `extension/azure_encoding`: Map `schemaVersion` and `resourceType` fields of Azure Storage Blob logs to `azure.storage.schema_version` and `azure.resource.type`. ([#&#8203;48753](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48753)) - `extension/azure_encoding`: Support statusMessage on Administrative Activity Logs ([#&#8203;48932](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48932)) The properties.statusMessage field on Azure Administrative activity logs is now parsed. When it contains JSON (the common case for VM ScaleSet operations etc.), the structured object is stored under the azure.administrative.status\_message attribute. Plain-string values are stored as-is. - `pkg/coreinternal`: Migrate messaging.destination (v1.16.0) semantic convention to messaging.destination.name (v1.40.0) ([#&#8203;45077](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45077)) - `pkg/coreinternal`: Migrate semantic conventions from v1.18.0 to v1.40.0 ([#&#8203;45293](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45293)) Introduced feature gates for the migration of two deprecated semantic conventions: - **FaaS Execution (`faas.execution`)**: Added `internal.coreinternal.goldendataset.EmitV1FaaSConventions` to opt-in to the new `faas.invocation_id` attribute. - **HTTP User Agent (`http.user_agent`)**: Added `internal.coreinternal.goldendataset.EmitV1HTTPConventions` to opt-in to the new `user_agent.original` attribute. - `pkg/coreinternal`: Improved `strptime` compatibility for time parsing ([#&#8203;43842](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/43842)) Time parsing interfaces (such as the OTTL `Time` function and the `timestamp` operator) accept `strptime`-style format strings. This PR makes several changes to the parsing logic to better match the behavior of `strptime`. (Most notably, leading zeros are now optional for numbers, whitespace is ignored before most elements, and more ISO 8601 timezone formats are accepted for `%z`.) - `pkg/faro`: Migrate deployment.environment (v1.26.0) semantic convention to deployment.environment.name (v1.40.0) ([#&#8203;45074](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45074)) - `pkg/ottl`: Add `stringify_all` editor that converts all non-string values in a map to their string representation ([#&#8203;48044](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48044)) - `pkg/ottl`: Add support for dynamic keys in converters results. ([#&#8203;48834](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48834)) Converter results can now be indexed with dynamic keys expressions that evaluate to a string or integer. For example: `Split(...)[Len(attributes["items"])]` or `Split(...)[attributes["index"]]`. Previously, only literal keys (e.g. `[0]` or `["index"]`) were supported. - `pkg/translator/pprof`: Add support for OTel Profiles to pprof conversion across all three message Sample value/timestamp combinations ([#&#8203;48864](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48864)) - `pkg/zipkin`: Migrated semantic convention from v1.18.0 to v1.40.0 ([#&#8203;45080](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45080)) - `processor/coralogix`: Add critical path trace annotations. ([#&#8203;48824](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48824)) New `critical_path.enabled` config computes and writes span attributes `cgx.critical_path.is_on_path`, `cgx.critical_path.exclusive_duration_ns`, and `cgx.critical_path.inclusive_duration_ns`. Feature expects complete traces, so `groupbytrace` should run before `coralogixprocessor` in the pipeline. Example: `processors: coralogix: critical_path: enabled: true` - `processor/geoip`: Add `error_mode` configuration option to control how geolocation lookup errors are handled. ([#&#8203;35069](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/35069)) The `error_mode` option supports `propagate` (default, preserves existing behavior), `ignore` (logs the error and continues), and `silent` (continues without logging). - `processor/log_dedup`: Add `metadata_keys` and `metadata_cardinality_limit` options to support multi-tenant pipelines by aggregating logs into separate buckets per unique metadata combination and preserving request context for downstream extensions. ([#&#8203;47521](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47521)) - `processor/resource_detection`: Add GCP Cloud Run Worker Pool detector to the resource detection processor ([#&#8203;48931](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48931)) - `processor/schema`: Add support for the Schema v2 file formats (`manifest/2.0` and `resolved/2.0`) defined by OTEP ([#&#8203;48189](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48189)) The processor now auto-detects the schema document format via the `file_format` field and dispatches to a v1.1 or v2 code path accordingly. When the schema URL serves a `manifest/2.0`, the processor follows `resolved_registry_uri` through the existing provider chain (so caching, retry, and storage all apply to both fetches) and constructs a single-hop translator from the resolved registry. Renames are extracted from `deprecated.renamed_to` entries in `attribute_catalog` and `registry.{metrics,spans,events}`. `diff/2.0` and `definition/2` are recognised but not yet supported. - `processor/spanpruning`: Add duration outlier detection, attribute correlation, and outlier preservation to span aggregation ([#&#8203;48984](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48984)) Enabled with `enable_outlier_analysis` and configured via `outlier_analysis.*`. Detects slow spans within an aggregation group using IQR (default) or MAD, reports attribute values correlated with outliers, and can optionally preserve outliers as individual spans instead of aggregating them. Adds the `processor_spanpruning_outliers_detected`, `processor_spanpruning_outliers_preserved`, and `processor_spanpruning_outliers_correlations_detected` metrics. Behavior is unchanged when disabled. - `processor/transform`: Improve `merge_histogram_buckets` with `method="limit_buckets"` to compact buckets closer to the configured limit. ([#&#8203;49020](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49020)) - `processor/transformprocessor/internal/logparsingfuncs`: Add `ParseLEEF` function to parse Log Event Extended Format (LEEF) messages. ([#&#8203;44908](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44908)) - `processor/transformprocessor/internal/logparsingfuncs`: Add `ParseCLF` function for parsing Common Log Format (CLF) HTTP access log entries. ([#&#8203;48349](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48349)) `ParseCLF` is available in log statements and returns a map with the parsed `clf.remote_host`, `clf.rfc931`, `clf.auth_user`, `clf.timestamp`, `clf.request`, `clf.method`, `clf.request_uri`, `clf.protocol`, `clf.status`, and `clf.bytes` fields. An optional `format` parameter selects between the strict `"clf"` format (default) and the NCSA `"combined"` format, which additionally parses `clf.referer` and `clf.user_agent`. - `receiver/aws_lambda`: Introduce Custom Handler support for AWS Lambda Receiver. The custom handler allows the receiver to bind a signal-agnostic extension. ([#&#8203;49160](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49160)) - `receiver/awscloudwatch`: Adds a new configuration option `initial_lookback` to the AWS CloudWatch Logs receiver for specifying how far back from the collector's startup time to begin collecting logs. ([#&#8203;47754](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47754)) - `receiver/azure_event_hub`: Add the ability to use encoding extensions to the Azure Event Hub receiver. ([#&#8203;48753](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48753)) - `receiver/datadog`: Support zstd-compressed request payloads ([#&#8203;49101](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49101)) Recent Datadog Agents (7.59+) zstd-compress HTTP payloads by default. The receiver now decompresses both gzip and zstd request bodies. - `receiver/datadog`: Add feature gate to stop emitting deprecated rpc.service attribute ([#&#8203;22095](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/22095)) The feature gate receiver.datadogreceiver.DontEmitDeprecatedRPCServiceAttr (disabled by default) allows users to opt out of the deprecated rpc.service attribute on gRPC spans. The service name is already captured in the span name (service/method) and rpc.method attribute. - `receiver/file_log`: Improve polling performance when watching many files by indexing fingerprint matching. ([#&#8203;27404](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/27404)) - `receiver/googlecloudmonitoring`: Add `universe_domain` config option to support Sovereign Google Cloud regions. Setting this field passes `option.WithUniverseDomain` to the underlying Google API client. ([#&#8203;48924](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48924)) - `receiver/googlecloudpubsub`: Add `universe_domain` config option to support Sovereign Google Cloud regions. Setting this field passes `option.WithUniverseDomain` to the underlying Google API client. ([#&#8203;48924](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48924)) - `receiver/host_metrics`: Enable the Android platform in the `process` scraper. ([#&#8203;47296](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47296)) - `receiver/host_metrics`: Add AIX-specific process scraper implementation. ([#&#8203;47095](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47095)) Implements AIX versions of the platform-specific process scraper hooks (CPU time/utilization recording, process name, executable, and command extraction), replacing the previous empty stubs that the "others" fallback provided. - `receiver/oracledb`: Enhance SQL obfuscation to anonymize comments while preserving query structure ([#&#8203;48508](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48508)) - Query structure, formatting, and whitespace are now preserved during obfuscation for improved readability. - `receiver/oracledb`: Add additional attributes to the Oracle query execution plan. ([#&#8203;48965](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48965)) Extend the execution plan with five additional attributes: - `OBJECT_NAME`: Name of the object referenced by the plan step - `OBJECT_TYPE`: Type of the referenced object (e.g., table, index) - `FILTER_PREDICATES`: Predicates applied as a filter during the step - `PARTITION_START`: Starting partition for partitioned access - `PARTITION_STOP`: Ending partition for partitioned access - `receiver/oracledb`: Add `oracledb.plan.first_load` attribute to the `db.server.top_query` event ([#&#8203;48998](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48998)) - `receiver/oracledb`: Add SQL comment extraction support. Users can now configure `allowed_comment_keys` to extract key-value pairs from leading SQL block comments and include them as the `db.query.comment_tags` telemetry attribute. ([#&#8203;48338](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48338)) - `receiver/prometheus`: Add `scrape_on_shutdown`, `discovery_reload_on_startup`, and `initial_scrape_offset` configuration options to allow tuning startup and shutdown scrape behavior in serverless environments. ([#&#8203;48979](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48979)) - `scrape_on_shutdown` (default: false): Enables a final scrape before the receiver closes. - `discovery_reload_on_startup` (default: false): Enables discovering targets immediately on startup. - `initial_scrape_offset` (default: 0s): Adds a fixed delay before the initial scrape of targets. - `receiver/sqlserver`: Add `sqlserver.query.plan.creation_time` attribute to the `db.server.top_query` event. ([#&#8203;49018](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49018)) - `receiver/sqlserver`: Add `service.name` and `service.namespace` opt-in resource attributes and allow overriding any resource attribute via `override_value`. ([#&#8203;46176](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/46176)) When `service.name` is enabled, the receiver sets it to `unknown_service:microsoft.sql_server` per OTel specification. When `service.namespace` is enabled, it defaults to an empty string until set via configuration. Each resource attribute now accepts an `override_value` under `resource_attributes`, letting users pin values such as `service.name`, `service.namespace`, or `service.instance.id` to uniquely identify database instances across environments. ##### 🧰 Bug fixes 🧰 - `cmd/opampsupervisor`: Normalize merged `service.telemetry.resource` settings so mixed legacy inline attributes and declarative `attributes` entries do not produce invalid effective Collector configs ([#&#8203;48365](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48365)) - `connector/failover`: Stop the connector's wrapped exporterhelper from imposing its default 5s timeout on the downstream pipeline when `sending_queue` is enabled. ([#&#8203;48567](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48567)) Previously, enabling `sending_queue` caused the connector to wrap itself in `exporterhelper.NewLogs/Traces/Metrics`, which silently installs a `timeoutSender` with the 5s default `TimeoutConfig.Timeout`. That deadline propagated through to downstream exporters via `ctx.Deadline()`, capping their configured timeouts (e.g., a downstream exporter configured with `timeout: 30s` would only see \~5s of budget at its `pushLogsData`). The connector now passes `WithTimeout(TimeoutConfig{Timeout: 0})` explicitly, matching the pattern used by signalfxexporter and splunkhecexporter. A user-facing `timeout` config field on the connector may be added separately if there is demand for connector-level hang-protection. - `exporter/elasticsearch`: Skip `error.grouping_name` when encoding ECS span events, as it is a scripted field in the `logs-apm.error` index template and cannot be indexed directly. ([#&#8203;49216](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49216)) - `exporter/load_balancing`: Fix Kubernetes resolver initialization to allow exporter creation outside k8s cluster by deferring client creation to start time ([#&#8203;42293](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42293)) - `exporter/load_balancing`: Fix a wait-group leak on the trace routing path that could cause Shutdown to hang when backend resolution fails partway through a batch ([#&#8203;48983](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48983)) - `extension/datadog`: Fix `tls.insecure_skip_verify` being ignored ([#&#8203;48992](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48992)) - `extension/google_cloud_logentry_encoding`: Accept short ALPN protocol tokens (e.g. `h2`, `h3`) in `httpRequest.protocol` that do not contain a `/`; previously any protocol string without a slash was rejected with an error, causing log entries from Google Cloud Load Balancers that switched to reporting `h2` for HTTP/2 to be silently dropped. ([#&#8203;45214](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/45214)) - `pkg/ottl`: Fix `replace_pattern` and `replace_all_patterns` using a `Function` argument so each match is replaced only at its position, instead of everywhere the matched text appears. ([#&#8203;48437](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48437)) - `pkg/stanza`: Fix stanza container operator logging errors at ERROR level when `on_error` is set to a quiet mode ([#&#8203;42646](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/42646)) Previously, the `container` operator logged entry-level processing errors at ERROR level even when `on_error` was set to `drop_quiet` or `send_quiet`. These errors are now logged at DEBUG level in quiet modes, matching the documented behavior. Downstream delivery failures continue to propagate so the pipeline can react to them. - `pkg/translator/pprof`: Fix the wrong timestamp conversion. ([#&#8203;48813](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48813)) - `processor/k8s_attributes`: Prevent unbounded memory growth by cleaning up stale pod identifiers, including container.id entries left behind after container restarts ([#&#8203;48398](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48398)) - `processor/metrics_transform`: Add required-field validation for `combine` action: return an error if `new_name` or `aggregation_type` is missing, preventing silent data loss and empty metric names. ([#&#8203;48871](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48871)) - `processor/redaction`: Fix a panic in database attribute sanitization when traces are processed concurrently. ([#&#8203;49048](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49048)) - `processor/transform`: Fix transform processor config unmarshaling to return an error for empty statement list items instead of panicking. ([#&#8203;49245](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/49245)) - `receiver/azure_monitor`: Fix discovery and collection of custom metric namespace definitions (e.g. `azure.vm.linux.guestmetrics` published by Azure Monitor Agent / MetricsExtension) ([#&#8203;40989](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/40989)) The MetricDefinitions API only returns custom namespace metrics when the `metricnamespace` query parameter is explicitly set. Previously, metrics configured under `receiver::metrics` for a custom namespace were silently dropped because the API call used no filter and only returned the resource's default namespace. The receiver now makes an additional namespace-filtered call for each custom namespace in the `metrics` config that was not returned by the default call. - `receiver/datadog`: Fix StartTimestamp exceeding Timestamp on delta-temporality data points when out-of-order or late-arriving submissions are received. ([#&#8203;48449](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48449)) The datadog receiver now guards StartTimestamp assignment to enforce the OTel data model invariant (StartTimestamp <= Timestamp) for delta-temporality metrics. Late-arriving or out-of-order data points no longer poison the stored timestamp for subsequent submissions. - `receiver/http_check`: Stop emitting two httpcheck.tls.cert\_remaining data points per scrape ([#&#8203;47740](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/47740)) - `receiver/kafka_metrics`: use kadm.Client.Lag and do not record negative values ([#&#8203;48701](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48701)) - `receiver/oracledb`: Clamp negative `DURATION_SEC` and `SESSION_DURATION_SEC` values in the query sample to zero. ([#&#8203;48901](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48901)) Fix negative duration values in query sample metrics by clamping DURATION\_SEC and SESSION\_DURATION\_SEC to zero minimum. - `receiver/purefa`: Fix the receiver failing to start due to an invalid internal Prometheus scrape configuration. ([#&#8203;48847](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48847)) The receiver used a `*discovery.StaticConfig` pointer when building the Prometheus scrape configs. Only the value type `discovery.StaticConfig` is registered for YAML marshaling, so the prometheus receiver failed on startup with "cannot marshal unregistered Config type: \*discovery.StaticConfig". The config now uses the value type. - `receiver/purefb`: Fix the receiver failing to start due to an invalid internal Prometheus scrape configuration. ([#&#8203;48851](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48851)) The receiver used a `*discovery.StaticConfig` pointer when building the Prometheus scrape configs. Only the value type `discovery.StaticConfig` is registered for YAML marshaling, so the prometheus receiver failed on startup with "cannot marshal unregistered Config type: \*discovery.StaticConfig". The config now uses the value type. - `receiver/statsd`: Clean up stale unix socket file on startup to prevent "address already in use" errors after unclean shutdown. ([#&#8203;44866](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/44866)) - `receiver/statsd`: Skip empty tag entries instead of aborting the tag parse loop, so valid tags after an empty entry are no longer dropped. ([#&#8203;48483](https://github.com/open-telemetry/opentelemetry-collector-contrib/issues/48483)) Previously, tags containing an empty entry (e.g. from consecutive commas like `|#,,key:value`) caused the parser to exit the loop on the first empty entry, silently dropping all subsequent valid tags. Empty entries are now skipped, matching the permissive behavior of the Datadog agent. <!-- previous-version --> </details> <details> <summary>open-telemetry/opentelemetry-collector (go.opentelemetry.io/collector/confmap/provider/envprovider)</summary> ### [`v1.62.0`](https://github.com/open-telemetry/opentelemetry-collector/blob/HEAD/CHANGELOG.md#v1620v01560) ##### 💡 Enhancements 💡 - `cmd/mdatagen`: Add support for defining stability levels for resource attributes ([#&#8203;15312](https://github.com/open-telemetry/opentelemetry-collector/issues/15312)) - `cmd/mdatagen`: Add semantic convention reference to resource attributes ([#&#8203;15313](https://github.com/open-telemetry/opentelemetry-collector/issues/15313)) - `processor/memory_limiter`: Adding health events for the memorylimiter ([#&#8203;14700](https://github.com/open-telemetry/opentelemetry-collector/issues/14700)) Publish health event from memorylimiter using componentstatus.ReportStatus ##### 🧰 Bug fixes 🧰 - `cmd/mdatagen`: Removes the extra line in the documentation.md between extended description and table ([#&#8203;15458](https://github.com/open-telemetry/opentelemetry-collector/issues/15458)) - `exporter/otlp_http`: Treat errors parsing successful (2xx) HTTP response bodies as permanent errors to prevent retrying already-accepted data. ([#&#8203;15386](https://github.com/open-telemetry/opentelemetry-collector/issues/15386)) When a server returns a 2xx status but the response body exceeds the 64kB read limit, the body is truncated and proto unmarshaling fails. Previously this was treated as a retryable error, causing duplicate data to be exported. Now it is marked as a permanent error so the retry logic will not re-send data that was already accepted by the server. - `pkg/config/configretry`: Always validate BackOffConfig fields regardless of the Enabled flag. ([#&#8203;15437](https://github.com/open-telemetry/opentelemetry-collector/issues/15437)) - `pkg/service`: Ensure receivers always start after all other components ([#&#8203;15495](https://github.com/open-telemetry/opentelemetry-collector/issues/15495)) There was previously a race condition where multiple receivers using a shared internal implementation, such as the OTLP receiver, could start sending telemetry into a pipeline before all its components had fully started. - `processor/memory_limiter`: Fix degenerate collector performance when exporter has problems causing permanent CPU-burning GC loop ([#&#8203;4981](https://github.com/open-telemetry/opentelemetry-collector/issues/4981)) Forced GC runs now use exponential backoff when deemed ineffective (still above soft limit and less than 5% reclaimed) to avoid preventing recovery by overloading CPU with excessive GC runs. The cap on the backoff interval is exposed via `max_gc_interval_when_soft_limited` and `max_gc_interval_when_hard_limited` (both default `30s`); set either to `0` to disable backoff on that path. - `provider/env`: Fix empty env var default resolving to nil instead of empty string ([#&#8203;14587](https://github.com/open-telemetry/opentelemetry-collector/issues/14587)) When using ${env:VAR:-} with an unset variable, the empty default now correctly resolves to an empty string instead of nil. <!-- previous-version --> </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMjAuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIyMC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXAiLCJnbyJdfQ==-->
fix(deps): update go modules
All checks were successful
check / check (pull_request) Successful in 2m34s
962674c165
renovate scheduled this pull request to auto merge when all checks succeed 2026-07-09 12:30:07 -04:00
Author
Member

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 43 additional dependencies were updated

Details:

Package Change
github.com/klauspost/compress v1.18.6 -> v1.18.7
github.com/mdlayher/socket v0.4.1 -> v0.6.0
github.com/mdlayher/vsock v1.2.1 -> v1.3.0
github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.154.0 -> v0.156.0
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.154.0 -> v0.156.0
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus v0.154.0 -> v0.156.0
github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor v0.154.0 -> v0.156.0
github.com/prometheus/common v0.68.1 -> v0.69.0
github.com/prometheus/exporter-toolkit v0.16.0 -> v0.17.0
go.opentelemetry.io/collector v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/component/componentstatus v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/component/componenttest v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/config/configauth v1.61.0 -> v1.62.0
go.opentelemetry.io/collector/config/configcompression v1.61.0 -> v1.62.0
go.opentelemetry.io/collector/config/configgrpc v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/config/confighttp v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/config/configmiddleware v1.61.0 -> v1.62.0
go.opentelemetry.io/collector/config/confignet v1.61.0 -> v1.62.0
go.opentelemetry.io/collector/config/configopaque v1.61.0 -> v1.62.0
go.opentelemetry.io/collector/config/configtelemetry v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/config/configtls v1.61.0 -> v1.62.0
go.opentelemetry.io/collector/connector/connectortest v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/connector/xconnector v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/exporter/exportertest v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/exporter/xexporter v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/extension/extensionauth v1.61.0 -> v1.62.0
go.opentelemetry.io/collector/extension/extensioncapabilities v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/extension/extensionmiddleware v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/extension/extensiontest v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/internal/fanoutconsumer v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/internal/sharedcomponent v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/internal/telemetry v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/processor v1.61.0 -> v1.62.0
go.opentelemetry.io/collector/processor/processortest v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/processor/xprocessor v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/receiver v1.61.0 -> v1.62.0
go.opentelemetry.io/collector/receiver/receiverhelper v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/receiver/receivertest v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/receiver/xreceiver v0.155.0 -> v0.156.0
go.opentelemetry.io/collector/service/hostcapabilities v0.155.0 -> v0.156.0
golang.org/x/mod v0.36.0 -> v0.37.0
golang.org/x/telemetry v0.0.0-20260508192327-42602be52be6 -> v0.0.0-20260625142307-59b4966ccb57
golang.org/x/tools v0.45.0 -> v0.47.0
### ℹ️ Artifact update notice ##### File name: go.mod In order to perform the update(s) described in the table above, Renovate ran the `go get` command, which resulted in the following additional change(s): - 43 additional dependencies were updated Details: | **Package** | **Change** | | :----------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------- | | `github.com/klauspost/compress` | `v1.18.6` -> `v1.18.7` | | `github.com/mdlayher/socket` | `v0.4.1` -> `v0.6.0` | | `github.com/mdlayher/vsock` | `v1.2.1` -> `v1.3.0` | | `github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics` | `v0.154.0` -> `v0.156.0` | | `github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil` | `v0.154.0` -> `v0.156.0` | | `github.com/open-telemetry/opentelemetry-collector-contrib/pkg/translator/prometheus` | `v0.154.0` -> `v0.156.0` | | `github.com/open-telemetry/opentelemetry-collector-contrib/processor/deltatocumulativeprocessor` | `v0.154.0` -> `v0.156.0` | | `github.com/prometheus/common` | `v0.68.1` -> `v0.69.0` | | `github.com/prometheus/exporter-toolkit` | `v0.16.0` -> `v0.17.0` | | `go.opentelemetry.io/collector` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/component/componentstatus` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/component/componenttest` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/config/configauth` | `v1.61.0` -> `v1.62.0` | | `go.opentelemetry.io/collector/config/configcompression` | `v1.61.0` -> `v1.62.0` | | `go.opentelemetry.io/collector/config/configgrpc` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/config/confighttp` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/config/configmiddleware` | `v1.61.0` -> `v1.62.0` | | `go.opentelemetry.io/collector/config/confignet` | `v1.61.0` -> `v1.62.0` | | `go.opentelemetry.io/collector/config/configopaque` | `v1.61.0` -> `v1.62.0` | | `go.opentelemetry.io/collector/config/configtelemetry` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/config/configtls` | `v1.61.0` -> `v1.62.0` | | `go.opentelemetry.io/collector/connector/connectortest` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/connector/xconnector` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/exporter/exportertest` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/exporter/xexporter` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/extension/extensionauth` | `v1.61.0` -> `v1.62.0` | | `go.opentelemetry.io/collector/extension/extensioncapabilities` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/extension/extensionmiddleware` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/extension/extensiontest` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/internal/fanoutconsumer` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/internal/sharedcomponent` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/internal/telemetry` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/processor` | `v1.61.0` -> `v1.62.0` | | `go.opentelemetry.io/collector/processor/processortest` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/processor/xprocessor` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/receiver` | `v1.61.0` -> `v1.62.0` | | `go.opentelemetry.io/collector/receiver/receiverhelper` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/receiver/receivertest` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/receiver/xreceiver` | `v0.155.0` -> `v0.156.0` | | `go.opentelemetry.io/collector/service/hostcapabilities` | `v0.155.0` -> `v0.156.0` | | `golang.org/x/mod` | `v0.36.0` -> `v0.37.0` | | `golang.org/x/telemetry` | `v0.0.0-20260508192327-42602be52be6` -> `v0.0.0-20260625142307-59b4966ccb57` | | `golang.org/x/tools` | `v0.45.0` -> `v0.47.0` |
renovate deleted branch renovate/go-modules 2026-07-09 12:32:45 -04:00
renovate referenced this pull request from a commit 2026-07-09 12:32:46 -04:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
llc/DuckMetrics!36
No description provided.