Releases: open-telemetry/opentelemetry-collector-contrib
v0.152.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
Unmaintained Components
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
- receiver/huaweicloudces
- exporter/alibabacloudlogservice
End User Changelog
🛑 Breaking changes 🛑
connector/span_metrics: Promoteconnector.spanmetrics.includeCollectorInstanceIDfeature gate to beta. (#40400)
Adds acollector.instance.idattribute to all metrics emitted by the spanmetrics connector.pkg/coreinternal: Promote internal.coreinternal.goldendataset.DontEmitV0NetworkConventions and internal.coreinternal.goldendataset.EmitV1NetworkConventions feature gates to Beta (#46680)
Both feature gates should be promoted together as per RFC.pkg/coreinternal: Promote internal.coreinternal.goldendataset.DontEmitV0RPCConventions and internal.coreinternal.goldendataset.EmitV1RPCConventions feature gates to Beta (#46680)processor/tail_sampling: Stabilizedisableinvertdecisionsfeature gate. (#47650)receiver/kafka_metrics: Promote thereceiver.kafkametricsreceiver.UseFranzGofeature gate to stable (#41480)
The franz-go client is now the only implementation; the gate is now permanently enabled and will be removed in v0.154.0.
The Sarama-based implementation has been removed.
🚩 Deprecations 🚩
connector/otlp_json: Rename component type fromotlpjsontootlp_jsonto follow snake_case naming convention. The old name is kept as a deprecated alias. (#48019)connector/round_robin: Rename component type fromroundrobintoround_robinto follow snake_case naming convention. The old name is kept as a deprecated alias. (#48021)connector/slow_sql: Rename component type fromslowsqltoslow_sqlto follow snake_case naming convention. The old name is kept as a deprecated alias. (#48020)exporter/bmc_helix: Rename exporter type frombmchelixtobmc_helix(#45339)extension/kafkatopics_observer: Deprecate the kafkatopicsobserver extension in favor of using kafkareceiver directly (#48186)processor/metrics_transform: Rename processor type frommetricstransformtometrics_transform(#45339)receiver/aws_lambda: Rename awslambda receiver to use lower_snake_case nameaws_lambda. (#45339)receiver/cloud_foundry: Rename receiver type fromcloudfoundrytocloud_foundry(#45339)receiver/google_cloud_spanner: Rename receiver type fromgooglecloudspannertogoogle_cloud_spanner(#45339)receiver/kafka_metrics: Renamekafkametricsreceiver tokafka_metricswith deprecated aliaskafkametrics(#45339)receiver/kubelet_stats: Rename receiver type fromkubeletstatstokubelet_stats(#45339)receiver/tcp_check: Renametcpcheckreceiver totcp_checkwith deprecated aliastcpcheck(#45339)
🚀 New components 🚀
extension/mcp: Add new MCP server extension component. (#48072)processor/cardinality_guardian: Add cardinalityguardianprocessor. (#47368)processor/genainormalizer: Add a processor that normalizes GenAI telemetry attributes from OpenInference and OpenLLMetry to the official OTel GenAI Semantic Conventions. (#46069)
💡 Enhancements 💡
-
all: Support building with AIX (#47010) -
cmd/opampsupervisor: Add support for declarativetelemetry.resourceconfiguration while preserving legacy inline resource attributes (#45116)
cmd/opampsupervisornow accepts typed telemetry resource configuration,
including declarative resource attributes and detectors, and validates
unsupported mixed or deprecated forms.
Example:
telemetry:
resource:
attributes:
- name: service.name
value: opamp-supervisor -
exporter/datadog: Add Kubernetes host alias provider to datadog exporter. (#47199)
In Kubernetes environments, the Datadog exporter now automatically addsnodeName-clusterNameas a
host alias in the host metadata payload. Both the node name and cluster name must be discoverable for the alias to
be added; the cluster name is resolved from cloud provider metadata (Azure, EC2, or GCP). -
exporter/elasticsearch: Add ability to set filter_path in Elasticsearch exporter via the bulk_response_filter_path option. (#47204) -
exporter/file: Allow usage of append mode with zstd compression (#44382) -
exporter/kafka: Allow record_headers to accept multiple headers with the same key. (#48092) -
exporter/loadbalancing: Add stable attribute routing key encoding for traces and metrics in the loadbalancing exporter (#46094, #46095)
Routing keys now encode attributes asname=value|segments, including explicit markers for missing attributes.
Non-string attribute values are deterministically stringified and used consistently across traces and metrics. -
exporter/opensearch: specify an ingest pipeline to be used before writing documents (#47227)
Thepipelineoption allows to specify an existing ingest pipeline that should process incoming documents.
If the ingest pipeline does not exist, ingestion will fail. -
extension/aws_logs_encoding: Populate ECS fields from VPC Flow Logs as log record attributes (#38861)
Previously, VPC flow log fields prefixed withecs-were skipped with a warning.
They are now mapped toaws.ecs.*attributes on the emitted log record. -
extension/bearertokenauth: Update token file parsing to ignore everything after the first whitespace, allowing for inline comments. (#46100) -
extension/cgroup_runtime: Expose refresh_interval for GOMEMLIMIT to support dynamic memory limits. (#46768) -
extension/docker_observer: Addinclude_all_containersoption to emit a port-less endpoint for every running container, including those with no exposed ports. (#48252)
When enabled, the observer emits acontainerendpoint with no port
information for every running container, alongside any per-port endpoints.
This allowsreceiver_creatorrules oftype == "container"to attach
receivers to every container regardless of whether it exposes ports.
Defaults tofalsefor backwards compatibility. -
extension/kafkatopics_observer: Switch to the franz-go client. (#48169)
This is another step towards consolidating on franz-go for all Kafka components.
We have already switched the receiver and exporter, and they are working well. -
extension/mcp: Register available tools with MCP server. (#48103) -
extension/pebble_tail_storage: Add initial implementation of the Pebble tail storage extension. (#47916) -
pkg/faro: Emitk6_testRunIdin the log body whenmeta.k6.testRunIdis present in the Faro payload. (#47935)
Surfaces the k6 test run identifier that the Faro Web SDK already
forwards fromwindow.k6.testRunId, alongside the existing
k6_isK6Browserkey. The reverse (logs -> Faro) translator extracts
it back intoMeta.K6.TestRunIDfor round-trip parity. -
pkg/pdatatest: Introduce pmetrictest.ValidateMetrics to strictly validate duplicate datapoint identities. (#48106) -
processor/attributes: Added support for default values in the attributes processor. (#45352)
This enhancement allows users to specify default values for attributes in the attributes processor.
If the primary value source (e.g., environment variable, attribute, or context value) is not available,
the default value will be used. This ensures that the pipeline doesn't fail due to missing configuration. -
processor/drain: Add drain processor to k8s distribution. (#47235) -
processor/k8s_attributes: Improve deployment name extraction heuristic when deployment_name_from_replicaset is enabled (#44831)
Whendeployment_name_from_replicasetis true and the ReplicaSet informer is not used for deployment names only,
the processor derivesk8s.deployment.nameusing the pod-template-hash label and ReplicaSet naming rules.
When a ReplicaSet informer is running (for example fork8s.deployment.uid), API-backed metadata takes precedence,
independent of thedeployment_name_from_replicasetsetting. -
processor/k8s_attributes: Addwatch_sync_periodconfig option to configure informer cache resync period. (#48111)
Thewatch_sync_periodconfig option defaults to5mto match the previously hardcoded behavior. -
processor/k8s_attributes: Use PartialObjectMetadata for non-Pod informers (#47389)
Switch Namespace, Node, Deployment, StatefulSet, DaemonSet, and Job informers
from full typed objects to PartialObjectMetadata via the metadata client.
These resources only need labels, annotations, UID, name, and owner references—all available
in object metadata—so fetching full spec/status is unnecessary overhead.Pods continue using full objects since they require spec/status
fields (pod IP, node name, containers, host network). -
processor/resource: Added support for default values in the resource processor. (#45352)
This enhancement allows users to specify default values for attributes in the resource processor.
If the primary value source (e.g., environment variable, attribute, or context value) is not available,
the default value will be used. This ensures that the pipeline doesn't fail due to missing configuration. -
processor/schema: Add internal metrics for schema translation skip rate and cache hit/miss (#47638)
Five new metrics are emitted via the collector's internal telemetry:- otelcol_processor_schema_logs.skipped
- otelcol_processor_schema_metrics.sk...
v0.151.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
all: Removed DNS lookup processor skeleton. (#47874) -
connector/datadog: Remove stable feature gateconnector.datadogconnector.NativeIngest(#47580) -
exporter/datadog: Remove stable feature gatesexporter.datadogexporter.UseLogsAgentExporterandexporter.datadogexporter.metricexportnativeclient(#47583) -
exporter/signalfx: Defaultapi_urlandingest_urlvalues derived fromrealmnow use*.observability.splunkcloud.cominstead of*.signalfx.com. (#47670)
Explicitapi_urlandingest_urlsettings are unchanged. Update network allowlists if they targeted only*.signalfx.com. -
exporter/splunk_hec: Remove deprecatedbatcherconfig field. Usesending_queue::batchinstead. (#47737) -
extension/jaegerremotesampling: Remove replaceThriftWithProto feature gate. (#47553) -
pkg/translator/prometheus: Removespkg.translator.prometheus.NormalizeNamefeature gate which has been stable for some time. (#47597) -
pkg/zipkin: Promote "pkg.translator.zipkin.DontEmitV0NetworkConventions" and "pkg.translator.zipkin.EmitV1NetworkConventions" feature gates to Beta. (#46682)
This changes the default behavior to emit the new semantic convention attributes instead of the old deprecated ones.
The Zipkin translator will now usenetwork.local.address(replacingnet.host.ip),network.peer.address(replacingnet.peer.ip),
andservice.peer.name(replacingpeer.service) by default when emitting spans. -
processor/k8s_attributes: Disable otelcol.k8s.pod.association metric until pod_identifier attribute is properly calculated (#47669) -
receiver/jaeger: StabilizeDisableRemoteSamplingfeature gate which has been in beta for over 2 years. (#47599) -
receiver/prometheus: Removereceiver.prometheusreceiver.EnableNativeHistograms,receiver.prometheusreceiver.RemoveStartTimeAdjustmentandreceiver.prometheusreceiver.UseCreatedMetricfeature gates. (#40606) -
receiver/prometheus: Removes the feature gatereceiver.prometheusreceiver.RemoveLegacyResourceAttributeswhich has been stable for some time. (#47598)
🚩 Deprecations 🚩
connector/service_graph: Rename component type fromservicegraphtoservice_graphto follow snake_case naming convention. The old name is kept as a deprecated alias. (#47971)connector/span_metrics: Rename component type fromspanmetricstospan_metricsto follow snake_case naming convention. The old name is kept as a deprecated alias. (#47963)exporter/honeycomb_marker: Rename exporter type fromhoneycombmarkertohoneycomb_marker(#45339)exporter/prometheusremotewrite:add_metric_suffixesis deprecated. Usetranslation_strategy: UnderscoreEscapingWithoutSuffixesif you are setting this to false. (#33661)extension/aws_logs_encoding: Deprecates transparent gzip decompression in aws_logs_encoding and clarifies that callers must decompress payloads before invoking the streaming decoder. (#46463)processor/log_dedup: Rename processor type fromlogdeduptolog_dedup(#45339)receiver/file_stats: Renamefilestatsreceiver tofile_statswith deprecated aliasfilestats(#45339)receiver/fluent_forward: Rename receiver type fromfluentforwardtofluent_forward(#45339)receiver/host_metrics: Renamehostmetricsreceiver tohost_metricsand add deprecated aliashostmetrics(#45449)receiver/k8s_objects: Rename k8sobjects receiver to k8s_objects and add deprecated alias k8sobjects. (#47440)receiver/ssh_check: Renamesshcheckreceiver tossh_checkwith deprecated aliassshcheck(#45339)
🚀 New components 🚀
-
extension/pebble_tail_storage: First PR for new Pebble tail storage extension (#47916) -
processor/drain: Add drain processor that applies the Drain log clustering algorithm to annotate log records with a derived template string. (#47235)
The processor setslog.record.template(e.g."user <*> logged in from <*>") on each log record.
Downstream processors such as the filter processor can act on this attribute to, for example, drop
entire classes of noisy logs by template string.Key features:
- Configurable Drain parse tree parameters (depth, similarity threshold, max clusters with LRU eviction)
- Optional seeding via known template strings or example log lines for stable templates across restarts
passthroughwarmup mode (default) andbufferwarmup mode that holds records until the tree has stabilized- Internal telemetry metrics: active cluster count gauge, annotated and unannotated record counters
-
receiver/azure_functions: Initial implementation of the Azure Functions receiver to ingest logs from Azure Functions triggered by Event Hub. (#43507)
💡 Enhancements 💡
-
cmd/telemetrygen: Add new--timeoutflag to set timeout for telemetrygen calls (#47203) -
exporter/awss3: Add support for retry_on_failure (#47592) -
exporter/azure_blob: Add sending_queue and timeout support (#47654)
The azureblobexporter now supports sending_queue (with persistent storage, batching, and consumer configuration) and timeout configuration, matching the awss3exporter pattern. -
exporter/clickhouse: Update the default logs table schema with an improved ORDER BY, materialized k8s/deployment attribute columns, and automatic ClickHouse 26.2+ full text search index selection. (#47720)
The logs table DDL now usesORDER BY (toStartOfFiveMinutes(Timestamp), ServiceName, Timestamp)and includes a set of
materialized__otel_materialized_*columns for common k8s/deployment resource attributes.
When connecting to ClickHouse 26.2+, the exporter createsTYPE text()indexes for full text search on attributes and body;
on older versions it falls back tobloom_filter/tokenbf_v1indexes. Existing tables are not modified
(CREATE TABLE IF NOT EXISTS), and the INSERT path remains compatible with both the old and new schemas. -
exporter/datadog: Includeservice.instance.idin OTLP resource attribute to Datadog metric tag mapping so it is sent as a metric tag by default. (#47936)
service.instance.idis required to enable OTel traffic metrics on Datadog Fleet Automation.
This change adds it to coreMapping so it is emitted as a Datadog metric tag when converting OTLP resource attributes. -
exporter/elasticsearch: Refactor profiles attribute handling (#47801)
The Profiles signal changed the handling of attributes and moved resource attributes from Sample
to ResourceProfiles. Refactor attribute handling in elasticsearch exporter to reflect this change. -
exporter/prometheusremotewrite: Add support for translation_strategy, which supports UnderscoreEscapingWithSuffixes, UnderscoreEscapingWithoutSuffixes, NoUTF8EscapingWithSuffixes, and NoTranslation. (#33661) -
exporter/prometheusremotewrite: Add support for exemplar labels when using PRW 2.0 (#33661) -
exporter/signalfx: Add support for PersistentVolume and PersistentVolumeClaim entity property updates. (#47829)
Handle k8s.persistentvolume and k8s.persistentvolumeclaim entities in both the
metadata update and entity events paths. Label prefix stripping is skipped for
these entities to preserve full property key names. -
exporter/signalfx: APM correlation now recognizesdeployment.environment.namein addition to the deprecateddeployment.environmentattribute (#47862) -
extension/aws_logs_encoding: Migrate CloudTrail log semconv RPC attributes from v1.38.0 to v1.40.0 via feature gates (#47549) -
extension/aws_logs_encoding: Added auto-detection support for AWS Transit Gateway flow logs (#46229)
The VPC flow log unmarshaler now automatically detects and handles Transit Gateway (TGW) flow logs from S3.
Detection is based on the presence of the "resource-type" field in log file headers.
TGW-specific fields (tgw-src-vpc-id, tgw-dst-vpc-id, etc.) are now supported and mapped to appropriate attributes.
No configuration changes required - auto-detection works with default vpcflow format settings. -
extension/azure_encoding: Add encoding.format scope attribute for metrics based on Azure resource provider (#47537) -
extension/azure_encoding: Migrate semantic conventions to v1.40.0 (#47543) -
extension/health_check: Enable keep-alives for the health check extension's HTTP and gRPC servers. (#45837) -
pkg/coreinternal: Migrate semantic conventions to v1.40.0 (#47548) -
pkg/faro: Translate new Faro payload fields Meta.Device, Meta.OS, App.InstallationID, and Exception.Fatal. (#47708) -
pkg/ottl: Enhanced ParseSimplifiedXML by limiting the maximum XML nesting depth. (#47851) -
pkg/ottl: Enhanced ConvertTextToElementsXML function by limiting the maximum XML nesting depth. (#47873) -
pkg/ottl: Enhanced XML parsing by limiting the maximum XML nesting depth. (#47766) -
pkg/ottl: Added debug-level logging when functions truncate or discard attributes (#9730)
Added logging to thetruncate_allandlimitfunctions for each record that had attributes truncated or discarded, as per the OpenTelemetry specification on attribute limits -
pkg/stanza: Timestamp operator - Add support for multiple timezone parsing (#47594) -
pkg/zipkin: Migrate semantic conventions to v1.40.0 (#47545) -
processor/drain: Promote Drain Processor from development to alpha stability and add to contrib distribution. (#47235) -
processor/k8s_attributes: Allow k8sattributes processors to be shared between pipelines (#36234)
When the processor.k8sattributes.ShareProcessorBetweenPipelines feature flag is enabled, k8sattributes processors
using the same configuration are shared between pipelines. This reduces the local cache size and the number of
c...
v0.150.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
Unmaintained Components
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
End User Changelog
🛑 Breaking changes 🛑
-
pkg/ottl: Return errors when OTTL context accessors receive values of the wrong type (part 2) (#40198)
Setters in OTTL contexts now validate that values are of the expected type and return
descriptive errors when type mismatches occur. This is the continuation of work done in
#43505, addressing remaining contexts: datapoint, profile, profilesample, resource, span,
and spanevent.Changes include:
- Slice setters (explicit_bounds, bucket_counts, positive.bucket_counts, negative.bucket_counts)
now use SetCommonTypedSliceValues/SetCommonIntSliceValues for better type handling. - SetMap now returns an error for invalid value types instead of silently ignoring them.
Note: Users may see new errors from OTTL statements that were previously silently failing
due to type mismatches. These errors indicate pre-existing issues in OTTL configurations that
were not being applied as expected. - Slice setters (explicit_bounds, bucket_counts, positive.bucket_counts, negative.bucket_counts)
-
processor/resourcedetection: Remove feature gate processor.resourcedetection.propagateerrors (#45853) -
processor/transform: Remove theprocessor.transform.ConvertBetweenSumAndGaugeMetricContextfeature gate. (#47358)
This feature gate has been stable for over a year and is no longer used in any code paths. -
receiver/k8s_cluster: Kubernetes resource labels in entity events are now prefixed per OTel semantic conventions. (#47491)
Labels on Kubernetes resources emitted as entity event attributes are now prefixed with
k8s.<resource>.label.to align with OTel semantic conventions (e.g.k8s.pod.label.<key>,
k8s.node.label.<key>,k8s.deployment.label.<key>, etc.).
Previously, label keys were emitted verbatim without any prefix.
Users consuming entity event attributes by label key will need to update their configurations. -
receiver/kubeletstats: Disable deprecated resource attributes by default (#47184)
The following resource attributes are deprecated and will now be disabled by default:
aws.volume.id,fs.type,gce.pd.name,glusterfs.endpoints.name,glusterfs.path, andpartition.
All of these attributes will be removed in a future release.
🚩 Deprecations 🚩
receiver/http_check: Renamehttpcheckreceiver tohttp_checkwith deprecated aliashttpcheck(#45339)receiver/named_pipe: Renamenamedpipereceiver tonamed_pipewith deprecated aliasnamedpipe. (#45339)receiver/tcp_log: Renametcplogreceiver totcp_logwith deprecated aliastcplog(#45339)receiver/tls_check: Renametlscheckreceiver totls_checkwith deprecated aliastlscheck(#45339)receiver/udp_log: Renameudplogreceiver toudp_logwith deprecated aliasudplog(#45339)receiver/windows_event_log: Renamewindowseventlogreceiver towindows_event_logwith deprecated aliaswindowseventlog(#45339)
🚀 New components 🚀
exporter/google_secops: Add Google SecOps exporter for sending logs to the Google SecOps (Chronicle) Ingestion APIs. (#46148)processor/spanpruning: Add span pruning processor for aggregating repetitive leaf spans in trace data. (#45654)receiver/osquery: Implement osquery query scraping (#30375)
💡 Enhancements 💡
-
exporter/datadog: Promoteexporter.datadogexporter.DisableAllMetricRemappingfeature gate to beta. (#47212)- All metrics remappings are now handled by the Datadog backend and this should be a transparent change. If you run into any issues, please disable the feature gate by passing
--feature-gates=-exporter.datadogexporter.DisableAllMetricRemappingand reach out to Datadog support (https://www.datadoghq.com/support/).
- All metrics remappings are now handled by the Datadog backend and this should be a transparent change. If you run into any issues, please disable the feature gate by passing
-
exporter/elasticsearch: Add suppress_conflict_errors config to optionally silence document level 409 version conflict logs (#47248) -
exporter/kafka: Addrecord_headersconfiguration option to set static headers on outgoing records (#47193) -
exporter/kafka: Add support for partitioning kafka records (#46931)
Add support for RoundRobin and LeastBackup partitioning strategies, as well as custom partitioners
provided by RecordPartitionerExtension implementations. Users can implement their own partitioning logic
and plug it into the kafka exporter via the RecordPartitionerExtension interface. -
exporter/prometheus: Exemplar support for exponential histograms in Prometheus exporter (#47159) -
exporter/prometheus: prevent panic on histogram with empty BucketCounts. (#47351)
Guard BucketCounts access with a length check in convertDoubleHistogram to avoid index-out-of-range panic when a histogram has explicit bounds but no corresponding bucket counts. -
exporter/signalfx: Adddimension_client::strip_k8s_label_prefixoption to stripk8s.<resource>.label.prefix from dimension property updates. (#47491)
The k8s cluster receiver now emits Kubernetes resource labels in entity events with the
k8s.<resource>.label.prefix per OTel semantic conventions (e.g.k8s.pod.label.app).
Whenstrip_k8s_label_prefix: true(the default), the SignalFx exporter strips this prefix
when forwarding labels as dimension properties, preserving the existing SignalFx behavior (e.g.app).
Setstrip_k8s_label_prefix: falseto disable stripping and receive the full prefixed keys. -
exporter/sumologic: Modify default retry settings to prevent dropping data on transient backend unavailability (#47503) -
extension/datadog: Addgateway_serviceandgateway_destinationconfig fields to support gateway topology view in Fleet Automation. (#47471)
Gateway collectors setgateway_serviceto the k8s Service fronting them.
Agent/daemonset collectors setgateway_destinationto the k8s Service they forward telemetry to.
Both fields are optional and omitted from the metadata payload when empty. -
extension/health_check: Migrate extension.healthcheck.useComponentStatus feature gate registration from manual code to metadata.yaml for mdatagen code generation (#46116) -
extension/sumologic: Adding support to sumologic extension for auto discovery of services in windows (#47349) -
pkg/ottl: Add Coalesce converter that returns the first non-nil value from a list of arguments. (#46847)
The Coalesce converter accepts a list of values and returns the first one that is not nil.
This simplifies common patterns where a canonical attribute must be resolved from multiple possible sources.
Example:set(attributes["user"], Coalesce([attributes["user.id"], attributes["enduser.id"], "unknown"])) -
pkg/stanza: Optimizing the performance of Windows Event log unmarshalling when raw = true (#47164) -
pkg/stanza: Add new scrape model for Windows event logs using an event-driven subscription instead of polling (#47091) -
pkg/stanza: Addon_truncateoption to fileconsumer to control behavior when a file's stored offset exceeds its current size. (#43693) -
processor/filter: Add feature gateprocessor.filter.defaultErrorModeIgnoreto change default error_mode to ignore (#47232) -
processor/interval: Flush remaining buffered metrics on shutdown to prevent data loss during restarts and rollouts. (#47238)
Previously, the interval processor would silently drop any metrics accumulated
in its buffer when receiving a shutdown signal. Now it flushes the buffer to
the next consumer before exiting, consistent with the batch processor behavior. -
processor/lookup: Add DNS lookup source and LRU caching (#46114)
Adds a DNS source that performs reverse DNS lookups (PTR records) to resolve IP addresses to hostnames.
Implements a full LRU cache with size-based eviction, TTL expiration, and negative caching.
The DNS source has caching enabled by default. -
processor/spanpruning: Add full implementation of the span pruning processor. (#45654) -
processor/tail_sampling: Add gated tail storage extension support to tailsampling processor via new tail_storage config (#45250)
Introduces a new tail storage interface with in-memory default behavior and allows extension-backed storage when
the processor.tailsamplingprocessor.tailstorageextension feature gate is enabled. -
processor/transform: Add feature gateprocessor.transform.defaultErrorModeIgnoreto change default error_mode to ignore (#47231) -
processor/transform: Add support for semantic conventions 1.38.0, 1.39.0, and 1.40.0 in theset_semconv_span_namefunction. (#45911)
Theset_semconv_span_namefunction now recognizes semantic conventions 1.38.0, 1.39.0, and 1.40.0, allowing span names to be determined using the latest rules. Support for therpc.system.nameattribute (introduced in 1.39.0) has been added so span names can reflect the new RPC system conventions. Backward compatibility is preserved: therpc.systemattribute remains supported. -
receiver/active_directory_ds: Enables dynamic metric reaggregation in the Active Directory Domain Services receiver. This does not break existing configuration files. (#46346) -
receiver/apachespark: Enable the re-aggregation feature for the apachespark receiver (#46349) -
receiver/awss3: add `tag_object_after_inge...
v0.149.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
exporter/elasticsearch: Removehost.os.typeencoding in ECS mode (#46900)
Use processor/elasticapmprocessor v0.36.2 or later forhost.os.typeenrichmentreceiver/prometheus: Remove the deprecatedreport_extra_scrape_metricsreceiver configuration option and obsolete extra scrape metric feature gates. (#44181)
report_extra_scrape_metricsis no longer accepted inprometheusreceiverconfiguration.
Control extra scrape metrics through the PromConfig.ScrapeConfigs.ExtraScrapeMetrics setting instead.
🚩 Deprecations 🚩
-
receiver/awsfirehose: Deprecate built-in unmarshalers (cwlogs, cwmetrics, otlp_v1) in favor of encoding extensions. (#45830)
Use the aws_logs_encoding extension (format: cloudwatch) instead of cwlogs,
and the awscloudwatchmetricstreams_encoding extension instead of cwmetrics (format: json)
or otlp_v1 (format: opentelemetry1.0). -
receiver/file_log: Renamefilelogreceiver tofile_logwith deprecated aliasfilelog(#45339) -
receiver/kafka: Deprecate the built-inazure_resource_logsencoding in favour ofazureencodingextension. (#46267)
The built-inazure_resource_logsencoding does not support all timestamp formats
emitted by Azure services (e.g. US-format timestamps from Azure Functions).
Users should migrate to theazureencodingextension,
which provides full control over time formats and is actively maintained.
💡 Enhancements 💡
-
cmd/opampsupervisor: Add configuration validation before applying remote config to prevent collector downtime (#41068)
Validates collector configurations before applying them, preventing downtime from invalid remote configs.
Disabled by default. Enable viaagent.validate_config: true. May produce false positives when resources
like ports are temporarily unavailable during validation. -
connector/datadog: Document datadog connector is not supported in aix environments (#47010)
Explicitly opt out of host metadata computation in datadog components to support AIX compilation target. -
connector/signal_to_metrics: Addkeys_expressionsupport ininclude_resource_attributesandattributesfor dynamic attribute key resolution at runtime (#46884)
Thekeys_expressionfield allows specifying an OTTL value expression that resolves to a list
of attribute keys at runtime. This enables dynamic resource attribute filtering based on runtime
data such as client metadata. Exactly one ofkeyorkeys_expressionmust be set per entry. -
connector/signal_to_metrics: Reduce per-signal allocations in the hot path by replacing attribute map allocation with a pooled hash-based ID check, and caching filtered resource attributes per metric definition within each resource batch. (#47197) -
connector/signal_to_metrics: Pre-compute prefixed collector key to avoid a string allocation on every signal processed. (#47183)
Pre-computing the collector key avoids a string allocation on every signal processed. -
exporter/datadog: Document datadog exporter is not supported in aix environments (#47010)
Explicitly opt out of host metadata computation in datadog components to support AIX compilation target. -
exporter/elasticsearch: Addhistogram:rawmapping hint to bypass midpoint approximation for histogram metrics (#47150) -
exporter/elasticsearch: Cache metric attribute set per bulk session instead of recomputing it for every document (#47170)
syncBulkIndexerSession.Add()was callinggetAttributesFromMetadataKeys+
attribute.NewSet+metric.WithAttributeSeton every document in the hot path. The attribute set is
derived from the request context metadata, which is constant for the lifetime of a session, so it is
now computed once inStartSessionand reused across allAdd()calls in that session. -
exporter/elasticsearch: populate _doc_count field in ECS mapping mode (#46936)
_doc_count is a special metadata field in Elasticsearch used when a document represents pre-aggregated data (like histograms or aggregate metrics).
Currently, elasticsearchexporter only populates this field for otel mapping mode (native otel field structure). This change
adds support for ECS mapping mode (native ECS field structure) so that we have consistent behavior for both mapping modes. -
exporter/elasticsearch: Encoderequire_data_streamin Elasticsearch bulk action metadata instead of the bulk request query string. (#46970)
This preserves existing endpoint query parameters while movingrequire_data_stream
to the per-document action line expected by newer bulk workflows. Benchmarks show
a stable ~27 bytes/item NDJSON payload overhead before compression. -
exporter/elasticsearch: Improve performance of Elasticsearch exporter document serialisation (#47171) -
exporter/elasticsearch: Add metric for docs retried because of request errors (#46215) -
exporter/kafka: Cache OTel metric attribute sets in OnBrokerE2E hook to reduce per-export allocations (#47186)
OnBrokerE2Epreviously rebuiltattribute.NewSet+metric.WithAttributeSeton every
call. The set of distinct (nodeID, host, outcome) combinations is bounded by
2 × number-of-brokers, so the computedMeasurementOptionis now cached per key. -
exporter/pulsar: This component does not support aix/ppc64. (#47010)
Make the exporter explicitly panic if used in aix/ppc64 environments. -
extension/datadog: Document datadog extension is not supported in aix environments (#47010)
Explicitly opt out of host metadata computation in datadog components to support AIX compilation target. -
extension/db_storage: Make dbstorage work in AIX environments (#47010)
sqlite support is offered via modernC, which doesn't support the AIX ppc64 compilation target.
We carve out support for sqlite in AIX environments so contrib can compile for this compilation target. -
extension/health_check: Add component event attributes to serialized output. (#43606)
Whenhttp.status.include_attributesis enabled in the healthcheckv2 extension (withuse_v2: true),
users will see additional attributes in the status output. These attributes provide more
context about component states, including details like error messages and affected components.
For example:{ "healthy": false, "status": "error", "attributes": { "error_msg": "not enough permissions to read cpu data", "scrapers": ["cpu", "memory", "network"] } } -
extension/healthcheckv2: Add component event attributes to serialized output. (#43606)
Whenhttp.status.include_attributesis enabled in the healthcheckv2 extension (withuse_v2: true),
users will see additional attributes in the status output. These attributes provide more
context about component states, including details like error messages and affected components.
For example:{ "healthy": false, "status": "error", "attributes": { "error_msg": "not enough permissions to read cpu data", "scrapers": ["cpu", "memory", "network"] } } -
extension/sigv4auth: Add support for External IDs when assuming roles in cross-account authentication scenarios (#44930)
Added external_id field to the AssumeRole configuration, allowing users to specify
an External ID when assuming roles for enhanced cross-account security. -
internal/datadog: Do not compute host metadata in AIX environments (#47010)
Explicitly opt out of host metadata computation in datadog components to support AIX compilation target. -
pkg/stanza: Ensure router operator does not split batches of entries (#42393) -
pkg/stanza: Parse all Windows Event XML fields into the log body, including RenderingInfo (with Culture, Channel, Provider, Task, Opcode, Keywords, Message), UserData, ProcessingErrorData, DebugData, and BinaryEventData. (#46943)
Previously, RenderingInfo was only used to derive the top-level level/task/opcode/keywords/message
fields. It is now also emitted as a top-levelrendering_infokey containing all fields including
culture,channel, andprovider. UserData (an alternative to EventData used by some providers)
is now parsed into auser_datakey. Rare schema elements ProcessingErrorData, DebugData, and
BinaryEventData are also captured when present. -
processor/resourcedetection: Added IBM Cloud VPC resource detector to the Resource Detection Processor (#46874) -
processor/resourcedetection: Added IBM Cloud Classic resource detector to the Resource Detection Processor (#46874) -
processor/tail_sampling: Addsampling_strategyconfig withtrace-completeandspan-ingestmodes for tail sampling decision timing and evaluation behavior. (#46600) -
receiver/awslambda: Enrich context with AWS Lambda receiver metadata for S3 logs (#47046) -
receiver/azure_event_hub: Add support for Azure Event Hubs distributed processing. This allows the receiver to automatically coordinate partition ownership and checkpointing across multiple collector instances via Azure Blob Storage. (#46595) -
receiver/docker_stats: Add TLS configuration support for connecting to the Docker daemon over HTTPS with client and server certificates. (#33557)
A new optionaltlsconfiguration block is available indocker_statsreceiver config (and the
sharedinternal/dockerpackage). When omitted the connection remains insecure (plain HTTP or
Unix socket), preser...
v0.148.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
all: Removes the k8slog receiver after being unmaintained for 3 months (#46544) -
all: Remove deprecated SAPM exporter (#46555) -
all: Remove the datadogsemantics processor. (#46893)
If you need help, please contact Datadog support: https://www.datadoghq.com/support. -
exporter/google_cloud_storage:reuse_if_existsbehavior changed: now checks bucket existence instead of attempting creation (#45971)
Previously,reuse_if_exists=truewould attempt bucket creation and fall back to reusing on conflict.
Now,reuse_if_exists=truechecks if bucket exists (via storage.buckets.get) and uses it, failing if it doesn't exist.
Set to true when the service account lacks project-level bucket creation permissions but has bucket-level permissions.
reuse_if_exists=falsestill attempts to create the bucket and fails if it already exists. -
exporter/kafka: Remove deprecated top-leveltopicandencodingconfiguration fields (#46916)
The top-leveltopicandencodingfields were deprecated in v0.124.0.
Use the per-signal fields instead:logs::topic,metrics::topic,
traces::topic,profiles::topic, and the correspondingencoding
fields under each signal section. -
exporter/kafka: Remove kafka-local batching partitioner wiring and require explicitsending_queue::batch::partition::metadata_keysconfiguration as a superset ofinclude_metadata_keyswhen batching is enabled. (#46757) -
pkg/ottl:truncate_allfunction now supports UTF-8 safe truncation (#36713)
The defaulttruncate_allbehavior has changed. Truncation now respects UTF-8 character boundaries by default (new optional parameterutf8_safe, default:true), so results stay valid UTF-8 and may be slightly shorter than the limit.
To keep the previous byte-level truncation behavior (e.g. for non-UTF-8 data or to avoid any behavior change), setutf8_safetofalsein alltruncate_allusages. -
receiver/awsecscontainermetrics: Add ephemeral storage metrics and fix unit strings from Megabytes to MiB (#46414)
Adds two new task-level gauge metrics:ecs.task.ephemeral_storage.utilizedandecs.task.ephemeral_storage.reserved(in MiB).
These metrics are available on AWS Fargate Linux platform version 1.4.0+ and represent the shared ephemeral storage for the entire task.Breaking change: The unit string for
ecs.task.memory.utilized,ecs.task.memory.reserved,
container.memory.utilized, andcontainer.memory.reservedhas been corrected from"Megabytes"to"MiB".
The underlying values were already in MiB (computed via division by 1024*1024), but the unit label was incorrect.
Users relying on the exact unit string (e.g. in metric filters or dashboards) will need to update accordingly. -
receiver/mysql: Set the default collection of query_sample to false (#46902) -
receiver/postgresql: Disable default collection of top_query and query_sample events. (#46843)
This change is breaking because it disables the default collection of top_query and query_sample events. These events will need to be enabled manually if desired. -
receiver/redfish:system.host_nameandbase_urlresource attribute has been changed tohost.nameandurl.fullrespectively.
(#46236) -
receiver/windowseventlog: Change event_data from an array of single-key maps to a flat map by default, making fields directly accessible via OTTL. The previous format is available by settingevent_data_format: array. (#42565, #32952)
Named elements become direct keys (e.g., body["event_data"]["ProcessId"]).
Anonymous elements use numbered keys: param1, param2, etc.
To preserve the previous array format, set event_data_format: array in the receiver configuration.
🚩 Deprecations 🚩
exporter/azure_blob: Introduce new snake case compliant nameazure_blob(#46722)exporter/google_cloud_storage: Introduce new snake case compliant namegoogle_cloud_storage(#46733)extension/aws_logs_encoding: Introduce new snake case compliant nameaws_logs_encoding(#46776)extension/azure_auth: Introduce new snake case compliant nameazure_auth(#46775)extension/cgroup_runtime: Introduce new snake case compliant namecgroup_runtime(#46773)extension/google_cloud_logentry_encoding: Introduce new snake case compliant namegoogle_cloud_logentry_encoding(#46778)processor/metric_start_time: Introduce new snake case compliant namemetric_start_time(#46777)receiver/azure_blob: Introduce new snake case compliant nameazure_blob(#46721)receiver/azure_monitor: Introduce new snake case compliant nameazure_monitor(#46730)receiver/cisco_os: Introduce new snake case compliant namecisco_os(#46948)receiver/macos_unified_logging: Introduce new snake case compliant namemacos_unified_logging(#46729)receiver/prometheus_remote_write: Introduce new snake case compliant nameprometheus_remote_write(#46726)receiver/yang_grpc: Introduce new snake case compliant nameyang_grpc(#46723)
🚀 New components 🚀
receiver/azure_functions: Introduce new component to receive logs from Azure Functions (#43507)
This change includes only overall structure, readme and configuration for the new component.
💡 Enhancements 💡
-
cmd/opampsupervisor: Add configurable instance ID to Supervisor (#45596) -
connector/signal_to_metrics: Addsum.monotonicproperty for improved counter handling (#45865) -
connector/spanmetrics: Add support for W3C tracestate-based adjusted count in span metrics with stochastic rounding (#45539)
The span metrics connector now supports extracting sampling information from W3C tracestate
to generate extrapolated span metrics with adjusted counts. This enables accurate metric
aggregation for sampled traces by computing stochastic-rounded adjusted counts based on
the sampling threshold (ot.th field) in the tracestate. Key features include:- Stochastic rounding for fractional adjusted counts using integer-only operations
- Single-entry cache for consecutive identical tracestates (4% overhead in benchmarks)
- Support for mixed-mode services where some spans have tracestate and others don't
- New sampling.method attribute to distinguish between adjusted and non-adjusted metrics
- Histogram support for observing multiple events at once
Performance characteristics:
- ~4% overhead for traces with tracestate (3-span batch: 3684ns → 3829ns). Overhead will further diminish with larger batches.
- Scales linearly with trace size (500 spans: 577μs → 581μs)
- Zero allocations for common cases with caching enabled
-
exporter/bmchelix: Enrich metric names with datapoint attributes for unique identification in BMC Helix Operations Management (#46558)
This feature is controlled by theenrich_metric_with_attributesconfiguration option (default:true).
Set tofalseto disable enrichment and reduce metric cardinality.
Normalization is applied to ensure BHOM compatibility:entityTypeIdandentityName: Invalid characters replaced with underscores (colons not allowed as they are used as separators in entityId)metricName: Normalized to match pattern[a-zA-Z_:.][a-zA-Z0-9_:.]*- Label values: Commas replaced with whitespaces
-
exporter/clickhouse: Add per pipeline JSON support for ClickHouse exporter, deprecate JSON feature gate (#46553)
Previously, theclickhouse.jsonfeature gate was used to enable JSON for all
ClickHouse exporter instances. This feature gate is now deprecated. Use thejson
config option instead, which allows per-pipeline control. -
exporter/elasticsearch: Add per-documentdynamic_templatesfor metrics in ECS mapping mode (#46499)
Each bulk index action for ECS metrics now includes dynamic_templates so Elasticsearch can apply the correct
mapping (e.g. histogram_metrics, summary_metrics, double_metrics) for the ECS mapping mode. The OTel mapping mode already sent dynamic_templates. -
exporter/elasticsearch: Addhttp.response.status_codeto failed document logs to allow for better filtering and error analysis. (#45829) -
exporter/elasticsearch: Update ECS mode encoder to add conversions fortelemetry.sdk.languageandtelemetry.sdk.version(#46690)
Conversions map semconv attributestelemetry.sdk.language/telemetry.sdk.versionto service.language.name/service.language.version' -
extension/aws_logs_encoding: Adopt streaming for Network Firewall logs (#46214) -
extension/aws_logs_encoding: Adopt streaming for CloudTrail signal (#46214) -
extension/aws_logs_encoding: Adopt encoding extension streaming contract for WAF logs (#46214) -
extension/aws_logs_encoding: Adopt streaming for S3 access logs (#46214) -
extension/aws_logs_encoding: Adopt encoding extension streaming contract for VPC flow logs (#46214) -
extension/aws_logs_encoding: Adopt encoding extension streaming contract for CloudWatch Logs subscription (#46214) -
extension/aws_logs_encoding: Adopt streaming for ELB signal (#46214) -
extension/awscloudwatchmetricstreams_encoding: Adopt encoding extension streaming contract for OpenTelemetry v1 formatted metrics (#46214) -
extension/azure_encoding: Add encoding.format attribute to Azure logs to identify the log type (#44278) -
extension/azure_encoding: Promote the Azure Encoding extension to Alpha stability. (#46886) -
extension/azure_encoding: Add processing for Azure Metrics (#41725) -
extension/datadog: Setos.typeresource attribute if not already present for Fleet Automation metadata. (#46896) -
extension/headers_setter: Add support for file-based credentials viavalue_file...
v0.147.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
all: Remove unmaintained receiver/bigip component (#46040) -
exporter/elasticsearch: Ignoremapping::modeconfig option (#45246)
Themapping::modeconfig option has already been deprecated and is now ignored. Instead, use
theX-Elastic-Mapping-Modeclient metadata key (via headers_setter extension) or the
elastic.mapping.modescope attribute to control the mapping mode per-request.
See the README for migration instructions. -
extension/sumologic: Migrate updateCollectorMetadata from feature gate to config parameter and enable by default (#46102)
Theextension.sumologic.updateCollectorMetadatafeature gate has been replaced with an
update_metadataconfiguration parameter. The feature is now enabled by default, eliminating
the need for users to specify the--feature-gatesflag. Users can control this behavior via
the YAML configuration:extensions: sumologic: update_metadata: true # default: true
-
processor/azuredetector: Changed cloud platform value for Azure VM fromazure_vmtoazure.vmto align with OpenTelemetry semantic conventions v1.39.0. (#45030) -
processor/resourcedetection: Remove feature gate processor.resourcedetection.removeGCPFaasID (#45808) -
processor/resourcedetection: Changed cloud platform value for Azure EKS fromazure_ekstoazure.eksto align with OpenTelemetry semantic conventions v1.39.0. (#45030) -
receiver/kafka: Remove deprecated topic and exclude_topic fields (#46232) -
receiver/mongodb: Add service.instance.id resource attribute and move database from resource to db.namespace metric attribute in MongoDB receiver (#45506)
The service.instance.id attribute is a deterministic UUID v5 derived from server address and port.
The database attribute has been moved from a resource attribute to a metric-level attribute (db.namespace) on all per-database metrics, following OpenTelemetry semantic conventions.
This produces a single resource per MongoDB server instead of one per database, fixing Prometheus batching compatibility.
🚩 Deprecations 🚩
processor/k8s_attributes: Rename internal telemetry metrics to use dots instead of underscores (#45871)
💡 Enhancements 💡
-
connector/grafanacloud: Make the default configuration of the Grafana Cloud Connector support Kubernetes deployments. (#45469)
Add "k8S.node.uid" and "k8S.cluster.name" to the default set of resource attributes evaluated by the Grafana Cloud Connector. -
exporter/clickhouse: Do not crash the exporter if it cannot inspect the table schemas (#46285)
Previously settingcreate_schema: falsewould skip validating the actual connection on start. This was useful
if you had unstable targets, as you could run the collector and let the sending queue/failover connector handle
connection errors to ClickHouse. -
exporter/loadbalancing: Support metrics routing by attributes in the loadbalancing exporter (#45675) -
exporter/prometheusremotewrite: Add support for exporting InstrumentationScope attributes as Prometheus labels. This behavior can be disabled via thedisable_scope_infoconfiguration option. (#45266) -
exporter/signalfx: Preserve 'k8s.service.' property names on the 'k8s.service.uid' dimension instead of converting them to 'kubernetes_service_' prefix. (#46291) -
extension/awscloudwatchmetricstreams_encoding: Adopt encoding extension streaming contract for JSON formatted metrics (#46214) -
extension/awscloudwatchmetricstreams_encoding: Adopt encoding extension streaming contract for AWS CloudWatch metrics extension (#46214) -
extension/awslogs_encoding: Adopt encoding extension streaming contract for AWS Logs Extension encoding (#46214) -
extension/azure_encoding: Add processing for Azure Traces (AppAvailabilityResults, AppDependencies and AppRequests) (#41725) -
extension/azure_encoding: Add support for Administrative, Alert, Autoscale, Policy, Security, ServiceHealth, and ResourceHealth log categories. (#45699) -
extension/basicauth: Addusername_fileandpassword_fileoptions to client_auth config, enabling file-based credentials with live rotation via file watching. (#46227)
When set, file-based credentials take precedence over inline values.
Files are watched for changes using fsnotify, allowing credential rotation without restarting the collector. -
internal/docker: Add Docker API version auto-negotiation whenapi_versionis not specified in config (#44653)
Whenapi_versionis empty or omitted, the Docker client now automatically negotiates
the highest mutually supported API version with the daemon usingWithAPIVersionNegotiation().
Existing configurations with an explicitapi_versioncontinue to work unchanged.
Note: The previous default behavior pinned the API version to 1.44 when not specified.
Now it auto-negotiates with the daemon, which may result in a different API version being used. -
pkg/ottl: Add Base64Encode function to OTTL (#46071) -
pkg/ottl: Added metadata access path to all OTTL contexts for accessing client request metadata (#33288) -
pkg/translator/pprof: Ensure correct handling of default sample/profile in conversion. (#45976) -
processor/hetznerdetector: Update semantic conventions to v1.39.0 and add support for cloud.platform in Hetzner detector (#45489) -
processor/k8s_attributes: ReplicaSet handling now supports PartialObjectMetadata, reducing cold-start memory/time compared to typed informers. (#44407)
In in-process cold-start benchmarks (no API server), PartialObjectMetadata reduced memory by ~57–59%, exact impact depends on cluster size and selectors. -
processor/oracleclouddetector: Add Oraclerealmattribute to Oracle Cloud resource detection processor (#44408) -
processor/redaction: Add HMAC hash functions (hmac-sha256andhmac-sha512) for GDPR-compliant pseudonymization of sensitive data like IP addresses (#45715)
HMAC functions provide rainbow table resistant hashing by using a secret key, making it impossible to reverse-engineer original values without the key.
This enables true pseudonymization per GDPR Article 4(5) requirements while maintaining consistency for pattern analysis.
Configure withhash_function: hmac-sha256(orhmac-sha512) andhmac_key: "${env:REDACTION_SECRET_KEY}". -
processor/resourcedetection: Added Tencent Cloud CVM resource detector to the Resource Detection Processor (#45779) -
processor/resourcedetection: Addtags_from_imdsconfig option to EC2 detector to control instance tag retrieval method (#46046)
Introduces thetags_from_imdsboolean field in the EC2 detector configuration.
When set totrue, instance tags are fetched via IMDS, which does not require any IAM
permissions but requiresInstanceMetadataTags=enabledon the instance.
When set tofalse(default), tags are fetched via the EC2DescribeTagsAPI,
which requires theec2:DescribeTagsIAM permission. This is the existing behavior and
the default to avoid breaking changes. -
receiver/apache: Enables dynamic metric reaggregation in the Apache receiver. This does not break existing configuration files. (#46348) -
receiver/azure_event_hub: Promote the Azure Event Hub receiver to beta stability. (#41661) -
receiver/azureblob: Enable the Azure Blob receiver to poll for new blobs when the Event Hub endpoint is not configured. (#45717)
The Azure Blob receiver now supports a polling-based ingestion mode that is automatically
enabled when no Event Hub endpoint is configured. Instead of relying on
event-driven notifications, it periodically checks the storage container
for new blobs to ingest. -
receiver/ciscoos: Add multi-device configuration with global scraper settings and improved config validation (#42647) -
receiver/haproxy: Enable dynamic metric reaggregation in the HAProxy receiver. (#46357) -
receiver/hostmetrics: Reduce excessive float64 precision in memory, disk, and filesystem scrapers (#46141) -
receiver/k8s_cluster: Define entities and relationships for Kubernetes resources in metadata.yaml. (#41080) -
receiver/oracledb: Enable dynamic metric reaggregation in the OracleDB receiver. (#46371) -
receiver/postgresql: Added support for configuring custom collection intervals for Top Query records (#45614) -
receiver/prometheusremotewrite: Add support for extracting exemplars from Prometheus counters (#46145) -
receiver/splunkenterprise: Enables dynamic metric reaggregation in the Splunk Enterprise receiver. This does not break existing configuration files. (#45396) -
receiver/tlscheck: Added support for JKS and PKCS12 keystore formats. (#41518)
This enhancement allows users to utilize JKS and PKCS12 keystore formats
for TLS configuration in the tlscheck receiver, providing greater flexibility
in certificate management.
🧰 Bug fixes 🧰
-
exporter/loadbalancing: Change default timeout for k8s resolver from 1s to 1m to reduce excessive Kubernetes API server load. (#33004)
The previous 1s default caused watch connections to reconnect every second, generating big amount of requests.
The new 1m default provides a big reduction in API load while maintaining reasonable
endpoint discovery latency. The timeout remains configurable for users who need different behavior. -
exporter/prometheusremotewrite: [exporter/prometheusremotewrite] Fix WAL wake-up race (#45288) -
exporter/sematext: Add validation to requireregionand at least oneapp_tokenin configuration. (#39610) -
extension/oauth2client: Make token refresh context-aware (#45917)
The oauth2clientauth now implements its own HTTP and gRPC middleware, so the request
cont...
v0.146.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
Unmaintained Components
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
- receiver/bigip
- exporter/alibabacloudlogservice
End User Changelog
🛑 Breaking changes 🛑
-
all: Increase minimum Go version to 1.25 (#46000) -
exporter/elasticsearch: Remove ecs mode log enrichment foragent.nameandagent.version(#45849)
The removed log enrichments are duplicate code that already exists in thegithub.com/elastic/opentelemetry-collector-components/processor/elasticapmprocessor. It is recommended to use thegithub.com/elastic/opentelemetry-collector-components/processor/elasticapmprocessorwhen using mapping modeecsto ensure index documents contain all required Elastic fields to power the Kibana UI. -
processor/akamaidetector: Update semantic conventions to v1.39.0 and use the convention for cloud.platform in Akamai detector (#45511) -
processor/k8s_attributes: Introduce semantic conventions compliant feature gate pair for k8sattributes processor (#44693)- Added
processor.k8sattributes.EmitV1K8sConventionsfeature gate to enable stable semantic convention attributes (singular form:k8s.<workload>.label.<key>andk8s.<workload>.annotation.<key>) - Added
processor.k8sattributes.DontEmitV0K8sConventionsfeature gate to disable legacy non-compliant attributes (plural form:k8s.<workload>.labels.<key>andk8s.<workload>.annotations.<key>) - Both feature gates are in
alphastage and disabled by default - The processor now validates that legacy attributes cannot be disabled without enabling stable attributes
- Deprecated
k8sattr.labelsAnnotationsSingular.allowfeature gate in favor of the new semconv-compliant gates (will be removed in v0.150.0) - During migration period, both legacy and stable attributes can coexist when
EmitV1K8sConventionsis enabled butDontEmitV0K8sConventionsis not
- Added
-
processor/resourcedetection: Promoteprocessor.resourcedetection.propagateerrorsfeature gate to Stable and is now always enabled (#44609) -
receiver/hostmetrics:process.context_switcheswill now properly count context switches for all threads. (#36804)
Previously, only the lead thread's context switches would be counter. We believe this was a bug,
but are marking it as a breaking change since the values of these metrics may change drastically
compared to previous expectations. However, the values you get now will be more accurate than before. -
receiver/kafkametrics:receiver.kafkametricsreceiver.UseFranzGofeature gate is now in Beta stage and enabled by default (#44600)
🚩 Deprecations 🚩
-
connector/signal_to_metrics: Renamesignaltometricsconnector tosignal_to_metricsand add deprecated aliassignal_to_metrics(#45551) -
exporter/alibabacloud_logservice: Marking component unmaintained (#46029) -
processor/datadogsemantics: Deprecate thedatadogsemanticsprocessor. (#46052)
If you are using this component, please contact Datadog support. -
processor/k8s_attributes: Renamek8sattributesprocessor tok8s_attributesprocessor and add deprecated aliask8sattributes. (#45894) -
receiver/kubeletstats: TheGCEPersistentDisk,AWSElasticBlockStore, andGlusterfshave been deprecated as these have been depreacted in k8s (#40477)
K8s documentation for the three deprecated volume types is below: -
receiver/signalfx: This receiver is deprecated. Please use the OTLP receiver instead (#46079)
This component will be removed in a future release. -
receiver/wavefront: Deprecate the wavefront receiver (#46087)
There is no replacement for the wavefront receiver.
Wavefront is EOL: https://support.broadcom.com/web/ecx/support-content-notification/-/external/content/release-announcements/0/25153
🚀 New components 🚀
receiver/vcr: First PR for new receiver (#42877)
💡 Enhancements 💡
-
cmd/golden: Golden tool now returns all comparison errors with attempt numbers instead of only the last error (#45424)
When multiple metric payloads fail validation, the golden tool now displays all errors with their attempt numbers,
making it easier to debug test failures. Previously, only the last error was shown. -
connector/signal_to_metrics: Adderror_modeconfiguration to control OTTL evaluation error handling. Prevents single bad record from failing entire batch. (#38826, #45746)
Adds three error modes:propagate(default): Returns error, entire batch fails (backward compatible)ignore: Logs error, skips bad record, continues processing valid recordssilent: Skips bad record silently, continues processing valid records
-
exporter/datadog: Add new alpha feature gate 'exporter.datadogexporter.DisableAllMetricRemapping' to disable all metric remapping in the Datadog exporter. (#45943)
The feature gate is marked as alpha pending changes in Datadog's backend. -
exporter/elasticsearch: Update the ECS mode metrics data point hasher to exclude theelasticsearch.mapping.hintsattribute (#45887)
Excluding theelasticsearch.mapping.hintsattribute will allow similar metric data points to be grouped together and indexed to the same document. -
exporter/elasticsearch: Addtraces_dynamic_idconfig to dynamically set document IDs for traces and span events (#43649)
Addstraces_dynamic_idconfiguration option to allow setting document IDs based on span and span event attributes using theelasticsearch.document_idattribute.
This prevents duplicate documents from being created when the same span is sent multiple times, similar to the existinglogs_dynamic_idfeature.
Disabled by default. -
exporter/file: Add support for rotation when group_by is enabled in file exporter (#43143) -
exporter/googlecloudstorage: Add compression support for Google Cloud Storage exporter (#45337)
The Google Cloud Storage exporter now supports compression of log data before uploading to GCS.
Supported compression algorithms:gzipandzstd. -
exporter/kafka: Addconn_idle_timeoutconfiguration option to control when idle connections are not reused and may be closed. (#45321)
Defaults to 9 minutes. -
extension/awscloudwatchmetricstreams_encoding: Add support for extracting percentile statistics (p50, p90, p99, etc.) from CloudWatch Metric Streams JSON format (#45855)
The JSON unmarshaler now extracts percentile fields from CloudWatch Metric Streams data and converts them to OpenTelemetry Summary quantiles.
This enables feature parity with the embedded cwmetricstream unmarshaler in awsfirehosereceiver. -
extension/awslogs_encoding: Support CloudWatch Logs extracted fields (@aws.account,@aws.region) for centralized logging (#45792)
CloudWatch Logs subscription filter unmarshaler now supports extracted fields (@aws.accountand@aws.region)
that are automatically added when using CloudWatch Logs centralization and enablingemitSystemFieldsin
subscription filters. This enhancement enables proper resource attribution in OpenTelemetry when processing
logs from multiple AWS accounts and regions. Logs with different extracted field values are automatically
grouped into separate ResourceLogs for proper semantic convention mapping:@aws.accountmaps tocloud.account.id@aws.regionmaps tocloud.region
-
extension/awslogs_encoding: Handle multiple concatenated JSON objects for AWS CloudWatch Log subscription (#46120) -
extension/azureauth: Add and implement new methodToken(context.Context) (*oauth2.Token, error). (#45064) -
extension/encoding: Introduce streaming support for encoding extensions (#38780) -
extension/oidc: Addspublic_keys_fileto the provider config. When set, keys are loaded from a local JWKS file instead of using remote discovery. (#44899)
The file is watched for changes and keys are automatically reloaded on update. Supported key types are RSA, ECDSA, and ED25519. -
pkg/ottl: AddIsInCIDRfunction to check if IP belongs to given list of CIDR (#42215) -
pkg/sampling: Optimize OTel tracestate parsing by replacing regex validation with hand-written validator (10-21x faster). (#45539) -
pkg/sampling: Replace regex-based W3C tracestate validation with hand-written validator for 30-65x performance improvement (#45734) -
pkg/stanza: Ensure filter operator does not split batches of entries (#42391) -
processor/filter: Introduces inferred context conditions for filtering (#37904)
Introduces three new top-level config fields [metric_conditions, log_conditions, trace_conditions].
A user can supply OTTL conditions for each without needing to supply context. -
processor/k8s_attributes: Addedcontainer.image.tagsresource attribute with feature gate controls according to OpenTelemetry semantic conventions. (#44589) -
processor/lookup: Add lookup processor implementation and YAML source (#41816)
Adds the core lookup processor implementation for enriching telemetry data using external lookups.
Includes YAML file source for loading lookup tables f...
v0.145.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
- exporter/alibabacloudlogservice
- receiver/carbon
End User Changelog
🛑 Breaking changes 🛑
-
exporter/sentry: Create a new version of the sentryexporter that supports dynamic routing to Sentry projects (#45051) -
pkg/translator/azure: Updated OpenTelemetry semantic conversion to the latest version 1.38.0 in azure pkg. (#44801) -
processor/resourcedetection: Promoteprocessor.resourcedetection.removeGCPFaasIDfeature gate to Stable and is now always enabled (#45797)
The faas.id attribute is replaced by the faas.instance attribute. -
receiver/azure_event_hub: Upgradereceiver.azureeventhubreceiver.UseAzeventhubsfeature gate to stable. (#45527) -
receiver/github: Make step spans siblings of queue-job span under job span instead of children of queue-job span (#42623)
This change improves a workflow job trace structure by making step spans siblings of the queue-job span under the job span.
Reflecting that queuing and step execution are sequential phases rather than nested operations which more accurately aligns with the specification. -
receiver/kafka: ReplaceStartTracesOp/EndTracesOpwithStartProfilesOp/EndProfilesOpin profilesHandler. (#45601)
The span name generated by the profiles receiver now uses theProfilesReceivedsuffix instead ofTraceDataReceived. -
receiver/prometheus: Promotereceiver.prometheusreceiver.RemoveReportExtraScrapeMetricsConfigfeature gate to beta (#44181)
Thereport_extra_scrape_metricsconfiguration option is now ignored by default. Extra scrape metrics are instead controlled by thereceiver.prometheusreceiver.EnableReportExtraScrapeMetricsfeature gate and the Prometheus upstream configuration available inpromconfig(either globally or per-scrape config).
🚩 Deprecations 🚩
receiver/azure_event_hub: Renameazureeventhubreceiver toazure_event_huband add deprecated aliasazureeventhub(#45637)receiver/jmx: Deprecate the jmxreceiver to avoid running Java subprocesses in the Collector and prevent container-based deployments from requiring a Java runtime. (#45740)receiver/mongodb_atlas: Renamemongodbatlasreceiver tomongodb_atlasand add deprecated aliasmongodbatlas(#45652)
💡 Enhancements 💡
-
connector/routing: Add move/copy support in routing connector (#45061) -
exporter/googlecloudstorage: Add support for exporting traces to Google Cloud Storage (#44945) -
exporter/signalfx: Add support for processing entity events from logs pipeline to send as dimension property updates (#27890)
The SignalFx exporter now supports processing entity events (e.g., from k8s_cluster receiver)
received via the logs pipeline and converting them to dimension property updates. This provides
an alternative to the metadata_exporters option and enables consistent metadata handling.
This feature is behind theexporter.signalfx.consumeEntityEventsfeature gate (disabled by default). -
extension/awslogs_encoding: Add support for processing CloudTrail logs from CloudWatch subscription filters (#45354) -
extension/awslogs_encoding: Allow using aws.user_identity prefix for UserIdentity bound attributes. This is enabled with extension.awslogsencoding.cloudtrail.enable.user.identity.prefix feature gate ID. (#43638) -
extension/azure_encoding: Add processing for Application Gateway, Azure Messaging (ServiceBus and EventHub), Data Factory, FunctionApps and BlobStorage logs records (#41725) -
extension/oauth2client: Support jwt-bearer grant-type (RFC7523) (#44314) -
extension/opamp: This change adds support for the OpAMP AcceptsRestartCommand capability. The implementation for this capability sends a SIGHUP signal to restart the collector which will reload the config on startup. (#45056)
This functionality is behind a feature gate (extension.opampextension.RemoteRestarts) that defaults disabled. The SIGHUP signal does not work on windows systems, but might later be updated to use the SIGUSR2 signal. -
internal/coreinternal: Improve performance of hashing function for attraction package. (#45211) -
pkg/fileconsumer: Open files on Windows with FILE_SHARE_DELETE mode (#32037) -
pkg/ottl: Added generic path to get/set span flags in OTTL trace span context. (#34739) -
pkg/ottl: Introducingdelete_indexfunction for deleting items from an existing array (#43098) -
pkg/stanza: Ensure recombine operator does not split batches of entries (#42392) -
pkg/stanza: Ensure container operator does not split batches of entries (#42389) -
pkg/stanza: Ensure syslog operator does not split batches of entries (#42394) -
pkg/translator/azurelogs: Add support for all Activity Logs categories (#44871)
Includes support for the Alert, Autoscale, Policy, Recommendation, Security, ServiceHealth, and ResourceHealth categories. -
processor/k8sattributes: Added processor-specific observability metrics:otelcol.k8s.pod.associationwithstatus,pod_identifier, andotelcol.signalattributes (#44587) -
processor/resourcedetection: Add support for GCP resource detector to gather GCE instance labels as resource attributes (#35859)
The GCP resource detector now supports gathering GCE instance labels as resource attributes, allowing for more detailed resource metadata in telemetry data. -
processor/resourcedetection: Added Alibaba Cloud ECS resource detector to the Resource Detection Processor (#45632) -
processor/tail_sampling: New policy type to return the opposite of the sampling decision of a wrapped policy. (#39668) -
processor/tail_sampling: Add trace_flags policy (#43867) -
processor/tail_sampling: Provide option to limit maximum trace size kept in memory by the tail sampling processor (#45286)
Traces that exceed the size limit will be immediately dropped, not have a decision made for them. -
receiver/azureblob: Replace deprecatedazure-event-hubs-goSDK withazure-sdk-for-go(#44335) -
receiver/filelog: Suppress repeated permission-denied errors (#39491)
Only one error is logged per file per process run, and an informational message is emitted when the file becomes readable again.
This reduces log spam and improves clarity for operators. -
receiver/hostmetrics: Add support for Linux hugepages memory monitoring via system.memory.linux.hugepages metrics. (#42650)
Users can now monitor hugepages usage on host machine. -
receiver/jmx: Add the JMX scraper version "1.53.0-alpha" to the supported jars hash list (#45571) -
receiver/jmx: Add the JMX metrics gatherer version "1.53.0-alpha" to the supported jars hash list (#45570) -
receiver/k8sobjects: Add support for exclude_namespaces to exclude specific namespaces from being watched. (#36217)
Add support for exclude_namespaces to exclude specific namespaces from being watched. -
receiver/prometheus: Support removable Prometheus service discoveries via Go build tags. (#44406)
Prometheus service discoveries can now be removed at build time when building the collector with OCB (OpenTelemetry Collector Builder).
Use thebuild_tagsoption in the builder configuration to pass Go build tags such asremove_all_sdto exclude optional service discoveries.
See the Prometheus documentation for available build tags to customize which service discoveries are included. -
receiver/snowflake: Enables dynamic metric reaggregation in the Splunk Enterprise receiver. This does not break existing configuration files. (#45396) -
receiver/windowsservice: Enables dynamic metric reaggregation in the Splunk Enterprise receiver. This does not break existing configuration files. (#45396)
🧰 Bug fixes 🧰
-
exporter/coralogix: Fix unmarshalling to avoid validation errors with profiles when protocol is set to http. (#45677) -
exporter/elasticsearch: Add status code OK to success document processed metric. (#45067) -
internal/datadog: Fix race condition in gohai host metadata payload causing concurrent map access panic (#30438)
Deep copy the host metadata payload before passing it to ConsumeHostMetadata() to prevent
concurrent map access when the reporter's gohai collector refreshes maps while JSON marshaling
iterates over them. This fixes the "fatal error: concurrent map iteration and map write" panic
that occurred with multiple concurrent metric consumers and host metadata enabled. -
internal/metadataproviders: Fix kubeadm resource detector to correctly read clusterName from kubeadm configmap (#45603) -
pkg/ottl: Fix debug logs in OTTL parser to not panic when marshalling transform contexts with invalid pdata (#44705) -
pkg/stanza: Fix transformer operators logging errors at ERROR level whenon_erroris set to quiet mode (#42646) -
pkg/stanza: Fixcontaineroperator log truncation for large CRI logs (#43982)
Previously the optionmax_log_sizeof thecontaineroperator did not work correctly, with the maximum log size limited to an arbitrary value even ifmax_log_sizewas higher or set to0to remove the limit. With this changemax_log_size: 0works correctly, removing the upper limit on log size.
The default value formax_log_sizeis now changed from0to1MiBto prevent boundless memory usage. -
pkg/stanza: Fix syslog parser operator logging errors at ERROR level whenon_erroris set to quiet mode (#42646) -
pkg/stanza: Fix data ...
v0.144.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
Unmaintained Components
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
- exporter/alibabacloudlogservice
- receiver/carbon
End User Changelog
🛑 Breaking changes 🛑
-
exporter/elasticsearch: Remove ecs mode span enrichment forspan.action,span.message.queue.name, andtransaction.message.queue.name(#45014)
The removed span enrichments have been moved to thegithub.com/elastic/opentelemetry-collector-components/processor/elasticapmprocessor. It is recommended to use thegithub.com/elastic/opentelemetry-collector-components/processor/elasticapmprocessorwhen using mapping modeecsto ensure index documents contain all required Elastic fields to power the Kibana UI. -
exporter/kafka: Remove Sarama producer implementation (#44565)
The Sarama-based Kafka producer has been removed from kafkaexporter.
Feature gateexporter.kafkaexporter.UseFranzGohas also been removed since Franz-go is now the only supported Kafka client. -
processor/tail_sampling: The deprecated invert decisions are disabled by default. (#44132)
Drop policies should be used instead of invert decisions for explicitly not sampling a trace.
If the deprecated behavior is required while migrating to drop policies, disable theprocessor.tailsamplingprocessor.disableinvertdecisionsfeature gate. -
receiver/kafka: Remove Sarama consumer implementation anddefault_fetch_sizeconfiguration option (#44564)
The Sarama-based Kafka consumer has been removed from kafkareceiver.
Thedefault_fetch_sizeconfiguration option has also been removed as it was only used by the Sarama consumer.
Feature gatereceiver.kafkareceiver.UseFranzGohas also been removed since Franz-go is now the only supported Kafka client.
🚩 Deprecations 🚩
exporter/elasticsearch: Deprecatemapping::modeconfig option (#45246)
Themapping::modeconfig option is now deprecated and will soon be ignored. Instead, use
theX-Elastic-Mapping-Modeclient metadata key (via headers_setter extension) or the
elastic.mapping.modescope attribute to control the mapping mode per-request.
See the README for migration instructions.
🚀 New components 🚀
processor/lookup: Add skeleton for external lookup enrichment processor (#41816)
Adds the initial skeleton for a lookup processor that performs external lookups to enrich telemetry signals.
Also includes source abstraction with factory pattern, noop source for testing, and cache wrapper utility.
💡 Enhancements 💡
-
cmd/schemagen: Extend schemagen script with ability to handle external refs. (#42214)
Theschemagentool has been enhanced to support external references when generating
configuration schemas for OpenTelemetry Collector components. This improvement allows
the tool to accurately reference and include schema definitions from external packages,
facilitating better modularity and reuse of configuration schemas across different components. -
cmd/schemagen: Fixes for schemagen to handle common issues with receiver components schemas. (#42214)
Fix common issues discovered while using schemagen with receiver components:- Missing config.go file (e.g. namedpipereceiver)
- Parsing obsolete types (e.g. nsxtreceiver)
- Unable to embed fields with
squashtag and not exported internal type (e.g. huaweicloudcesreceiver)
-
cmd/telemetrygen: Add batching capability to metrics and traces (#42322)- Changed traces batching to have configurable batch size and match batch flag.
- Added batching to metrics.
- Added batching to logs.
-
exporter/azureblob: Add timezone option for formatting blob names in azureblob exporter. (#43752) -
exporter/elasticsearch: Remove go-elasticsearch dependency to reduce binary size (#45104)
This leads to a 19MB size reduction in contrib distribution -
exporter/googlecloudstorage: Add support for time partitioning (#44889) -
exporter/opensearch: Add support for multiple variables to build index names (#42585) -
exporter/sumologic: Adddecompose_otlp_summariesconfiguration option to decompose OTLP Summary metrics into individual gauges and counters (#44737) -
extension/awslogs_encoding: Optimize CloudTrail logs unmarshaling for memory usage (#45180) -
processor/k8sattributes: Bumnp version of semconv to v1.39.0 (#45447) -
processor/redaction: Addsanitize_span_nameoption to URL and DB sanitization configs. (#44228) -
processor/redaction: Addignored_key_patternsconfiguration option to allow ignoring keys by regex pattern (#44657) -
processor/resourcedetection: Add optional docker attributes (#44898)
Addcontainer.image.nameandcontainer.nameoptional resource attributes with the docker detector. . Note: Because of opentelemetry-collector-releases#1350 this change is not available on the v0.144.0 binary releases. v0.145.0 will include this change. -
processor/tail_sampling: Provide an option,decision_wait_after_root_received, to make quicker decisions after a root span is received. (#43876) -
receiver/azureeventhub: Add support for azure auth when feature gatereceiver.azureeventhubreceiver.UseAzeventhubsis enabled. (#40711) -
receiver/prometheus: receiver/prometheus now associates scraped _created text lines as the created timestamp of its metric family rather than its own metric series, as defined by the OpenMetricsText spec (#45291) -
receiver/prometheus: Add comprehensive troubleshooting and best practices guide to Prometheus receiver README (#44925)
The guide includes common issues and solutions, performance optimization strategies,
production deployment best practices, monitoring recommendations, and debugging tips. -
receiver/prometheusremotewrite: Replace labels.Map() iteration with direct label traversal to eliminate intermediate map allocations. (#45166)
🧰 Bug fixes 🧰
-
exporter/kafka: franz-go: Exclude non-produce metrics from kafka_exporter_write_latency and kafka_exporter_latency (#45258) -
exporter/opensearch: Fix dynamic log index feature putting logs in wrong index (#43183) -
exporter/prometheusremotewrite: Prevent duplicate samples by allowing the WAL to be empty (#41785)
Since the WAL is being truncated after every send it's likely the reader and writer are in sync. Since WAL was not
allowed to be empty, the reader would always re-read previously delivered samples causing duplicate data to be sent
continuously. -
extension/datadog: Datadog extension no longer throws an error for missing extensions when getting a list of active components, and now populates active components even when missing go mod/version info. (#45358, #45460) -
extension/file_storage: Handle filename too long error in file storage extension by using the sha256 of the attempted filename instead. (#44039) -
extension/text_encoding: Avoid spurious marshalling separators at end of lines (#42797)
Previously, text_encoding would append the marshalling separator to the end of
each log record, potentially resulting in double-newlines between blocks of
records. -
extension/text_encoding: Fix an issue where marshalling/unmarshalling separators were ignored (#42797) -
pkg/kafka/configkafka: Fix consumer group rebalance strategy validation (#45268) -
pkg/ottl: Fix numeric parsing to correctly handle signed numbers in math expressions. (#45222)
The OTTL math expression parser did not correctly handle unary signs for plus
and minus. Expressions like3-5would not parse correctly without inserting
spaces to make it3 - 5. This change moves the sign handling out of the
lexer and into the parser. -
pkg/ottl: Handle floating constants with decimal point but no fraction. (#45222)
Floating point constants that had a decimal point but no fractional digits
(e.g., "3.") were not handled properly and could crash the parser. These are
now parsed as valid floating point numbers. -
pkg/stanza: Fix Windows UNC network path handling in filelog receiver (#44401)
The filelog receiver now correctly handles Windows UNC network paths (e.g., \server\share\logs*.log).
Previously, the receiver could list files from network shares but failed to open them due to path corruption
during normalization. This fix converts UNC paths to Windows extended-length format (\?\UNC\server\share\path)
which is more reliable and not affected by filepath.Clean() issues. -
pkg/stanza: Ensurecontainerparser respects theifcondition andon_errorsettings when format detection fails (#41508) -
processor/resourcedetection: Prevent the resource detection processor from panicking when detectors return a zero-valued pdata resource. (#41934). Note: Because of opentelemetry-collector-releases#1350 this change is not available on the v0.144.0 binary releases. v0.145.0 will include this change. -
processor/resourcedetection: Fix nil pointer panic when HTTP client creation fails in Start method (#45220). Note: Because of opentelemetry-collector-releases#1350 this change is not available on the v0.144.0 binary releases. v0.145.0 will include this change. -
`receiver...
v0.143.0
The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
Unmaintained Components
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
- exporter/alibabacloudlogservice
- receiver/carbon
End User Changelog
🛑 Breaking changes 🛑
-
connector/servicegraph: remove deprecated warning log about metrics exporter logical (#45177) -
extension/googlecloudlogentry_encoding: Parse Cloud DNS Query logs into log record attributes instead of placing it in the body as is. (#44561) -
processor/tail_sampling: Add support for caching the policy name involved in a sampling decision. (#45040)
This change allows thetailsampling.policyattribute to be set on the spans in a trace when a sampling decision is cached. -
receiver/prometheus: Remove deprecateduse_start_time_metricandstart_time_metric_regexconfiguration options. (#44180)
Theuse_start_time_metricandstart_time_metric_regexconfiguration options have been removed after being deprecated in v0.142.0.
Users who have these options set in their configuration will experience collector startup failures after upgrading.
To migrate, remove these configuration options and use themetricstarttimeprocessor instead for equivalent functionality. -
receiver/systemd: Renamesystemd.unit.cpu.timemetric tosystemd.service.cpu.time(#44916)
🚀 New components 🚀
cmd/schemagen: Introduce script that generates configuration schemas for collector components based on go structs. (#42214)
Theschemagentool generates schemas for OpenTelemetry Collector components configuration
by analyzing Go struct definitions. This is preliminary work to support automatic generation
of documentation and validation for component configurations.
💡 Enhancements 💡
-
exporter/azureblob: Addtime_parser_rangesoption to allow selective time parsing of blob name substrings (#44650)
The newtime_parser_rangesconfiguration allows specifying index ranges (e.g.,["0-10", "15-25"]) to control which parts of the blob name are time-formatted. -
exporter/coralogix: Exposed a new field to setgrpc-accept-encoding.gzipwill be used by default. (#45191) -
exporter/coralogix: Improve log messages when a partial success happens for traces. (#44926)
The exporter now provides additional context based on the type of partial success | returned by the backend. When the backend indicates issues with the sent data, the error | message is analyzed to identify and display examples of the problematic data. -
exporter/elasticsearch: Add support for extra query parameters to the outgoing bulk request (#44480) -
exporter/kafka: Makemax_message_bytesandflush_max_messagesunconditional in franz-go producer. Changedflush_max_messagesdefault from 0 to 10000 to match franz-go default. (#44840) -
extension/awslogs_encoding: Enhance VPC flow logs encoding extension with CloudWatch logs support (#44710) -
extension/azure_encoding: Add processing for AppService, CDN, FrontDoor and Recommendation logs records (#41725) -
extension/googlecloudlogentry_encoding: Add support for Passthrough External and Internal Network Load Balancer logs (#44524)
Add support for Passthrough External and Internal Network Load Balancer logs to the Google Cloud log entry encoding extension.
This includes adding support for the newgcp.load_balancing.passthrough_nlbattributes including connection details,
bytes/packets sent and received, and RTT measurements. -
pkg/ottl: AddBoolfunction for converting values to boolean (#44770) -
processor/geoip: Bump oschwald/geoip2 to v2 (#44687) -
receiver/awscloudwatch: Add support for filtering log groups by account ID. (#38391) -
receiver/awscontainerinsightreceiver: Component type name renamed from awscontainerinsightreceiver to awscontainerinsight, controlled by feature gate receiver.awscontainerinsightreceiver.useNewTypeName. (#44052)
When the feature gate is enabled, the receiver uses the new type nameawscontainerinsightinstead ofawscontainerinsightreceiver.
To enable the new type name, use:--feature-gates=+receiver.awscontainerinsightreceiver.useNewTypeName. -
receiver/awslambda: Add support for AWS Lambda receiver to trigger by CloudWatch logs subscription filters for Lambda (#43504) -
receiver/awslambda: Add S3 failure replay support to AWS Lambda receiver (#43504) -
receiver/filelog: gzip files are auto detected based on their header (#39682) -
receiver/github: Addmerged_pr_lookback_daysconfiguration to limit historical PR queries and reduce API usage (#43388)
Themerged_pr_lookback_daysconfiguration option limits the timeframe for
which merged pull requests are queried. Set to 0 to fetch all merged PRs.
Open PRs are always fetched regardless of this setting. -
receiver/oracledb: Add stored procedure information to logs for top queries and query samples. (#44764)
Thedb.server.top_queryevent now includesoracledb.procedure_id,oracledb.procedure_name, andoracledb.procedure_typeattributes.
Thedb.server.query_sampleevent now includesoracledb.procedure_id,oracledb.procedure_name, andoracledb.procedure_typeattributes. -
receiver/postgresql: Addedservice.instance.idresource attribute for metrics and logs (#43907)
service.instance.idis enabled by default. -
receiver/postgresql: Add trace propagation support (#44868)
Whenpostgresql.application_namecontains a valid W3Ctraceparent, emitteddb.server.query_samplelogs includetrace_idandspan_idfor correlation. -
receiver/prometheus: Addreceiver.prometheusreceiver.RemoveReportExtraScrapeMetricsConfigfeature gate to disable thereport_extra_scrape_metricsconfig option. (#44181)
When enabled, thereport_extra_scrape_metricsconfiguration option is ignored, and extra scrape metrics are
controlled solely by thereceiver.prometheusreceiver.EnableReportExtraScrapeMetricsfeature gate.
This mimics Prometheus behavior where extra scrape metrics are controlled by a feature flag. -
receiver/systemd: Add metric for number of times a service has restarted. (#45071) -
receiver/windowseventlog: Improved performance of the Windows Event Log Receiver (#43195)
Previously, the Windows Event Log Receiver could only process events up to 100 messages per second with default settings.
This was because the receiver would read at mostmax_readsmessages within each configuredpoll_interval, even if
additional events were already available.This restriction has been removed. The
poll_intervalparameter behaves as described in the documentation:
Thepoll_intervalparameter now only takes effect after all current events have been read.For users who prefer the previous behavior, a new configuration option,
max_events_per_poll, has been introduced. -
receiver/windowseventlog: Add parsing for Version and Correlation event fields. (#45018)
🧰 Bug fixes 🧰
-
connector/count: Basic config should emit default metrics (#41769) -
exporter/elasticsearch: Deduplicate attribute keys from non-compliant SDKs in otel mapping mode (#39304)
The serializer in otel mapping mode now explicitly deduplicates attribute keys when writing to Elasticsearch,
keeping only the first occurrence. This prevents invalid JSON from being produced when
non-compliant SDKs send duplicate keys. -
exporter/kafka: Wrap non-retriable errors from franzgo with consumererror::permanent (#44918) -
exporter/loadbalancing: Fix k8s resolver parsing so loadbalancing exporter works with service FQDNs (#44472) -
pkg/translator/azurelogs: Fix missing data when ingesting Azure logs without properties field. (#44222) -
receiver/awss3: Fix data loss when SQS messages contain multiple S3 object notifications and some fail to process (#45153)
The SQS notification reader was unconditionally deleting messages after processing,
even when some S3 object retrievals or callback processing failed. This caused data
loss when a message contained multiple S3 notification records and any of them failed.
Messages are now only deleted when all records are successfully processed, allowing
failed records to be retried after the visibility timeout. -
receiver/azureeventhub: Make storage of new azeventhub library backward compatible and fix checkpoint starting at earliest when storage is enabled (#44461) -
receiver/fluentforward: Ensure all established connections are properly closed on shutdown in the fluentforward receiver. The shutdown process now reliably closes all active connections. (#44433)- Fixes shutdown behavior so that all existing connections are closed cleanly.
- Adds tests to verify proper connection closure.
-
receiver/kafka: Fix deprecated field migration logic for metrics, traces, and profiles topic configuration (#45215)
Fixed bug where deprecatedtopicandexclude_topicfields for metrics, traces, and profiles
were incorrectly checking logs configuration instead of their respective signal type's configuration.
This prevented proper migration from deprecated fields unless logs.topics was empty.
Also fixed validation error message typo for traces.exclude_topic and corrected profiles validation
to check ExcludeTopic fields instead of Topic fields. -
receiver/sqlserver: Collect query metrics for long running queries (#44984) -
receiver/tcpcheck: Fix the unit of th...