Skip to content

Update module github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics to v0.155.0#904

Open
red-hat-konflux-kflux-prd-rh02[bot] wants to merge 1 commit into
masterfrom
konflux/mintmaker/master/github.com-open-telemetry-opentelemetry-collector-contrib-internal-exp-metrics-0.x
Open

Update module github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics to v0.155.0#904
red-hat-konflux-kflux-prd-rh02[bot] wants to merge 1 commit into
masterfrom
konflux/mintmaker/master/github.com-open-telemetry-opentelemetry-collector-contrib-internal-exp-metrics-0.x

Conversation

@red-hat-konflux-kflux-prd-rh02

@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot commented May 2, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics v0.150.0v0.155.0 age confidence

Warning

Some dependencies could not be looked up. Check the warning logs for more information.


Release Notes

open-telemetry/opentelemetry-collector-contrib (github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics)

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.

v0.154.0

Compare Source

🛑 Breaking changes 🛑
  • all: Removes the Google SecOps exporter, as it is no longer being donated. (#​46148)
    Removes the incomplete and non-functional Google SecOps exporter.
    It should not have been configured by users, so no real world breakage is expected.

  • connector/span_metrics: Validate calls_dimensions and histogram.dimensions at startup (#​48097)
    Duplicate dimension names in calls_dimensions or histogram.dimensions previously passed silently; they now fail validation at startup, matching the behaviour of the top-level dimensions setting.

  • exporter/prometheus: Promote the exporter.prometheusexporter.DisableAddMetricSuffixes feature gate to beta. (#​48930)
    The deprecated add_metric_suffixes setting is now ignored by default. To preserve the previous no-suffix behavior, set translation_strategy: UnderscoreEscapingWithoutSuffixes.

  • receiver/vcenter: Set resourcePoolMemoryUsageAttribute feature gate to beta. (#​47552)

🚩 Deprecations 🚩
  • exporter/prometheus_remote_write: Rename to prometheus_remote_write with deprecated alias prometheusremotewrite (#​45339)

  • exporter/signalfx: Traces have been deprecated for the exporter (#​48748)
    Trace correlation functionality no longer requires the signalfx exporter to be included in trace pipelines.
    Sending traces may now be sent solely via OTLP to enable trace correlation. All trace functionality and configuration
    will be removed from this exporter in December 2026.

  • processor/resource_detection: The k8snode detector is deprecated; use k8s_api instead. (#​48597)
    Both names work and produce identical output. When switching to k8s_api, also rename your config section from k8snode: to k8s_api:; keeping the old key under the new detector name will silently apply defaults instead.

  • receiver/apache_spark: Rename apachespark receiver to apache_spark with deprecated alias apachespark (#​45339)

  • receiver/envoy_als: Rename envoyals receiver to envoy_als with deprecated alias envoyals (#​45339)

  • receiver/kafka: Deprecate group_rebalance_strategy in favor of group_rebalance_strategies (#​48658)
    Use group_rebalance_strategies to configure one or more ordered protocols. The singular field remains supported for backward compatibility but logs a deprecation warning on startup.
    group_rebalance_strategy and group_rebalance_strategies are mutually exclusive; setting both fails validation.

  • receiver/otlp_json_file: rename to otlp_json_file with deprecated alias otlpjsonfile (#​45339)

  • receiver/webhook_event: Rename webhookevent receiver to webhook_event with deprecated alias webhookevent (#​45339)

  • receiver/windows_service: Rename receiver type from windowsservice to windows_service (#​45339)

🚀 New components 🚀
  • processor/awsecsattributes: Add the initial skeleton for the AWS ECS attributes processor, which will enrich telemetry with AWS ECS metadata. (#​44476)
💡 Enhancements 💡
  • cmd/opampsupervisor: Allow starting the Collector with a startup fallback config until successfully connected to the OpAMP backend (#​44368)
    When there's no previous configuration state persisted in disk, the Supervisor now
    starts with a startup fallback configuration until it can successfully connect
    to the OpAMP backend. At this moment the regular configuration (indicated by
    agent::config_files) is restored.
    If a previous configuration state is persisted, it will be used to start the Collector.

  • cmd/schemagen: Add -r flag to resolve external $ref entries inline, replacing references with the actual type definitions from the referenced packages. (#​48735)
    When -r is passed, schemagen recursively resolves cross-package $refs and inlines the
    referenced type definitions. References that cannot be resolved are dropped with a warning.

  • cmd/schemagen: Add factoryMaps override to generate schemas for config fields populated via factory dispatch maps. (#​48815)
    Some components tag a config field mapstructure:"-" and populate it at runtime by dispatching
    against a package-level factory map (e.g. hostmetricsreceiver's scrapers field). The schemagen
    parser previously skipped these fields entirely.

    A new factoryMaps option in .schemagen.yaml componentOverrides instructs schemagen to
    AST-walk the named factory var, enumerate all registered entries, and synthesize a typed object
    property whose keys are the discriminator strings. Three factory var shapes are supported:
    call expressions (key resolved from internal/metadata), composite literals with inline
    component.MustNewType("key") keys, and composite literals with qualified pkg.ConstName keys.

    Wired up for receiver/hostmetricsreceiver (11 scraper keys), receiver/ciscoosreceiver
    (2 scraper keys), and processor/geoipprocessor (1 provider key).

  • connector/span_metrics: Support for glob expressions in the dimensions field of the spanmetrics connector config (#​48097)
    It is now possible to specify attributes to add as dimensions to metrics using glob expressions, in addition to exact string matching

  • exporter/azuremonitor: Add tag_mappings config to override the resource-attribute precedence used to populate Application Insights envelope tags (#​47657)
    The optional tag_mappings: block accepts an ordered list of sources per tag.
    Sources containing a . are treated as resource attribute keys; sources
    without a . are treated as string-literal terminal defaults. The first
    non-empty value wins.

    Supported keys: cloud_role_instance (default [service.instance.id])
    and application_version (default [service.version]). Defaults preserve
    the historical hardcoded behavior; zero-config users see no change.

    Example for Azure Container Apps:
    tag_mappings:
    cloud_role_instance: [host.name, service.instance.id]

    Marked alpha; the schema may evolve.

  • exporter/load_balancing: Add service, resource, and attributes routing key support for logs (#​40223)
    Logs can now be routed using service (default, routes by service.name), resource (routes by
    full resource identity), or attributes (routes by configurable attribute values including
    log.severity and log.body pseudo attributes). This enables stateful downstream processing like
    log reduction, throttling, and tail-based sampling.

  • exporter/opensearch: Add otel-v1 mapping mode that produces documents conforming to Data Prepper's OTel v1 index schemas, enabling interoperability with OpenSearch Observability dashboards. (#​48585)
    Default index names match upstream Data Prepper conventions: otel-v1-apm-span for traces and otel-v1-logs for logs. Custom traces_index / logs_index overrides still apply, and dataset / namespace are not required when this mode is active.

  • exporter/signalfx: Handle entity events as property updates sent to the PUT endpoint instead of PATCH. (#​48469)

  • extension/aws_logs_encoding: Add support for decoding VPC Flow Logs in Parquet format (#​38861)

  • extension/google_cloud_logentry_encoding: Migrate semantic conventions from v1.38.0 to v1.40.0 (#​47547)

  • extension/pebble_tail_storage: Promote pebble_tail_storage extension to alpha stability (#​47916)

  • extension/pebble_tail_storage: Drop DB on start (#​48853)
    On startup, instead of returning an error if DB exists, drop the DB.

  • pkg/coreinternal: Migrate semantic convention from v1.20.0 to v1.40.0 (#​45295)

  • pkg/coreinternal: Migrate db.system (v1.28.0) semantic convention to db.system.name (v1.40.0) (#​45299)

  • pkg/ottl: Substring function now supports UTF-8 safe slicing (#​48436)
    New optional parameter utf8_safe (default: false). Set to true to adjust slice
    boundaries so multi-byte UTF-8 characters are never cut in the middle; the result
    may then be shorter than length bytes. Default preserves the existing byte-level
    slicing behavior.

  • pkg/ottl: Add ottlexemplar context exposing per-exemplar fields (time, filtered_attributes, double_value, int_value, trace_id, span_id) for use in OTTL statements. (#​47490)

  • pkg/stanza: Add a none protocol option to the syslog parser that passes the message through without parsing its contents, for non-conforming syslog data. A leading PRI header is decoded when present, and RFC 6587 octet counting is supported. (#​44795)

  • pkg/zipkin: Migrate semantic conventions from v1.25.0 to v1.40.0 (#​45089)

  • processor/cumulativetodelta: Add internal telemetry for converted and dropped datapoints, and for tracked streams. (#​48246)
    Three new metrics are emitted by the processor, all disabled by default (opt-in via the collector's service.telemetry.metrics configuration):

    • otelcol_cumulativetodelta_datapoints: number of datapoints converted from cumulative to delta temporality (with a metric_type attribute: sum, histogram, or exponential_histogram).
    • otelcol_cumulativetodelta_datapoints_dropped: number of datapoints dropped instead of converted, with the same metric_type attribute and a reason attribute (reset, initial, bucket_mismatch).
    • otelcol_cumulativetodelta_streams_tracked: number of metric streams currently tracked in memory.

    Reset detections also emit a Debug-level log line including the metric name, type, and datapoint attributes — logs absorb the per-stream cardinality that would be prohibitive on a metric while still letting operators identify which stream is wrapping/restarting.

  • processor/gen_ai_normalizer: Add the custom source for user-defined GenAI attribute renames and value foldings. (#​48677)

  • processor/gen_ai_normalizer: Promote gen_ai_normalizer processor to alpha stability (#​48773)

  • processor/k8s_attributes: Add pod_delete_grace_period config option to configure pod metadata cache deletion grace period. (#​48127)
    The pod_delete_grace_period config option defaults to 120s to match the previously hardcoded behavior.

  • processor/lookup: Add A and AAAA lookup support for dns source of lookup processor (#​48869)

  • processor/lookup: Add traces and metrics support to the lookup processor. (#​47777)
    Traces use ottlspan context (span-level lookups) and metrics use ottldatapoint context
    (datapoint-level lookups across all metric types).

  • processor/resource_detection: Add k8s.cluster.uid detection to the k8s_api detector (formerly k8snode), derived from the kube-system namespace UID. (#​48597)
    The k8s.cluster.uid attribute is enabled by default. To disable it, set resource_attributes.k8s.cluster.uid.enabled: false.
    The detector requires get permission on the kube-system namespace. If the permission is missing, a warning is logged and the attribute is omitted; other attributes are unaffected.

  • processor/resource_detection: Updates github.com/GoogleCloudPlatform/opentelemetry-operations-go dependencies to their latest versions (v0.57.0 / v1.33.0). (#​48894)
    This update brings in the following features:

    • Support OTLP event_name field in logs exporter
    • Add support for cloud run worker pools
  • processor/spanpruning: Add attribute loss analysis to track diversity and missing attributes during span aggregation (#​47671)

  • processor/tail_sampling: Add a new processor_tail_sampling_count_bytes_sampled metric that counts bytes sampled per policy, mirroring processor_tail_sampling_count_spans_sampled. (#​48348)
    Gated behind the processor.tailsamplingprocessor.metricstatcountbytessampled feature gate (alpha, disabled by default).
    Bytes are measured using the protobuf-marshaled ResourceSpans size, the same calculation used for maximum_trace_size_bytes.

  • processor/tail_sampling: Allow nesting the not policy inside and_sub_policy for tail sampling policies. (#​47313)
    This enables configurations such as "status_code: ERROR" AND NOT "http.status_code in [400, 499]" without relying on deprecated invert_match.

  • processor/transform: Add the limit_buckets method to the merge_histogram_buckets OTTL function to reduce explicit histogram bucket counts. (#​48527)

  • receiver/aws_lambda: Decompress S3 objects based on .gz key suffix rather than gzip magic number sniffing (#​38861)
    S3 objects are now decompressed only when their key ends in .gz. Objects without a.gz suffix
    are no longer auto-decompressed, even if their contents are gzip-encoded, and in that case the raw
    bytes will be passed to the configured decoder. This change avoids reading the file header to sniff
    the magic number, which is important for supporting formats such as Parquet that require random
    access.

  • receiver/aws_lambda: Introduce metadata for derived logs and enrich client context with the same for CloudWatch logs. (#​48581)

  • receiver/azure_blob: Allow logs.encoding and traces.encoding to reference an encoding extension ID, in addition to the built-in otlp_json and otlp_proto values. (#​48238)
    When encoding is set to a value other than otlp_json or otlp_proto, it is
    treated as the component ID of an encoding extension. The extension is resolved
    from the collector's configured extensions when the receiver starts and used to
    unmarshal blob payloads for that signal.

  • receiver/azure_blob: Add encoding option per signal to accept OTLP/Protobuf in addition to OTLP/JSON blob payloads (#​48236)
    Previously the receiver only accepted OTLP/JSON. New logs.encoding and
    traces.encoding options each accept otlp_json (default) or otlp_proto,
    selecting the encoding of blob payloads per signal. The default preserves
    prior behavior for existing OTLP/JSON producers.

  • receiver/host_metrics: Add AIX to the system scraper's supported-OS allowlist. (#​47095)

  • `receiver/k8s_events

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

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

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


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

To execute skipped test pipelines write comment /ok-to-test.


Documentation

Find out how to configure dependency updates in MintMaker documentation or see all available configuration options in Renovate documentation.

@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot added docs-approved Signifies that Docs has signed off on this PR ok-to-test Indicates a non-member PR verified by an org member that is safe to test. px-approved Signifies that Product Support has signed off on this PR qe-approved Signifies that QE has signed off on this PR labels May 2, 2026
@red-hat-konflux-kflux-prd-rh02

red-hat-konflux-kflux-prd-rh02 Bot commented May 2, 2026

Copy link
Copy Markdown
Contributor Author

ℹ️ 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):

  • 9 additional dependencies were updated

Details:

Package Change
golang.org/x/net v0.53.0 -> v0.55.0
github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatautil v0.150.0 -> v0.155.0
go.opentelemetry.io/collector/featuregate v1.56.0 -> v1.61.0
go.opentelemetry.io/collector/pdata v1.56.0 -> v1.61.0
golang.org/x/crypto v0.50.0 -> v0.51.0
golang.org/x/sys v0.43.0 -> v0.45.0
golang.org/x/term v0.42.0 -> v0.43.0
golang.org/x/text v0.36.0 -> v0.37.0
google.golang.org/grpc v1.80.0 -> v1.81.1

@openshift-ci openshift-ci Bot requested review from BhargaviGudi and yuumasato May 2, 2026 20:35
@openshift-ci

openshift-ci Bot commented May 2, 2026

Copy link
Copy Markdown
Contributor

Hi @red-hat-konflux-kflux-prd-rh02[bot]. Thanks for your PR.

I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot force-pushed the konflux/mintmaker/master/github.com-open-telemetry-opentelemetry-collector-contrib-internal-exp-metrics-0.x branch from 9e7d9aa to 1248f66 Compare May 16, 2026 00:29
@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot changed the title Update module github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics to v0.151.0 Update module github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics to v0.152.0 May 16, 2026
@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot force-pushed the konflux/mintmaker/master/github.com-open-telemetry-opentelemetry-collector-contrib-internal-exp-metrics-0.x branch from 1248f66 to d4fe8a5 Compare May 30, 2026 00:21
@openshift-ci

openshift-ci Bot commented May 30, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: red-hat-konflux-kflux-prd-rh02[bot]
Once this PR has been reviewed and has the lgtm label, please assign vickeybrown for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot changed the title Update module github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics to v0.152.0 Update module github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics to v0.153.0 May 30, 2026
@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot force-pushed the konflux/mintmaker/master/github.com-open-telemetry-opentelemetry-collector-contrib-internal-exp-metrics-0.x branch from d4fe8a5 to 8e1bd13 Compare June 20, 2026 00:37
@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot changed the title Update module github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics to v0.153.0 Update module github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics to v0.154.0 Jun 20, 2026
…ib/internal/exp/metrics to v0.155.0

Signed-off-by: red-hat-konflux-kflux-prd-rh02 <190377777+red-hat-konflux-kflux-prd-rh02[bot]@users.noreply.github.com>
@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot force-pushed the konflux/mintmaker/master/github.com-open-telemetry-opentelemetry-collector-contrib-internal-exp-metrics-0.x branch from 8e1bd13 to a50115b Compare June 27, 2026 00:26
@red-hat-konflux-kflux-prd-rh02 red-hat-konflux-kflux-prd-rh02 Bot changed the title Update module github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics to v0.154.0 Update module github.com/open-telemetry/opentelemetry-collector-contrib/internal/exp/metrics to v0.155.0 Jun 27, 2026
@openshift-ci

openshift-ci Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

@red-hat-konflux-kflux-prd-rh02[bot]: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs-approved Signifies that Docs has signed off on this PR ok-to-test Indicates a non-member PR verified by an org member that is safe to test. px-approved Signifies that Product Support has signed off on this PR qe-approved Signifies that QE has signed off on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants