Skip to content

Releases: open-telemetry/opentelemetry-collector-contrib

v1.3.1/v0.164.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 22:05
v0.164.1
9d85835

This patched fixed an dependency issue with any component in contrib that depended on OTTL. See the v1.3.0/v0.164/0 Release Notes for full details on what was released. This version is use in the v0.164.0 release artifacts.

End User Changelog

🧰 Bug fixes 🧰

  • all: Fix modules requiring the nonexistent v1.2.0 of pkg/ottl and processor/k8sattributesprocessor. (#52356)

API Changelog

v1.3.0/v0.164.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 18:21
v0.164.0
18fcec7

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

Unmaintained Components

These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.

  • exporter/logicmonitor
  • exporter/azuredataexplorer
  • receiver/flinkmetrics

End User Changelog

🛑 Breaking changes 🛑

  • connector/service_graph: Remove stable connector.servicegraph.virtualNode gate (#52239)

  • exporter/prometheus: Always preserve leading and consecutive underscores in label names. (#50429)
    Remove -pkg.translator.prometheus.PermissiveLabelSanitization from --feature-gates; disabling this gate now causes a startup error.

  • exporter/prometheus_remote_write: Always preserve leading and consecutive underscores in label names. (#50429)
    Remove -pkg.translator.prometheus.PermissiveLabelSanitization from --feature-gates; disabling this gate now causes a startup error.

  • pkg/azurelogs: Promote the pkg.translator.azurelogs.EmitV1LogConventions and pkg.translator.azurelogs.DontEmitV0LogConventions feature gates to beta. (#52096)
    code.function.name and code.file.path are now emitted instead of code.function and code.filepath by default.
    The gates no longer control the event.name resource attribute, which is always emitted.

  • pkg/coreinternal: Promote internal.coreinternal.goldendataset.DontEmitV0HTTPConventions and internal.coreinternal.goldendataset.EmitV1HTTPConventions feature gates to Beta (#45293, #45089)
    Both feature gates should be promoted together as per RFC.
    goldendataset now generates spans with user_agent.original, network.protocol.name,
    network.protocol.version, client.address, and http.response.status_code (semconv v1.40.0)
    by default, and no longer generates the deprecated http.user_agent, http.flavor
    (semconv v1.19.0), http.client_ip, and http.status_code (semconv v1.25.0) attributes.
    The http.status_code migration is now wired to these gates so that round-trip translation
    stays consistent with pkg.translator.zipkin's HTTP semantic convention feature gates.

  • pkg/ottl: Remove the stable ottl.set.allowNil feature gate. (#48714)

  • pkg/translator/pprof: Return an error instead of panicking when profiling data contains invalid profile references. (#51908)

  • pkg/zipkin: Promote "pkg.translator.zipkin.EmitV1HttpConventions", "pkg.translator.zipkin.DontEmitV0HttpConventions", "pkg.translator.zipkin.EmitV1ScopeConventions", and "pkg.translator.zipkin.DontEmitV0ScopeConventions" feature gates to Beta. (#50909)
    This changes the default behavior to emit the new semantic convention attributes instead of the old deprecated ones.
    The Zipkin translator will now use http.response.status_code (replacing http.status_code), otel.scope.name
    (replacing otel.library.name), and otel.scope.version (replacing otel.library.version) by default when emitting spans.

  • processor/drain: Reject invalid configurations at startup, including negative max_clusters and empty attribute names. (#51677)
    Startup validation now rejects max_node_children <= 0, negative max_clusters, empty template_attribute,
    empty wildcards_attribute when emit_wildcards is set, and empty parameter_key_prefix when masking_rules are configured.

  • processor/filter: remove stable processor.filter.defaultErrorModeIgnore gate (#52238)

  • receiver/file_log: Promote the filelog.protobufCheckpointEncoding feature gate to stable. Checkpoints are always written as protobuf. (#43266, #52037)
    The feature gate can no longer be disabled and will be removed in v0.165.0.
    Existing JSON checkpoints are still read and are rewritten as protobuf on the next save.

  • receiver/kubelet_stats: Remove the deprecated aws.volume.id, fs.type, gce.pd.name, glusterfs.endpoints.name, glusterfs.path and partition resource attributes. (#40477)

  • receiver/mongodb: Change mongodb.operation.latency.time from a gauge to a monotonic cumulative sum (#51909)
    opLatencies.*.latency is a cumulative total, so the metric is now a monotonic sum like every
    other cumulative duration in the receiver. It is enabled: false and stability: development.

  • receiver/prometheus: Remove the stable receiver.prometheusreceiver.IgnoreScopeInfoMetric feature gate. (#47312)

🚩 Deprecations 🚩

  • exporter/azuredataexplorer: Mark component as unmaintained (#52055)
  • exporter/logicmonitor: Mark component as unmaintained (#52152)
  • extension/google_client_auth: Rename the googleclientauth extension to google_client_auth. The old name remains available as a deprecated alias. (#45339)
  • processor/probabilistic_sampler: Add the otelcol_processor_probabilistic_sampler_count_spans_processed metric and deprecate otelcol_processor_probabilistic_sampler_count_traces_sampled in favor of it. (#50954)
    The deprecated metric remains available for compatibility.
  • processor/transform: Deprecate the flatten_data option in favor of the new flatten.log option. (#51766)
    Replace flatten_data: true with flatten: {log: true}. flatten_data will be removed in a future release.
  • receiver/kafka: Deprecate the built-in jaeger_proto and jaeger_json encodings in favour of jaegerencodingextension. (#39113)
  • receiver/kafka: Deprecate partition_processing.max_buffered_batches in favour of partition_processing.max_prefetch.batches. It will be removed in v0.166.0. (#52253)
  • receiver/kafka: Deprecate the built-in json logs encoding in favour of jsonlogencodingextension. (#39113)
  • receiver/riak: Update the stability of the receiver from beta to unmaintained (#52051)

🚀 New components 🚀

  • extension/redis_fleet_tracker: Add the redis_fleet_tracker extension, which reports a collector fleet's live member count so adaptive_tail_sampling can treat goal_throughput as a fleet-wide budget. (#50577)

  • processor/verify: Add verifyprocessor, a new processor that verifies RFC 8785 (JCS) canonical integrity attributes (audit.integrity.value) on log records using HMAC and/or certificate public keys. Designed as the verification counterpart to signingprocessor for the OpenTelemetry Audit Logging signal. (#51383)
    This initial PR donates the component skeleton (config, factory, README). Concrete verification logic follows in a subsequent PR.

  • receiver/gnmi: Introduce the gNMI receiver (#50848)

  • receiver/nats: Add the NATS receiver to receive traces, metrics, and logs from a NATS server (skeleton; in development). (#50735)

💡 Enhancements 💡

  • cmd/opampsupervisor: Add an agent::stop_grace_period config option to control how long the Supervisor waits for the Collector to exit after a graceful shutdown signal before forcibly killing it. (#50000)
    Defaults to 10s when unset.

  • exporter/awscloudwatchlogs: resolve {ClusterName} placeholder via k8s.cluster.name attribute (#51601)

  • exporter/awss3: Add access_key and secret_key options to configure static AWS credentials (#52140)

  • exporter/awsxray: Add feature gates to migrate semantic conventions from v1.12.0 to v1.40.0 (#46537)
    Four new alpha feature gates control the migration:

    • exporter.awsxray.EmitV1HTTPNetworkConventions: reads HTTP/network span attributes using semconv v1.40.0 keys (e.g. http.request.method, server.address, server.port, client.address).
    • exporter.awsxray.DontEmitV0HTTPNetworkConventions: stops reading deprecated v1.12.0 HTTP/network attribute keys. Requires EmitV1HTTPNetworkConventions to also be enabled.
    • exporter.awsxray.EmitV1DBConventions: reads database span attributes using semconv v1.40.0 keys (db.namespace, db.system.name, db.query.text, user.name).
    • exporter.awsxray.DontEmitV0DBConventions: stops reading deprecated v1.12.0 database attribute keys. Requires EmitV1DBConventions to also be enabled.
      All gates default to disabled, preserving existing behavior. Enable the EmitV1 gate first for dual-read, then enable the DontEmitV0 gate once upstream instrumentation has migrated.
  • exporter/clickhouse: Added a Bloom Filter data skipping index (idx_event_name) to the EventName column with a 0.01 false positive rate and granularity 1. (#49310)

  • exporter/elasticsearch: Additionally retry context deadlines that expire before the connection is ready, including DNS, TCP handshake, and TLS handshake timeouts. (#52102)
    A context deadline after the connection is ready, including while the request is being written or while waiting for the response, is still not retried.

  • exporter/elasticsearch: Add opt-in telemetry::include_destination_index to add the destination index as an attribute to the otelcol.elasticsearch.docs.processed metric (#52108)

  • exporter/elasticsearch: Convert explicit bounds OTLP histograms to exponential histograms (#52113)
    In OTel mapping mode, explicit-bounds histograms are stored as the native exponential_histogram field when
    connected to Elasticsearch 9.4.0 or later; set version_detection.enabled: false to keep T-Digest histograms.

  • extension/json_log_encoding: Set the observed timestamp of unmarshaled log records to the time the payload was decoded. (#39113)

  • extension/opamp: Report component status attributes in OpAMP health messages. (#50330)

  • extension/opamp: Add reports_heartbeat capability, enabled by default, to allow the OpAMP server to configure the agent's heartbeat interval (#51427)

  • extension/redis_storage: Add IncrementBy and BatchIncrementBy for atomic integer counters shared ...

Read more

v1.2.0/v0.163.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 06:53
v0.163.0
df849b5

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

End User Changelog

🛑 Breaking changes 🛑

  • cmd/opampsupervisor: The supervisor now fails to start when the deprecated reports_remote_config capability option is set to true. (#49763)
    Remove reports_remote_config from the supervisor config; accepts_remote_config enables both the AcceptsRemoteConfig and ReportsRemoteConfig OpAMP capabilities. The option will be removed in v0.165.0.

  • connector/failover: Reject empty condition.error.contains values and fail over only for matching downstream errors (#44518)
    condition.error.contains now requires a list of non-empty strings.

  • exporter/signalfx: Exclude generated container_cpu_utilization metric by default (#51906)
    This metric has been deprecated in favor of container.cpu.usage. If container_cpu_utilization
    is still required, please add it to the exporter's include_metrics configuration option as shown below.

    signalfx:
      include_metrics:
        - metric_name: container_cpu_utilization
    
  • extension/google_cloud_logentry_encoding: Fix Cloud DNS query logs failing to decode when vmInstanceId is in exponent notation. host.id is now a string taken from vmInstanceIdString instead of an int taken from vmInstanceId. (#51552)

  • processor/redaction: Keep every redaction summary attribute intact when data re-enters the processor (#50770)
    Only five of the fourteen summary attributes the processor writes survived a second redaction processor. When data
    passed through one, redaction.allowed.keys, redaction.allowed.count and the seven redaction.body.* attributes
    were treated as unknown keys, deleted, and reported in redaction.redacted.keys.

    The processor now treats all fourteen as its own bookkeeping rather than as user data, so they are no longer deleted,
    masked, obfuscated or counted as redacted, and the summary accumulates across chained processors as intended.
    Previously a blocked_key_patterns or blocked_values rule matching one of these attributes replaced the summary
    with a masked value, and with redact_all_types enabled it rewrote the *.count integers as strings, which made the
    running totals read back as zero at the next hop.

    Chaining two processors also reported the same attribute more than once: the allowed and ignored summaries
    describe the record as it currently stands, which every processor re-derives in full, so merging them with an
    upstream value counted one attribute twice. redaction.allowed.keys read email,email with
    redaction.allowed.count of 2 for a single allowed attribute. Those two outcomes now replace the upstream
    value, while the redacted and masked outcomes keep accumulating, because a removed key and an already masked
    value cannot be detected again.

    Two behaviour changes come with this, both of which can affect an existing chained configuration.

    A processor whose summary is not debug or info now claims no ownership of a summary it finds, so the ordinary
    allow list decides whether it survives. This lets a strict egress processor strip an upstream audit trail, which it
    could not do before. It also means a downstream processor with allow_all_keys: false now removes the five summary
    attributes it previously kept unconditionally, unless they are named in allowed_keys or allow_all_keys is set.
    summary is unset by default, which counts as silent, so a chained configuration that never sets it is affected.

    A key inside a log body named after a summary attribute is now redacted like any other unknown key. The processor
    only ever writes its summary to the record attributes, so such a key in a body carries user data.

  • receiver/postgresql: Set the default scrape timeout to 60s to cancel blocked PostgreSQL queries. (#50757)
    Increase timeout for longer scrapes, or set timeout: 0 to restore the unbounded behavior.

  • receiver/prometheus_simple: Remove the long-deprecated tls_enabled and tls_config settings; use tls instead (#51895)
    tls_enabled/tls_config were deprecated in v0.55.0 in favor of the standard
    tls block (confighttp's TLS settings). Besides being long overdue, keeping both
    was a footgun: setting tls_enabled: true silently overrode any tls block.
    Migrate tls_config (ca_file/cert_file/key_file/insecure_skip_verify) to
    the equivalent fields under tls.

  • receiver/sql_server: Performance counters read from the SQL Server Databases object on a direct database connection now carry the sqlserver.database.name resource attribute and no longer emit an unlabeled _Total aggregate, which changes the series identity of sqlserver.database.backup_or_restore.rate. (#51384)
    sqlserver.database.backup_or_restore.rate splits from one series into one per database, and the
    unlabeled series it previously reported is gone. Aggregate across sqlserver.database.name instead.
    This brings the direct database connection in line with the Windows performance counter path, which
    already discards the aggregate instance before recording.

🚩 Deprecations 🚩

  • receiver/sql_server: Rename the sqlserver receiver to sql_server. The old sqlserver type remains available as a deprecated alias. (#45339)

🚀 New components 🚀

  • processor/adaptive_tail_sampling: Promote the adaptive_tail_sampling processor to alpha stability and include it in the contrib distribution. (#49311)
  • processor/partitioning: Add the initial skeleton for the partitioning processor. (#39199)
  • processor/rolling_span_latency: Promote the rolling_span_latency processor to alpha stability and include it in the contrib distribution. (#50260)

💡 Enhancements 💡

  • connector/routing: Validate OTTL conditions and statements during configuration. (#51748)

  • connector/service_graph: Recognize current semantic-convention attributes (peer.service.name, db.namespace, db.system.name) alongside legacy keys when deriving peer and database-name dimensions. (#22095)

  • exporter/cassandra: Add configuration validation and error case tests. (#51730)

  • exporter/clickhouse: Add database_engine config to set the ENGINE used when creating the database, such as Replicated. (#51513)
    When database_engine.name is Replicated, ON CLUSTER is only applied to the CREATE DATABASE statement.

  • exporter/datadog: Mark exporter/datadogexporter as unsupported on freebsd/amd64. (#15781)

  • exporter/datadog: Move the exporter.datadogexporter.AddUnits feature gate to beta. Metric units are now sent to Datadog by default. (#15280)

  • exporter/elasticsearch: Store OTLP exponential histograms in Elasticsearch's native exponential_histogram field (#51429)
    Enabled automatically in OTel mapping mode when connected to Elasticsearch 9.3.0 or later; disable via version_detection.enabled: false.

  • exporter/elasticsearch: Log the connected Elasticsearch version and build flavor at startup (#51541)
    Adds version_detection (enabled by default); set version_detection.enabled: false to opt out.

  • exporter/kafka: Add the trace context to Kafka record headers using the propagators configured in service::telemetry::traces::propagators. (#51078)

  • exporter/nats: Implement core NATS publishing, so traces, metrics, and logs are published to per-signal subjects derived from OTTL value expressions. (#50735)
    JetStream durable publishing is not yet implemented; a configured jetstream block is rejected at startup until it lands.

  • exporter/splunk_hec: Define the exporter's heartbeat metrics in metadata.yaml and generate them via mdatagen. (#49009)

  • extension/basicauth: Support sourcing credentials from secret provider extensions, with rotation that does not restart the collector. (#48277)
    Configure with htpasswd.secret_provider (server) or client_auth.secret_provider (client).
    The referenced extension must implement the SecretProvider interface (GetSecret and OnChange).

  • extension/datadog: Mark extension/datadogextension as unsupported on freebsd/amd64. (#15781)

  • extension/opamp: Add a socket option under server.ws and server.http to dial the OpAMP server over a Unix domain socket (transport: unix) or Windows named pipe (transport: npipe). (#50603)
    When socket is set, the endpoint only supplies the URL scheme, request path, and Host
    header; its host and port are ignored.

  • extension/pebble_tail_storage: Add on_read_error to choose between dropping a trace or returning the readable part when stored batches cannot be read or decoded. (#49906)
    The default is drop_trace. Take deletes the stored trace and returns an error, and the tail sampling processor drops the trace without a sampling decision.
    Set on_read_error: return_partial to keep the previous best-effort behavior, where Take returns the batches that could still be read.
    Two new metrics, otelcol_extension_pebble_tail_storage_read_error_trace_drops and otelcol_extension_pebble_tail_storage_read_error_partial_returns, count which policy ran.

  • internal/kafka: Reuse cached AWS credentials across AWS_MSK_IAM_OAUTHBEARER token generations instead of resolving them on every SASL authentication. (#50038)

  • pkg/ottl: Add the pkg.ottl.functions.enableExperimental feature gate, which must be enabled to use experimental OTTL functions. (#51564)

  • pkg/ottl: Allow keep_keys to accept slice values from paths and converter expressions when the pkg.ottl.functions.enableDynamicSliceArguments feature gate is enabled. (#45980)

  • pkg/ottl: Improve OTTL parse error diagnostics by reporting the line and column of the input where available. (#51680)
    Not all parse errors carry a position: errors that aggregate multiple statem...

Read more

v1.1.0/v0.162.0

Choose a tag to compare

@github-actions github-actions released this 29 Sep 10:11
v0.162.0
ae8c507

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

Unmaintained Components

These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.

End User Changelog

🛑 Breaking changes 🛑

  • all: Remove the wavefront receiver after a period of deprecation (#51397)

  • connector/signal_to_metrics: The default error mode has been changed from propagate to ignore to ensure valid OTLP payloads are not dropped (#48419)

  • exporter/elasticsearch: Remove the deprecated flush and num_workers configuration settings. (#42718)
    Migrate num_workers to sending_queue::num_consumers, flush::interval to
    sending_queue::batch::flush_timeout, and flush::bytes to
    sending_queue::batch::max_size with sending_queue::batch::sizer set to bytes.
    This also removes Config.NumWorkers, Config.Flush, and FlushSettings from
    the exported Go API.

  • exporter/elasticsearch: Ingest OTel profiles as Elasticsearch (9.6.0) datastreams (#50589)
    In otel mapping mode, profiling signals are now written to OTel-native datastreams
    (e.g. profiling-events-all.otel-default) that require Elasticsearch 9.6.0 or later.
    Sending profiles to an older cluster will result in index_not_found_exception errors and data loss.
    Users on Elasticsearch < 9.6.0 must restrict the exporter to ECS mode via mapping.allowed_modes: [ecs].

  • exporter/elasticsearch: Move OTel profiling serializer to ecsserializer package and wire ecs mapping mode to use it for profiles. (#50589)

  • pkg/ottl: Remove the stable ottl.PanicDuplicateName and ottl.contexts.enableOTelColContext feature gates. (#44630, #46437)

  • pkg/prometheus: Promote the pkg.translator.prometheus.PermissiveLabelSanitization feature gate from alpha to beta, enabling it by default. (#50429)
    Labels starting with a single underscore (e.g. _foo) will no longer be
    prefixed with key_ by default. To restore the previous behavior, disable the
    feature gate: --feature-gates=-pkg.translator.prometheus.PermissiveLabelSanitization.

  • processor/adaptive_tail_sampling: Add explicit root-scoped fingerprint selectors (root.resource., root.scope., root.span., root.any.) and require root. to name an origin. (#51304)
    root. is now a position prefix that composes with the resource, scope, span and any origins, so a
    fingerprint can read the root span's resource-level attributes (root.resource.attributes["service.name"]) or
    their union (root.any.attributes[...]). Bare root.attributes["<name>"] no longer parses; it previously read
    only the root span's span attributes, so resource attributes such as service.name came back <missing>.
    Migrate root.attributes[...] to root.span.attributes[...] for the same behaviour, or to root.resource. /
    root.any. to reach the attributes that were unreachable before.

  • processor/cardinality_guardian: move units to singular form (#45270)

  • processor/signing: Wrap attribute scalar values in type-tagged objects ({"intValue":"…"}, {"stringValue":"…"}, etc.) to eliminate scalar type collisions in the JCS-canonical signed payload. (#50884)
    Previously, PutInt("k", 123) and PutStr("k", "123") produced identical
    canonical JSON, so one signature covered both values. Each scalar type is now
    wrapped in a single-key object keyed by type name (matching OTLP/JSON
    conventions), making every type distinct. Existing signatures are invalidated
    by this change.
    SeverityNumber and SeverityText are no longer included in the signed
    payload; the audit logging spec marks them as SHOULD NOT.

  • processor/signing: Adds OpenBAO and Kubernetes Secrets as newKeyMaterialProvider options to the signing processor. (#50079, #51055)
    Additionally, supports a Kubernetes Secret, or an OpenBao/Vault
    KV secret. Sets audit.integrity.signer = "collector" to indicate the Tier-2
    Collector produced the integrity proof.

  • processor/transform: Remove the stable processor.transform.defaultErrorModeIgnore feature gate. (#51242)

  • receiver/kafka: Change the default for metadata::retry::max from 3 to 20 to match franz-go's default. (#50116)
    The field was unwired since the migration to franz-go, so every collector has effectively been
    running with franz-go's default of 20. The new default preserves that behavior now that the
    field is applied. Only configurations that set metadata::retry::max explicitly change
    behavior: the configured value is now honored.

  • receiver/kafka_metrics: Change the default for metadata::retry::max from 3 to 20 to match franz-go's default. (#50116)
    The field was unwired since the migration to franz-go, so every collector has effectively been
    running with franz-go's default of 20. The new default preserves that behavior now that the
    field is applied. Only configurations that set metadata::retry::max explicitly change
    behavior: the configured value is now honored.

  • receiver/prometheus: Promote the receiver.prometheusreceiver.IgnoreScopeInfoMetric feature gate to stable (#47312)
    The otel_scope_info metric is no longer used for scope attribute extraction and is
    converted like any other metric. Scope attributes are populated from otel_scope_-prefixed
    metric labels instead. The feature gate can no longer be disabled and will be removed in v0.164.0.

🚩 Deprecations 🚩

  • connector/grafana_cloud: Rename component type from "grafanacloud" to "grafana_cloud" to follow snake_case naming convention. The old name is kept as a deprecated alias. (#48017)

  • receiver/aws_s3: Rename awss3 receiver to aws_s3 with deprecated alias awss3 (#45339)

  • receiver/kafka: Deprecate metadata::full, which became a no-op after the migration to franz-go. (#50116)
    franz-go has no full-metadata mode; it only fetches metadata for the topics the receiver
    consumes from. The field is still accepted in configuration for backwards compatibility, but has
    no effect at runtime. It will be removed in a future release.

  • receiver/kafka_metrics: Deprecate metadata::full, which became a no-op after the migration to franz-go. (#50116)
    franz-go has no full-metadata mode; it only fetches metadata for the topics the scrapers query.
    The field is still accepted in configuration for backwards compatibility, but has no effect at
    runtime. It will be removed in a future release.

  • receiver/kubelet_stats: Deprecate k8s.pod.cpu.node.utilization, k8s.pod.memory.node.utilization, k8s.container.cpu.node.utilization, and k8s.container.memory.node.utilization metrics. (#50857)
    These metrics are deprecated following the decision in the K8s SemConv SIG
    (open-telemetry/semantic-conventions#2768).
    They will be removed in a future release.

🚀 New components 🚀

  • exporter/nats: Add the NATS exporter to export traces, metrics, and logs to a NATS server (skeleton; in development). (#39540)
  • extension/file_telemetry_policy: Add filetelemetrypolicy extension skeleton. (#50965)
  • extension/sd_notify: Promote sd_notify extension stability from development to alpha. (#49607)
  • processor/telemetry_policy: Add the initial skeleton for the telemetry_policy processor. (#50965)

💡 Enhancements 💡

  • cmd/opampsupervisor: Enable keepalive by default (#51159)
  • connector/exceptions: Add logs_to_logs and logs_to_metrics support, and fix the traces_to_logs edge to emit spec-conformant exception LogEvents (event.name, required exception.* attributes, and full resource attribute propagation). (#50900)
  • connector/failover: Introduces condition.error.contains which allows the connector to failover based on error type. (#44518)
  • exporter/azure_monitor: Enable keepalive by default (#51178)
  • exporter/coralogix: Enable keepalive by default (#51181)
  • exporter/datadog: Emit otel.datadog_exporter.metrics.running.azurecontainerapps tagged with replica, name, subscription_id, and resource_group for Azure Container Apps workloads sending metrics via the Datadog exporter. (#49615)
  • exporter/datadog: Emit running metrics for Azure App Services, Azure Functions, Cloud Run services, and Cloud Run Functions workloads sending metrics through the Datadog exporter. (#51501)
  • exporter/honeycomb_marker: Enable keepalive by default (#51180)
  • exporter/load_balancing: Add randomness routing key that routes spans by the OTel tracestate randomness value (ot=rv), falling back to trace ID randomness when absent, so traces sharing an explicit randomness value are routed to the same backend. (#49660)
  • exporter/logicmonitor: Enable keepalive by default (#49316)
  • exporter/sematext: Enable keepalive by default (#49316)
  • exporter/syslog: Add support for exporting to Unix datagram sockets such as /dev/log. (#50867)
  • extension/awsproxy: Enable keepalive by default (#49316)
  • extension/datadog: Enable keepalive by default (#49316)
  • extension/health_check: Enable keepalive by default (#51175)
  • extension/healthcheckv2: Enable keepalive by default (#51175)
  • extension/http_forwarder: Enable keepalive by default (#51182)
  • extension/jaegerremotesampling: Enable keepalive by default (#49316)
  • extension/json_log_encoding: Add the opt-in parse_ints setting to preserv...
Read more

v1.0.0/v0.161.0

Choose a tag to compare

@github-actions github-actions released this 15 Sep 15:05
v0.161.0
3f8455d

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

End User Changelog

🛑 Breaking changes 🛑

  • all: Remove the deprecated mezmo exporter. (#49953)
    Use the OTLP/HTTP exporter to send logs directly to Mezmo instead. See
    https://docs.mezmo.com/telemetry-pipelines/otel-collector and
    https://docs.mezmo.com/telemetry-pipelines/open-telemetry-source for migration guidance.

  • cmd/opampsupervisor: Deprecate the reports_remote_config capability config option. The accepts_remote_config option now enables both the AcceptsRemoteConfig and ReportsRemoteConfig OpAMP capabilities. (#49763)
    reports_remote_config is still accepted but has no effect. The supervisor logs an error at startup when it is set to true.
    Configurations with accepts_remote_config: true and reports_remote_config: false now report remote config status.
    The option will fail startup in v0.163.0 and be removed in v0.165.0.

  • extension/azure_encoding: Promote extension.azureencoding.DontEmitV0LogConventions and extension.azureencoding.EmitV1LogConventions feature gates to Beta (#50885)
    The gates are now enabled by default, so Azure log records emit the v1 semconv attribute exception.message instead of the deprecated v1.39.0 attribute error.message. Disable both gates to restore the previous behavior.

  • extension/google_cloud_logentry_encoding: Promote extension.encoding.googlecloudlogentryencoding.DontEmitV0RPCConventions feature gate to Beta (#50879)
    The gate is now enabled by default, so the audit log parser no longer emits the deprecated semconv v1.38.0 attributes rpc.jsonrpc.error_code and rpc.jsonrpc.error_message. It can be disabled to restore the previous behavior.

  • pkg/coreinternal: Promote internal.coreinternal.goldendataset.DontEmitV0MessagingConventions and internal.coreinternal.goldendataset.EmitV1MessagingConventions feature gates to Beta (#45077)
    Both feature gates should be promoted together as per RFC.
    goldendataset now generates spans with messaging.destination.name (semconv v1.40.0) by default,
    and no longer generates the deprecated messaging.destination (semconv v1.16.0) and
    messaging.destination.kind (semconv v1.19.0) attributes.

  • pkg/faro: Promote pkg.translator.faro.EmitV1DeploymentEnvironmentConventions and pkg.translator.faro.DontEmitV0DeploymentEnvironmentConventions feature gates to beta. (#45074)
    Make faroreceiver emit deployment.environment.name instead of deployment.environment resource attribute by default.

  • pkg/kafka/configkafka: Reject configurations that set both auth.sasl and auth.kerberos. (#50748)

  • pkg/ottl: Promote the ottl.PanicDuplicateName feature gate to stable. (#50873)

  • pkg/ottl: Remove the deprecated Base64Decode converter. Use the Decode converter with the base64 encoding instead. (#50875)

  • pkg/ottl: Promote the ottl.set.allowNil feature gate to beta, enabling it by default. (#49741)
    When enabled, the set function passes nil values directly to the target instead of treating them as a no-op.

  • processor/k8s_attributes: Promote logs, metrics, and traces signals from beta to stable. (#49152)
    Promote the following feature gates from alpha to beta (enabled by default):

    • processor.k8sattributes.EmitV1K8sConventions: emits stable semconv attribute names (e.g. k8s.pod.label.* singular form).
    • processor.k8sattributes.DontEmitV0K8sConventions: disables legacy semconv attribute names (e.g. k8s.pod.labels.* plural form).
      Users relying on the legacy names should disable these gates or migrate to the stable names.
      It is advised that dual emission is used for the migration period. This can be achieved through the feature gates:
      --feature-gates=-processor.k8sattributes.DontEmitV0K8sConventions,processor.k8sattributes.EmitV1K8sConventions.
      More information can be found at the respective documentation section.
  • processor/signing: Include the log record body in the signed payload whatever its type. Previously only a string body was signed, so a record with a structured body and a record with no body produced identical canonical bytes and shared a signature. (#50911)
    The body is now routed through the same valueToInterface conversion as
    attributes, which handles every pcommon.Value type, enforces the existing
    nesting depth cap, and preserves the UTF-8 validation that previously guarded
    the string-only path. An unset body is still omitted rather than encoded as
    null, so records without a body are unaffected.

    This changes the canonical form for any record carrying a non-string body, so
    signatures produced by earlier versions over such records will not reproduce.

    Two new failure modes follow from the body no longer being discarded: a record
    whose structured body pushes the canonical payload past the 2 MiB limit, or
    whose body nests deeper than 128 levels, now fails to sign where it previously
    signed with the body silently omitted.

  • receiver/kubelet_stats: Promote the receiver.kubeletstats.cpuUsageScrapeBased feature gate to beta (enabled by default). (#49477)
    container.cpu.usage, k8s.pod.cpu.usage and k8s.node.cpu.usage (and the cpu utilization
    metrics derived from them) are now calculated as the rate of the corresponding *.cpu.time
    counter between consecutive scrapes, instead of being read from the kubelet's UsageNanoCores
    value. As a result these metrics are not reported on the first scrape after startup.
    To restore the previous behavior, run the collector with
    --feature-gates=-receiver.kubeletstats.cpuUsageScrapeBased.

  • receiver/sqlserver: Remove server.address and server.port from db.server.top_query log record attributes
    (#50384)
    Remove server.address and server.port from db.server.top_query log record attributes as they duplicate the resource-level attributes and cause inconsistency when overridden via a processor. Both attributes are now enabled by default at the resource level. The receiver.sqlserver.RemoveServerResourceAttribute feature gate has been removed.

🚀 New components 🚀

  • extension/sd_notify: Prepare the initial implementation for sd_notify extension. (#49607)
  • processor/rolling_span_latency: Add rollingspanlatencyprocessor. (#50260)
  • processor/signing: Add signingprocessor implementation — computes RFC 8785 (JCS) canonical hash and signs each log record, storing the base64-encoded signature as audit.integrity.value and setting audit.integrity.algorithm and audit.integrity.certificate as resource attributes. Supports RS256, RS512, ES256, EdDSA, and HMAC-SHA256. (#50079, #50080)
    Key material can be loaded from a file or environment variables (PR 2a), with Kubernetes Secret and OpenBao support to follow.

💡 Enhancements 💡

  • exporter/datadog: The container.image.tags attribute is now mapped to the image_tag attribute (#50864)
    The Datadog exporter and connector already recognize the deprecated container.image.tag resource attribute
    and map it to the Datadog image_tag container tag.
    They now also recognize the newer container.image.tags convention.
    For now, only the first element of the array attribute will be extracted.

  • extension/opamp: Add an opt-in reports_raw_config setting to additionally report the raw, unexpanded configuration alongside the effective configuration (#44341)
    When reports_raw_config is enabled (default: false, and requires the
    reports_effective_config capability), the extension reports the raw
    configuration as authored, before environment variable and other provider
    references are expanded, under the raw key of the effective config map. The
    fully expanded effective configuration is unchanged and remains under the
    "" (empty) key. This is disabled by default because raw configuration files
    may contain secrets written directly into them. Values sourced from provider
    references such as ${env:TOKEN} retain their unexpanded form in the raw
    configuration, so they are not exposed, and fields using types meant for
    opaque information (such as configopaque.String, commonly used for password
    fields) are redacted; consult your components' documentation or source to
    verify which fields are automatically redacted.

  • internal/healthcheck: Migrate to NotifyConfigSnapshot (#50924)

  • pkg/fileconsumer: Move filelog.mtimeSortType featuregate to beta (#46635)

  • pkg/ottl: Promote the ottl.contexts.enableOTelColContext feature gate to stable. (#46437)
    The otelcol context is now always available and the feature gate can no longer be disabled.

  • pkg/ottl: Allow Concat to accept slice values produced by paths and converter expressions. (#27821, #38690)

  • pkg/pdatatest: Add a double_value/precision<n> operator to pmetricassert, comparing double datapoint values rounded to n decimal places (#48441)
    Mirrors pmetrictest's IgnoreMetricFloatPrecision for assertion snapshots.
    n must be between 0 and 15, and the operator cannot be combined with an
    exact double_value on the same datapoint.

  • pkg/semconvtest: Pin the default Weaver image version instead of floating on the latest tag (#50915)
    Use WithVersion to select a different version, including latest.

  • pkg/stanza: Add optional server authenticator support to the tcp_input operator via a new auth configuration block. (#49339)
    When auth.authenticator references a server auth extension, the tcp_input operator authenticates each
    accepted connection before reading logs, ...

Read more

v0.160.0

Choose a tag to compare

@dmitryax dmitryax released this 02 Sep 16:36
v0.160.0
982f20b

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

End User Changelog

🛑 Breaking changes 🛑

  • all: Increase minimum Go version to 1.26 (#50394)

  • exporter/kafka: Removes the deprecated auth.tls and auth.plain_text configurations. (#50202)

  • exporter/signalfx: Datapoints that fail validation are no longer dropped in the exporter. This may increase the ingest sf.org.numDatapointsDroppedInvalid org metric. No action required; (#50011)
    Previously, the SignalFx exporter dropped datapoints with an invalid metric name, dimension name, dimension value, or number of
    dimensions before sending them to the backend. The backend already enforces the same constraints and drops offending datapoints at
    ingest, so this exporter-side enforcement was redundant. With this change, the exporter no longer drops these datapoints itself and
    only logs a debug message; the backend will now drop them. As a result, these datapoints now count toward
    sf.org.numDatapointsDroppedInvalid.

  • pkg/kafka/configkafka: Remove all previously deprecated Kafka client configuration options. (#50381)
    The following deprecated options are no longer accepted:

    • resolve_canonical_bootstrap_servers_only (no-op since franz-go migration)
    • auth.sasl.version (no-op since franz-go migration)
    • group_rebalance_strategy (use group_rebalance_strategies instead)
  • processor/adaptive_tail_sampling: Restructure sampler configuration around intent-based types with an optional algorithm field, and standardise trace/span terminology (#49311)
    Sampler types are renamed to state intent: deterministic is now probabilistic
    (matching the probabilistic_sampler processor; same hash-consistent fixed fraction),
    ema_dynamic is now adaptive_percentage, and ema_throughput / windowed_throughput
    merge into adaptive_throughput with an optional algorithm field (ema, the default,
    or windowed). Goal fields are renamed to match: goal_sampling_percentage is now
    goal_percentage and goal_throughput_per_sec is now goal_throughput (still spans
    per second). Docs now state the volume model explicitly: decisions are per trace,
    volume is measured in spans. Refinery migration mapping is included in the README.

  • processor/adaptive_tail_sampling: Require fingerprint_attributes entries to be scoped attribute selectors (#49311)
    Entries now have the form <scope>.attributes["<name>"] where scope is one of
    resource, scope, span, root, or any. The resource/scope/span prefixes match OTTL's
    span-context path names; root reads from spans matching the configured
    root_span_condition and any searches resource, scope, and span attributes. Bare
    attribute names are rejected at validation with an error suggesting the scoped
    form. Migrating a bare name: use the scope the attribute actually lives at
    (e.g. resource.attributes["service.name"]), or any.attributes[""] to keep
    search-everywhere behaviour (which now also includes instrumentation-scope
    attributes).

  • processor/adaptive_tail_sampling: Rename the dynamic_sampling processor to adaptive_tail_sampling. There is no alias, the old name stops working. (#50367)
    The rename covers every surface that carried the old name:
    the config id (dynamic_sampling -> adaptive_tail_sampling), the sampler types
    (dynamic_percentage -> adaptive_percentage, dynamic_throughput -> adaptive_throughput),
    the metric prefix (otelcol_processor_dynamic_sampling_* -> otelcol_processor_adaptive_tail_sampling_*),
    the span attribute namespace (otelcol.processor.dynamic_sampling.* -> otelcol.processor.adaptive_tail_sampling.*),
    and the Go module path (processor/dynamicsamplingprocessor -> processor/adaptivetailsamplingprocessor).

  • processor/adaptive_tail_sampling: Rename the sampler key_attributes field to fingerprint_attributes (#49311)
    The fingerprint names the attributes that identify what kind of trace this is for
    sampling purposes. Semantics are unchanged: values are collected from resource
    attributes and from every span of the accumulated trace. The README documents the
    collection model and separators, and adds guidance on choosing fingerprint
    attributes that classify traffic rather than identify individual requests.

  • processor/k8s_attributes: Promote processor.k8sattributes.telemetry.* feature gates from alpha to beta (enabled by default). (#45871)
    The following feature gates are now enabled by default:

    • processor.k8sattributes.telemetry.enableNewFormatMetrics: enables new-format internal telemetry metrics.
    • processor.k8sattributes.telemetry.disableOldFormatMetrics: disables old-format internal telemetry metrics.
      Users relying on the old-format metrics should migrate to the new format before upgrading.
  • processor/k8s_attributes: Remove the deprecated deployment_name_from_replicaset option. (#45871)
    The deployment_name_from_replicaset key must be removed from all configs entirely.
    Because confmap rejects unknown keys, any config that still contains this setting — whether
    set to true or false — will cause a hard startup failure.
    Deployment names are always derived from the ReplicaSet name heuristic; the ReplicaSet
    informer still runs when k8s.deployment.uid is enabled or deployment/replicaset
    labels/annotations are extracted. Users that had this setting as false can get the same
    informer-based behaviour by following the respective documentation
    section.

  • receiver/systemd: Add metrics for services' memory current and peak memory usage. (#50035)

🚩 Deprecations 🚩

  • exporter/awsemf: Deprecate legacy enabled and exclude_service_attributes fields in resource_to_telemetry_conversion in favor of included and excluded patterns. (#48861)
    Introduces the exporter.awsemf.DisableLegacyResourceToTelemetryConversion feature gate to disable the legacy fields. When migrating from enabled: true, set included: ["*"].

  • exporter/prometheus: Deprecate resource_to_telemetry_conversion in favor of resource_constant_labels and add feature gate exporter.prometheus.DisableResourceToTelemetryConversion. (#48861)

  • exporter/prometheus_remote_write: Deprecate resource_to_telemetry_conversion in favor of resource_constant_labels and add feature gate exporter.prometheusremotewrite.DisableResourceToTelemetryConversion. (#48862)

  • receiver/icmp_check: Rename icmpcheckreceiver receiver to icmp_check with deprecated alias icmpcheckreceiver (#45339)

  • receiver/windows_perf_counters: Rename the 'windowsperfcounters' receiver to 'windows_perf_counters'. The old 'windowsperfcounters' type remains available as a deprecated alias. (#45339)

🚀 New components 🚀

  • processor/signing: Add signingprocessor, a new processor that computes a RFC 8785 (JCS) canonical hash and signs each log record, storing the base64-encoded signature as audit.integrity.value and setting audit.integrity.algorithm and audit.integrity.certificate as resource attributes. Supports RS256, RS512, ES256, EdDSA, and HMAC-SHA256. Designed for use with the OpenTelemetry Audit Logging signal to provide tamper-evident audit trails. (#50079, #50080)
    Key material can be loaded from a file, environment variables, a Kubernetes Secret, or an OpenBao (Vault-compatible) secret engine.

💡 Enhancements 💡

  • cmd/opampsupervisor: Add support for telemetry.resource.detection/development in OpAMP Supervisor telemetry. (#45116)
    This follows the OpenTelemetry configuration schema by treating
    telemetry.resource.detection/development.detectors as detector selection.
    Currently supported detector entries are container, host, process, and service.
    See the OpenTelemetry Configuration Go support table and search for
    ExperimentalResourceDetector for current detector support:
    https://github.com/open-telemetry/opentelemetry-configuration/blob/main/language-support-status.md#go

    Example:
    telemetry:
    resource:
    attributes:
    - name: foo
    value: bar
    detection/development:
    detectors:
    - host: {}

  • exporter/awss3: Honor the S3 client's request checksum calculation setting (including the AWS_REQUEST_CHECKSUM_CALCULATION environment variable) when uploading objects. (#50184)
    The transfer manager previously always defaulted to calculating a CRC32 checksum, which is sent as
    an aws-chunked trailer that some S3-compatible backends reject. It now inherits the setting from the
    configured S3 client.

  • exporter/kafka: Allow sending more than one signal to the same Kafka topic with signal_header. (#50244)
    Set signal_header: true and point each signal's topic at the same name. You can
    enable the setting while topics stay separate. Existing receivers ignore the extra
    header, so current per-signal topics keep working. Do not write mixed signals to a
    receiver that does not have signal_header enabled. While this option is on,
    otelcol.signal cannot be set in record_headers or include_metadata_keys.

  • exporter/load_balancing: Avoid quadratic re-hashing when assembling per-endpoint metric batches, most visible with the streamID routing key on high-cardinality workloads. (#49725)
    Merging N routed batches into an endpoint's payload re-computed the identity hash of every
    already-merged ResourceMetrics/ScopeMetrics/Metric on each merge, making a ConsumeMetri...

Read more

v0.159.0

Choose a tag to compare

@github-actions github-actions released this 17 Aug 21:44
v0.159.0
1120cc0

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

Unmaintained Components

These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.

  • receiver/huaweicloudcesreceiver/
  • receiver/simpleprometheusreceiver/

End User Changelog

🛑 Breaking changes 🛑

  • all: Removes the kafkatopicsobserver extension after being deprecated for 3 months (#48186)
    Use the kafkareceiver with topic regex support instead.

  • extension/observer: Removes the kafka.topics endpoint type along with the kafkatopicsobserver extension (#48186)
    The observer.KafkaTopicType endpoint type and its observer.KafkaTopic details struct are
    removed, as the kafkatopicsobserver was the only observer emitting them. The receivercreator
    no longer accepts type == "kafka.topics" rules or resource attributes for that endpoint type.

  • processor/dynamic_sampling: Reserve the "" prefix in rule names for processor-internal decision labels, and rename the unmatched-drop sentinel to _unmatched (#49311)
    Configs with rule names starting with "
    " are now rejected at validation, so user rule
    names can never collide with the processor-owned sentinel labels on decision metrics
    (_eviction, _root_span_condition). The rule attribute value for traces dropped with
    no matching rule changes from unmatched to _unmatched to follow the same convention.

  • receiver/file_log: ordering_criteria::top_n: 0 now means 'match all files' instead of silently behaving like top_n: 1. (#47444)
    To restore the previous behavior of matching the first file only, set ordering_criteria::top_n: 1.

🚩 Deprecations 🚩

  • exporter/azure_monitor: Rename azuremonitor to azure_monitor (#45339)

  • exporter/signalfx: Remove the logic sending trace correlation. (#50166)
    The trace correlation endpoint is no longer processing requests as the logic has moved
    to be handled by the backend. With this change, the exporter continues to accept spans
    but will no longer send them to the correlation endpoint.

  • receiver/file_log: Deprecate the implicit ordering_criteria.top_n default of 1 when ordering_criteria.sort_by is configured. Enable the filelog.requireExplicitTopN feature gate to require top_n to be set explicitly. (#47444)
    When ordering_criteria.sort_by is configured without top_n, the matcher
    silently defaults top_n to 1, returning only the single highest-priority file
    per poll. With multiple actively-written files this causes severe log
    duplication: the other matching files cycle in and out of the tracker and are
    re-read from offset 0 on rediscovery.

    Enabling the filelog.requireExplicitTopN feature gate makes an unset top_n a
    startup error when sort_by is configured, forcing the choice to be explicit.
    The gate is off by default; it is expected to become the default (and the
    implicit fallback removed) in a future release. Use top_n: 1 to keep the
    previous behavior.

    Independently of the feature gate, top_n: 0 now means "match all files"
    instead of silently behaving like top_n: 1.

  • receiver/sql_query: Rename the 'sqlquery' receiver to 'sql_query'. The old 'sqlquery' type remains available as a deprecated alias. (#45339)

🚀 New components 🚀

  • extension/sd_notify: Introduces the sd_notify extension, which integrates the collector with the sd_notify(3) protocol. (#49607)

💡 Enhancements 💡

  • cmd/opampsupervisor: Add tar.gz archive support and the agent_binary configuration for collector package upgrades. (#49766)

  • exporter/awscloudwatchlogs: Add max_event_payload_bytes config option to opt in to the CloudWatch Logs 1 MiB per-event limit (previously hardcoded to 256 KiB). (#48559)
    The CloudWatch Logs PutLogEvents API began accepting events up to 1 MiB on
    2025-04-02. The exporter previously truncated every event at 256 KiB (the
    pre-2025 service limit) via a hardcoded package constant. The default stays
    at 256 KiB for backwards compatibility; set max_event_payload_bytes: 1048576
    to take advantage of the new ceiling. A new cwlogs.WithMaxEventPayloadBytes
    pusher option exposes the same knob to direct callers of the internal package.

  • exporter/azure_monitor: Allow configuring HTTP status codes that should not be marked as errors in Application Insights. (#47691)
    Adds telemetry_mappings.traces.http.success settings for HTTP success mapping:
    additional_success_status_codes lists status codes treated as Success on both
    server and client HTTP spans, and server_policy: otel treats 4xx responses on
    HTTP server spans as Success, matching the OpenTelemetry HTTP semantic conventions.
    Defaults preserve the existing exporter behaviour.

  • exporter/load_balancing: Promote metrics support to alpha stability (#50086)

  • exporter/opensearch: Add integration test harness against a real OpenSearch instance (#48615)
    Introduces testcontainers-go setup to validate exporter behavior,
    dynamic mappings, and cluster connectivity.

  • exporter/prometheus_remote_write: Add a nested http config block for HTTP client settings. The nested block takes precedence over flat HTTP client settings when set. (#46209)

  • exporter/prometheus_remote_write: Add the exporter ID as an attribute on WAL telemetry metrics to disambiguate multiple PRW exporters sharing a collector. (#49130)

  • exporter/signalfx: Stop excluding container.memory.rss in SignalFx exporter by default. (#50162)

  • extension/aws_iam_db_auth: Change aws_iam_db_auth to alpha (#50118)

  • extension/pebble_tail_storage: Added max_storage_size_mib support to the Pebble tail storage extension to bound local disk usage for pending tail-sampling trace data. (#49592)
    Configuration example:
    extensions:
    pebble_tail_storage:
    directory: /var/lib/otelcol/pebble-tail-storage
    max_storage_size_mib: 10240

  • extension/sumologic: Add optional fleet_id configuration field to assign a collector to a fleet during registration. (#50142)
    When fleet_id is configured, it is sent as fleetId in the collector registration request.
    If the server returns an invalid_fleet_id or fleet_not_found error, registration is
    retried without the fleet ID so the collector can still register successfully.

  • pkg/datadog: Add the datadog.EnableScopeConvention feature gate to control the otel.scope name and version conventions in the Datadog exporter. (#49001)
    When the datadog.EnableScopeConvention feature gate is enabled, spans additionally
    carry the otel.scope.name and otel.scope.version attributes. The deprecated
    otel.library.name and otel.library.version attributes are still emitted with the
    same values for backward compatibility, so existing dashboards and monitors keyed on
    them keep working.

  • pkg/fileconsumer: Move filelog.allowFileDeletion and filelog.windows.caseInsensitive filelog.featuregates to beta (#46635)

  • pkg/ottl: pcommon.Value is now comparable using all comparison operators (==, !=, <, <=, >=, >) in OTTL expressions (#49170)

  • pkg/ottl: The set function will pass nil values directly to the target when the ottl.set.allowNil feature gate is enabled. (#48714)

  • processor/dynamic_sampling: Reduce hot-path overhead with a fast path for the default root-span condition, cheaper decision-cache ordering, precomputed metric attributes, and a precomputed emitted tracestate. (#49311)

  • processor/dynamic_sampling: Document known limitations, the metric label contract (sentinel rule values, trigger values), and refresh the future work list (#49311)

  • processor/dynamic_sampling: Move buffered spans into the output at decision time instead of copying them, halving decision-path allocations. (#49311)

  • processor/dynamic_sampling: Drain pending traces on shutdown, deciding each through the normal rule path instead of silently dropping the buffer (#49311)
    Previously a collector restart, rollout, or config reload discarded every buffered trace
    without a decision (up to trace_timeout worth of spans). Shutdown now decides each pending
    trace with the spans seen so far, forwards the kept ones with a correct ot=th tracestate,
    and reports them on the decision-triggers counter with trigger="shutdown". Traces already
    counted by an earlier trigger are not counted again, and the same double-count guard is
    applied to eviction of a trace in its decision_delay window.

  • processor/dynamic_sampling: Use MoveTo instead of CopyTo when accumulating and forwarding spans, reducing allocations and improving throughput. (#49311)

  • processor/resource_detection: Add feature gates to migrate the elastic_beanstalk detector to the current deployment semantic conventions. (#50130)
    The detector reports the deployment environment as deployment.environment, which is deprecated in
    the semantic conventions, and the deployment ID as service.instance.id. Two alpha feature gates
    migrate them to deployment.environment.name and deployment.id:
    processor.resourcedetection.elasticbeanstalk.EmitV1DeploymentConventions adds the current
    attributes, and processor.resourcedetection.elasticbeanstalk.DontEmitV0DeploymentConventions
    removes the deprecated ones. Enabling only the first reports both sets, so telemetry
    can be migrated before the deprecated attributes are dropped. Enabling only the second is rejected
    at startup. The default output is unchanged.

  • processor/resource_detection: Support global retry config for resource detection processor (#46546)

  • processor/resource_detection: Add Azure...

Read more

v0.158.0

Choose a tag to compare

@github-actions github-actions released this 04 Aug 17:06
v0.158.0
821a9d9

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

End User Changelog

🛑 Breaking changes 🛑

  • cmd/opampsupervisor: Remove the reports_package_statuses capability config option. The accepts_packages option now enables both the AcceptsPackages and ReportsPackageStatuses OpAMP capabilities. (#49762)
    Neither capability was functional; the supervisor exits with an error at startup when configured, so no working configuration is affected.

  • processor/drain: Add masking rules for named parameter extraction. Removes the extract_parameters and params_attribute config fields released in v0.157.0. (#48914)
    Adds masking_rules, an ordered list of {name, pattern} regex substitutions applied to a copy
    of the log body before it is fed to the Drain tree. Matched substrings become named mask tokens
    in derived templates (for example <ip>), stabilising the tree on high-cardinality values.
    Each masked position writes a dynamic attribute at
    <parameter_key_prefix>.<mask name> (default prefix log.record.template.parameter), matching
    the OTel semantic-convention pattern used by http.request.header.<key> and
    db.query.parameter.<key>.

    Adds emit_wildcards (default false): when true, Drain's own <*> positions are written to a
    positional string slice attribute at wildcards_attribute (default
    log.record.template.wildcards). Independent of masking_rules, so users can enable it without
    any rules to see raw variable values before deciding what to mask.

    When a mask name matches multiple positions in the same template, first-match wins and the
    losing values are dropped. The otelcol_processor_drain_masks_duplicates counter is incremented
    once per record per duplicated mask name, tagged with a mask attribute for observability.

    Breaking: the positional-only extract_parameters and params_attribute fields released in
    v0.157.0 are removed. Collectors with either field set will fail to start after upgrading.
    To migrate, replace extract_parameters: true with emit_wildcards: true, and rename
    params_attribute to wildcards_attribute. The behaviour is identical; only the field names
    change. Note the default output attribute also renames from log.record.template.params to
    log.record.template.wildcards, so downstream consumers of the old attribute key should either
    update their references or set wildcards_attribute: log.record.template.params to keep the
    old key.

  • processor/dynamic_sampling: Flatten sampler config, rename key_fields to key_attributes, drop initial_sampling_rate. (#49311)
    Sampler fields no longer live under a per-type sub-block (sampler.<type>.<field>);
    they move up one level under sampler: with type acting as the discriminator.
    key_fields is renamed to key_attributes to match OTel attribute vocabulary used
    elsewhere in the processor. The rarely-used initial_sampling_rate on
    ema_throughput is removed; dynsampler-go's default applies. goal_throughput_per_sec
    is now int for both throughput samplers. Fields set for a sampler type that does
    not use them are rejected at config validation.

  • processor/dynamic_sampling: Replace the custom rule condition parser with OTTL expressions and add a match field to control same-span vs any-span semantics. (#49311)
    Rule conditions: are now OTTL boolean expressions evaluated in the ottlspan
    context. Path expressions must be qualified with a context prefix
    (span.attributes["k"], resource.attributes["k"], span.status.code, etc).
    A new per-rule match: field selects any_span (default, each condition
    satisfied by some span) or same_span (some single span satisfies all
    conditions). A new counter,
    otelcol_processor_dynamic_sampling_ottl_eval_errors, is labelled by rule
    and tracks runtime OTTL evaluation errors.

  • receiver/icmpcheckreceiver: Change RTT metric value type from int to double for sub-millisecond precision (#49960)

  • receiver/oracledb: oracle.db.pdb is now a data-point attribute (opt-in) instead of a resource attribute. (#48643)
    oracle.db.pdb has moved from a resource attribute to an opt-in data point attribute.
    Downstream pipelines that grouped, routed, or filtered on oracle.db.pdb at resource scope
    must be updated to read it from data point attributes, and it must be explicitly enabled on
    each metric that should carry it via metrics.<name>.attributes: [oracle.db.pdb]. Existing
    CDB deployments that do not enable the attribute or add the grants needed for per-PDB
    collection keep working unchanged; the receiver falls back to the single-container queries.

  • receiver/postgresql: Collect postgresql.database.locks from each configured database instead of only the default postgres database. (#49206)
    Previously the metric was collected once against the default postgres database, so locks on relations
    belonging to other configured databases were silently dropped, and all data points were emitted on the
    instance-level resource without postgresql.database.name. Lock data points for database-local relations
    are now emitted on the corresponding per-database resource with the postgresql.database.name resource
    attribute. Locks on shared system catalogs (e.g. pg_database) are reported once at the instance level.
    When the receiver.postgresql.useOTelSemconv feature gate is enabled there is a single server-level
    resource, so the data points instead carry a db.namespace attribute to identify the database. Without it
    relations that exist in more than one database (any system catalog, or user tables sharing a name) would
    collapse into a single series. Locks on shared system catalogs carry an empty db.namespace, since they
    are server-scoped rather than database-scoped.
    The lock count now uses COUNT(*) instead of COUNT(pid), so locks held by prepared transactions
    (which have a NULL pid in pg_locks) are counted instead of being reported as zero.
    The metric is disabled by default and has development stability, so no feature gate is provided for this
    behavior change.

🚩 Deprecations 🚩

  • exporter/mezmo: Deprecate the mezmo exporter (#49953)
    Mezmo now supports ingesting OpenTelemetry data directly via OTLP. Use the OTLP/HTTP
    exporter instead. See https://docs.mezmo.com/telemetry-pipelines/otel-collector and
    https://docs.mezmo.com/telemetry-pipelines/open-telemetry-source for migration guidance.

  • processor/alibabaecsdetector: Deprecate per-detector fail_on_missing_metadata in the alibaba_ecs detector config (#46579)
    Use the top-level fail_on_missing_metadata in the processor config instead.
    The field continues to work but will emit a deprecation warning in the logs when set and
    code will be removed later.

  • processor/delta_to_cumulative: Rename the 'deltatocumulative' processor to 'delta_to_cumulative'. The old 'deltatocumulative' type remains available as a deprecated alias. (#45339)

  • processor/delta_to_rate: Rename the 'deltatorate' processor to 'delta_to_rate'. The old 'deltatorate' type remains available as a deprecated alias. (#45339)

  • processor/novadetector: Deprecate per-detector fail_on_missing_metadata in the nova (OpenStack) detector config (#46579)
    Use the top-level fail_on_missing_metadata in the processor config instead.
    The field continues to work but will emit a deprecation warning in the logs when set and
    code will be removed later.

  • processor/resource_detection: Deprecate per-detector fail_on_missing_metadata in the ec2 detector config (#46579)
    Use the top-level fail_on_missing_metadata in the processor config instead.
    The field continues to work but will emit a deprecation warning in the logs when set and
    code will be removed later.

  • processor/tencentcvmdetector: Deprecate per-detector fail_on_missing_metadata in the tencent_cvm detector config (#46579)
    Use the top-level fail_on_missing_metadata in the processor config instead.
    The field continues to work but will emit a deprecation warning in the logs when set and
    code will be removed later.

  • processor/upclouddetector: Deprecate per-detector fail_on_missing_metadata in the upcloud detector config (#46579)
    Use the top-level fail_on_missing_metadata in the processor config instead.
    The field continues to work but will emit a deprecation warning in the logs when set and
    code will be removed later.

  • processor/vultrdetector: Deprecate per-detector fail_on_missing_metadata in the vultr detector config (#46579)
    Use the top-level fail_on_missing_metadata in the processor config instead.
    The field continues to work but will emit a deprecation warning in the logs when set and
    code will be removed later.

🚀 New components 🚀

  • extension/aws_iam_db_auth: Add an extension awsiamdbauthextension that implements dbauth. (#49044)
  • receiver/dns_check: Add initial skeleton of DNS Check receiver (README, config, factory, metadata) with In Development stability. (#49561)

💡 Enhancements 💡

  • exporter/datadog: Add exporter.datadogexporter.AddUnits feature gate that maps OTLP (UCUM) metric units to their Datadog equivalents. (#15280)
  • exporter/elasticsearch: Allow traces, profiles, and synthetics as valid data_stream.type values when overriding via attributes in bodymap mapping mode, in addition to the existing logs and metrics. (#49337)
  • exporter/prometheus_remote_write: Add convert_explicit_histograms_to_nhcb to convert explicit-bucket (classic) histograms into Native Histograms with Custom Buckets (NHCB) on export, with keep_classic_histograms to emit both representations during migration. (#33661)
    When convert_explicit_histograms_to_nhcb is set, ...
Read more

v0.157.0

Choose a tag to compare

@github-actions github-actions released this 21 Jul 15:13
89e4355

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

End User Changelog

🛑 Breaking changes 🛑

  • connector/failover: Remove deprecated field retry_gap and max_retries (#49583)

  • connector/routing: Promote the connector.routing.defaultErrorModeIgnore feature gate to beta. The default error_mode is now ignore instead of propagate. (#48418)
    To restore the previous default of propagate, run the collector with the feature gate disabled by passing --feature-gates=-connector.routing.defaultErrorModeIgnore.

  • processor/aws_ecs_attributes: Rename the component identifier from awsecsattributes to aws_ecs_attributes to follow the component naming guidelines. (#44476)
    The processor is still in development, so the old identifier is removed rather than kept as a deprecated alias.

  • processor/filter: Promote the processor.filter.defaultErrorModeIgnore feature gate to stable. The default top-level error_mode is now permanently ignore instead of propagate. (#47232)
    The gate will be removed in v0.159.0.

  • processor/tail_sampling: Fix metric units to comply with the UCUM specification (#49453)

  • processor/transform: Promote the processor.transform.defaultErrorModeIgnore feature gate to stable. The default top-level error_mode is now permanently ignore instead of propagate. (#47231)
    The gate will be removed in v0.159.0.

  • receiver/apache_spark: Fix metric units to comply with the UCUM specification (#49453)

  • receiver/chrony: Fix metric units to comply with the UCUM specification (#49453)

  • receiver/haproxy: Fix metric units to comply with the UCUM specification (#49453)

  • receiver/host_metrics: Make the cpu attribute opt-in for hostmetrics CPU time and utilization metrics. (#49161)
    By default, system.cpu.time and system.cpu.utilization are now aggregated across logical CPUs and no longer include the cpu attribute.
    To restore the previous per-logical-CPU output, configure:

    receivers:
      hostmetrics:
        scrapers:
          cpu:
            metrics:
              system.cpu.time:
                attributes: [cpu, state]
              system.cpu.utilization:
                attributes: [cpu, state]
  • receiver/host_metrics: Enable the system.cpu.logical.count metric by default in the CPU scraper. (#49325)
    To restore the previous behavior, disable the new metric by applying the following config:

    receivers:
      host_metrics:
        scrapers:
          cpu:
            metrics:
              system.cpu.logical.count:
                enabled: false
  • receiver/memcached: Fix metric units to comply with the UCUM specification (#49453)

  • receiver/mongodb: Fix metric units to comply with the UCUM specification (#49453)

  • receiver/nginx: Fix metric units to comply with the UCUM specification (#49453)

  • receiver/nsxt: Fix metric units to comply with the UCUM specification (#49453)

  • receiver/redfish: Fix metric units to comply with the UCUM specification (#49453)

  • receiver/splunk_enterprise: Fix metric units to comply with the UCUM specification (#49453)

  • receiver/sqlserver: Fix metric units to comply with the UCUM specification (#49453)

  • receiver/sqlserver: Change sqlserver.lock.timeout.rate to emit per-type data points (#48925)
    sqlserver.lock.timeout.rate now requires a sqlserver.lock.timeout.type attribute
    (all, nonzero) and emits one data point per type. Users who enable this metric
    will receive two data points per scrape instead of one. The metric stays
    enabled: false and stability: development.

🚩 Deprecations 🚩

  • all: Remove JMX receiver code (#45740)
  • processor/cumulative_to_delta: Rename the 'cumulativetodelta' processor to 'cumulative_to_delta'. The old 'cumulativetodelta' type remains available as a deprecated alias. (#45339)
  • processor/span_pruning: Rename spanpruning processor to span_pruning and add deprecated alias spanpruning (#47590)

🚀 New components 🚀

  • config/configdbauth: Add config for dbauth, so components can use this in the config to support databasee authentication like AWS IAM. (#49044)
  • extension/dbauth: Add extension interface for dbauth. (#49044)

💡 Enhancements 💡

  • cmd/opampsupervisor: Include recent Collector log output when the Supervisor reports that the Collector crashed (#44836, #40173, #21079)
    When a Collector process exits unexpectedly, the Supervisor now can add the relevant
    tail of the Collector logs to the health and remote config failure messages sent
    to the OpAMP server. This helps operators understand why a remote config failed
    without first logging into the host to inspect agent.log. This behavior is
    disabled by default; set agent::collector_crash_log_snippet_kib to a positive
    KiB count, such as 4, up to 1024 (1 MiB) to enable it.

  • cmd/opampsupervisor: Add support for restoring the last working remote configuration when an incoming remote configuration fails to apply (#47192)
    This behavior is controlled under the configuration option agent.automatic_config_rollback.
    When an old remote configuration is restored, the agent will report an "applied" status again
    for this configuraiton.

  • exporter/clickhouse: Updates the metrics tables default schemas (#49438)
    Reduces Primary Key memory usage and colocates metrics by time more effectively

  • exporter/datadog: Add datadog.serializerexporter.UseSyncForwarder feature gate (Alpha, disabled by default) that replaces the async DefaultForwarder with a synchronous forwarder so metric send failures are surfaced to OTel's exporterhelper retry/queue layer. (#49571)
    When enabled via --feature-gates=+datadog.serializerexporter.UseSyncForwarder, the metric serializer
    exporter path gains three improvements over the legacy async forwarder:

    1. Error propagation: Datadog intake errors (5xx → retryable, 4xx → permanent drop) are returned
      from ConsumeMetrics instead of being silently swallowed. otelcol_exporter_send_failed_metric_points
      now accurately reflects failures.

    2. OTel-native retry: Because errors are propagated, the configured retry_on_failure policy is
      respected. Transient 5xx errors are retried by exporterhelper rather than lost.

    3. Queue-overflow visibility: When the OTel sending queue fills up (workers blocked on slow/failed
      intake calls), otelcol_exporter_enqueue_failed_metric_points increments instead of metrics being
      silently dropped inside the DefaultForwarder's internal queue.

    Note: retry_on_failure config now also takes effect on the serializer exporter path (previously it
    was wired as disabled regardless of user config).
    See DataDog/datadog-agent#51333.

  • exporter/elasticsearch: Add retry::retry_on_document_status to configure document-level retry status codes separately from request-level retries. (#48681)

  • exporter/kafka: Add exporter.kafka.useRequestType alpha feature gate that routes all signals through a custom exporterhelper.Request (#48090)
    When the gate is enabled, traces, metrics, logs, and profiles all convert
    pdata into Kafka records at request-creation time and use a custom
    Request for queue/batch sizing. queue_batch.sizer: items then counts
    Kafka records, not OTLP items. The persistent queue (sending_queue.storage)
    is not supported with this gate; configuring both produces an error at
    startup. Default OFF.

  • exporter/opensearch: Add mapping.manage_index_template option for otel-v1 mode that creates the matching composable index templates on startup. (#48585)
    When enabled, the exporter creates the otel-v1-apm-span-index-template and otel-v1-logs-index-template composable index templates idempotently on startup, materializing date_nanos timestamp fields and the typed dynamic-attribute mappings before documents are indexed. If templates with the same names already exist (for example, user-customized variants), they are left in place rather than overwritten. Only valid with mapping.mode: otel-v1; validation rejects the combination with other modes.

  • exporter/signalfx: Translate cpu.num_processors from system.cpu.logical.count. (#49296)
    The exporter no longer derives cpu.num_processors by counting per-core system.cpu.time series.

  • exporter/signalfx: Simplify system.cpu default translations now that hostmetrics CPU metrics are state-aggregated by default. (#49589)
    The default translations no longer aggregate translated CPU metrics across the cpu attribute. If that attribute is explicitly re-enabled on system.cpu.time, translated cpu.* and cpu.utilization datapoints keep it.

  • exporter/signalfx: Export system.cpu.time and system.disk.io by default (#49738)

  • extension/google_cloud_logentry_encoding: Add feature gate to stop emitting deprecated rpc.jsonrpc.error_code and rpc.jsonrpc.error_message attributes (#22095)
    The feature gate extension.encoding.googlecloudlogentryencoding.DontEmitV0RPCConventions
    (disabled by default) allows users to opt out of the deprecated semconv v1.38.0 attributes.
    The new attribute rpc.response.status_code is always emitted regardless of the gate.

  • extension/oidc: Add ignore issuer in config for single provider setup and propagate it to go-oidc. (#46791)

  • pkg/coreinternal: Migrate semantic conventions from v1.19.0 to v1.40.0 (#45294)

  • pkg/experimentalmetricmetadata: Add feature-gated support for emitting entity events using the OpenTelemetry entity events specification log record format. (#49667)

  • pkg/ottl: Add the When OTTL converter for selecting a value based on a lambda condition. (#49356)

  • pkg/ottl: Add the MapKeys OTTL converter for transforming m...

Read more

v0.156.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 11:37
v0.156.0
41e24cd

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

End User Changelog

🛑 Breaking changes 🛑

  • 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
      ...
Read more