The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
Unmaintained Components
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
- exporter/logicmonitor
- receiver/riak
End User Changelog
🛑 Breaking changes 🛑
-
all: Remove the deprecated SignalFx receiver. Use the OTLP receiver instead. (#51934) -
connector/service_graph: Remove deprecated feature gates connector.servicegraph.legacyLatencyMetricNames and connector.servicegraph.legacyLatencyUnitMs (#52246) -
exporter/signalfx: Stop producingdisk_ops.totalanddisk_ops.pendingmetrics with the default translation rules. (#52729)
Usesystem.disk.operationsinstead ofdisk_ops.total. It is sent by default as a cumulative counter, so the per-period
number of operations on a host can be charted with SignalFlow, for example:data('system.disk.operations', rollup='delta').sum(by=['host.name'])Use
system.disk.pending_operationsinstead ofdisk_ops.pending. Both are excluded by default, so replace
disk_ops.pendingwithsystem.disk.pending_operationsininclude_metrics:exporters: signalfx: include_metrics: - metric_name: system.disk.pending_operations
-
pkg/coreinternal: Promote internal.coreinternal.goldendataset.EmitV1DatabaseConventions and internal.coreinternal.goldendataset.DontEmitV0DatabaseConventions feature gates from Alpha to Beta. (#52690)
The gates are now enabled by default, so goldendataset generates db.system.name (semconv v1.40.0)
instead of the deprecated db.system (semconv v1.28.0). The migration remains reversible by disabling
the gates. -
pkg/coreinternal: Promote internal.coreinternal.goldendataset.EmitV1NetworkConventions and internal.coreinternal.goldendataset.DontEmitV0NetworkConventions feature gates to Stable. (#52503)
The gates can no longer be disabled. goldendataset now always generatesnetwork.local.address,
network.peer.address, andserver.address, and no longer generates the deprecatednet.host.ip,
net.peer.ip,http.host, andhttp.server_nameattributes. -
pkg/coreinternal: Promote internal.coreinternal.goldendataset.EmitV1RPCConventions and internal.coreinternal.goldendataset.DontEmitV0RPCConventions feature gates to Stable. (#52219)
The gates can no longer be disabled. goldendataset now always generatesrpc.methodand
service.peer.name, and no longer generates the deprecatedrpc.serviceandpeer.service
attributes. -
pkg/jaeger: Promote "pkg.translator.jaeger.EmitV1HttpConventions" and "pkg.translator.jaeger.DontEmitV0HttpConventions" feature gates to Beta. (#52146)
The Jaeger translator now emitshttp.response.status_codeinstead of the deprecatedhttp.status_codeby default. -
pkg/zipkin: Promote "pkg.translator.zipkin.EmitV1CloudResourceConventions" and "pkg.translator.zipkin.DontEmitV0CloudResourceConventions" feature gates to Beta. (#52148)
The Zipkin translator now emitscloud.resource_idinstead of the deprecatedfaas.idby default. -
pkg/zipkin: Promote "pkg.translator.zipkin.EmitV1NetworkConventions" and "pkg.translator.zipkin.DontEmitV0NetworkConventions" feature gates to Stable. (#52250)
The gates can no longer be disabled. The Zipkin translator now always emitsnetwork.local.address,
network.peer.address, andservice.peer.name, and no longer emits the deprecatednet.host.ip,
net.peer.ip, andpeer.serviceattributes. -
processor/resource_detection: Thesystemanddockerdetectors now setos.typetozosinstead of the deprecatedz_oson z/OS. (#52804) -
processor/transform: Remove the deprecatedflatten_dataconfig option. Useflatten.loginstead. (#32080) -
receiver/file_log: Remove stable gate filelog.protobufCheckpointEncoding (#52387) -
receiver/kafka_metrics: Remove stable receiver.kafkametricsreceiver.UseFranzGo gate (#52241) -
receiver/prometheus:__scheme__and__metrics_path__labels on scraped samples are no longer dropped from datapoint attributes. (#52736)
🚩 Deprecations 🚩
connector/routing: Stabilizing gate connector.routing.defaultErrorModeIgnore (#52352)processor/resource_detection: Thesystemdetector adds theos.build_idresource attribute and deprecatesos.build.id. (#52806)processor/resource_detection: Deprecate theazure.resourcegroup.nameresource attribute in favor ofazure.resource_group.name, behind theprocessor.azuredetector.RenameResourceGroupAttributefeature gate (#49079)
The newprocessor.azuredetector.RenameResourceGroupAttributefeature gate is alpha
and disabled by default, so the azure detector continues to emitazure.resourcegroup.nameand
there is no change in behavior. Enabling the gate makes the detector emit
azure.resource_group.nameinstead, matching the naming convention used by other semantic
convention attributes such ascloud.availability_zone. The gate is intended to be promoted to
beta, and enabled by default, in a future release, giving users time to migrate any
configuration that filters or routes onazure.resourcegroup.name.
💡 Enhancements 💡
-
connector/datadog: Useurl.templatefor HTTP client span resource names when it is present. (#52553)
From updated github.com/DataDog/datadog-agent modules: with the default resource name logic, HTTP client spans get resource names likeGET /users/{id}fromurl.template, and otherwise just the method (DataDog/datadog-agent#54496). -
connector/span_metrics: Reduce consume-path allocations by reusing shared metric keys, avoiding per-event attribute map copies, and filtering resource key attributes without a full map copy. (#49860)
Whencalls_dimensionsandhistogram.dimensionsare both empty, the duration
histogram reuses the calls metric key. Delta timestamp maps are allocated only
for delta temporality. Withevents.enabled, dimensions are resolved from span,
event, and resource attributes without building a merged map per event. When
resource_metrics_key_attributesis set, only the configured attributes are
copied into the resource key hash. -
exporter/azuredataexplorer: Restore the stability of the exporter fromunmaintainedtobeta(#52282) -
exporter/clickhouse: Size the ClickHouse client connection pool fromsending_queue.num_consumersby default. (#52350)
The metrics exporter uses one connection per metric type per consumer.
max_open_connsandmax_idle_connsset inendpointorconnection_paramsstill take precedence. -
exporter/clickhouse: Change the default column codec in the base table schemas fromZSTD(1)toZSTD(3). (#52705)
Only applies to newly created tables, existing tables are not altered. -
exporter/datadog: Useurl.templatefor HTTP client span resource names when it is present. (#52553)
From updated github.com/DataDog/datadog-agent modules: with the default resource name logic, HTTP client spans get resource names likeGET /users/{id}fromurl.template, and otherwise just the method (DataDog/datadog-agent#54496). -
exporter/datadog: Map the instrumentation scope name and version on logs tootel.scope.nameandotel.scope.version. (#52553)
From updated github.com/DataDog/datadog-agent modules: the deprecatedotel.library.*attributes are remapped to the new names (DataDog/datadog-agent#52945). -
exporter/datadog: Add the alpha feature gatedatadog.serializerexporter.EnableGaugeIntervalto use thedatadog.gauge.intervalattribute as the gauge reporting interval. (#52553)
From updated github.com/DataDog/datadog-agent modules (DataDog/datadog-agent#58408). -
exporter/elasticsearch: Add cumulative temporality support for histograms and exponential histograms (#52547)
Also adds atemporalityfield to serialized histograms and exponential
histograms documents in OTel mode. -
exporter/load_balancing: Route logs withoutservice.nameby a hash of their resource attributes withrouting_key: service, instead of sending all of them to one backend. (#52483)
Logs withoutservice.namenow spread over several backends instead of one. Setups with stateful processing behind the exporter will see a one-time rebalance after the upgrade. -
exporter/opensearch: Add opt-in ISM rollover and custom index-template mapping support for otel-v1 mode. (#48585)
mapping.ism.enabledprovisions an Index State Management rollover policy and an initial
write-aliased index on startup so otel-v1 indices roll over by size/age.mapping.index_template_file
deep-merges a user-supplied JSON overlay over the built-in otel-v1 template, letting operators uplift
attributes to typed fields or keep them un-indexed to avoid mapping explosion. Both options are
best-effort and only valid withmapping.mode: otel-v1. -
exporter/prometheus: Add the pkg.prometheus.KeepIdentifyingResourceAttributes feature gate to preserve service.name, service.namespace, and service.instance.id on target_info. (#48890) -
exporter/prometheus_remote_write: Add the pkg.prometheus.KeepIdentifyingResourceAttributes feature gate to preserve service.name, service.namespace, and service.instance.id on target_info. (#48890) -
exporter/prometheus_remote_write: Addotelcol_exporter_prometheusremotewrite_wal_send_failed_batchesandotelcol_exporter_prometheusremotewrite_wal_send_failed_samplesto count batches the write-ahead log drops after the remote endpoint rejects them (#51710) -
exporter/pulsar: Enable FreeBSD/amd64 builds for the Pulsar exporter. (#15781) -
exporter/splunk_hec: Map eBPF CPU and allocation profiles to AlwaysOn Profiling and count dropped unsupported profile records. (#52218) -
extension/aws_iam_db_auth: This adds a config schema generated via schemagen to this component. (#52836) -
extension/aws_logs_encoding: Promoteextension.encoding.awslogsencoding.DontEmitV0RPCConventionsfeature gate to beta. (#52432)
The CloudTrail log unmarshaler no longer emits the deprecated rpc.system and rpc.service (semconv v1.38.0) attributes by default; only rpc.system.name (semconv v1.40.0) is emitted. Disable extension.encoding.awslogsencoding.DontEmitV0RPCConventions to restore the deprecated attributes. -
extension/azure_auth: Implement the database credential provider interface for Azure authentication extensions. (#50294) -
extension/bearertokenauth: Expose the configured token as an OAuth2 token so the extension can be used as a token source (#50574)
This allowsbearertokenauthto be referenced as theoauthbearer_token_sourceof the Kafka
exporter and receiver, so a SASL/OAUTHBEARER token can be read from a file that is populated
out of band, such as a Kubernetes projected service account token. -
extension/google_client_auth: Migrate credential detection tocloud.google.com/go/authto support X.509 certificate-based Workload Identity Federation (WIF). (#52488) -
pkg/faro: Add atimestamp_microskey with the epoch microseconds to the log body when a Faro timestamp has sub-millisecond precision. (#52357) -
pkg/faro: Translate the new Faro mobile metadata fields inmeta.device,meta.os, andmeta.networkto and from logs. (#52314) -
pkg/kafka/configkafka: Addproducer::max_inflight_requests_per_brokerto configure the number of produce requests kept in flight per broker. (#52780)
Defaults to 1, preserving the previous behavior. Only takes effect withrequired_acks0 or 1;
values above 1 are rejected withrequired_acks: all. -
pkg/ottl: Use substring matching for literal-only patterns in IsMatch, delete_matching_keys, keep_matching_keys, replace_pattern and replace_all_patterns without changing regex semantics. (#52593) -
pkg/ottl: Allow converters and paths as keys in map literals, e.g.{ToUpperCase("key"): "value"}. (#52210)
Enable thepkg.ottl.enableDynamicMapKeysfeature gate to use this feature. -
pkg/ottl: Improve StandardStringLikeGetter performance by adding direct string conversion for int64 and bool values, avoiding unnecessary JSON marshaling. (#52596) -
pkg/ottl/contexts/xspanlink: Addottlspanlinkcontext, in the new experimentalxspanlinkmodule, exposing per-span-link fields (trace_id,span_id,trace_state,attributes,dropped_attributes_count,flags) for use in OTTL statements. (#26660) -
pkg/ottl/xottl: Add the experimentalToValidUTF8converter to replace invalid UTF-8 byte sequences in a string with a replacement string (#51717) -
pkg/stanza: Add anotelcoloperator that parses the collector's own self-logs, promotingts,level,msg, andresourceonto the log record's Timestamp, Severity, Body, and Resource. (#49525) -
processor/aws_ecs_attributes: Add the ECS metadata enrichment logic that attaches AWS ECS attributes to logs, metrics, traces and profiles. (#44476) -
processor/log_dedup: Addtimestamp_modeconfiguration option (aggregated(default) orpreserved) and new attributesfirst_event_timestampandlast_event_timestampto the logdedup processor. (#43647)aggregatedsets the emitted log's timestamp to export time (default behavior) and addsfirst_event_timestampto capture the original timestamp.preservedretains the timestamp from the first log received in the aggregation window (omitting redundantfirst_event_timestamp).last_event_timestamprecords the timestamp of the last log received in the window in all modes.
-
processor/redaction: Adds themasking_stringconfiguration to allow for configurable masking (#50801) -
processor/redaction: Rejecthash_functionvaluesmd5andsha1at startup when the collector runs in FIPS 140-3 mode. (#52501)
MD5 and SHA-1 are not FIPS 140-3 approved. A collector built with the Go FIPS module and run with
GODEBUG=fips140=onwould mark itself non-compliant on the first masked value andGODEBUG=fips140=only
would panic. The processor now fails configuration validation in FIPS mode. Nothing changes outside FIPS mode. -
processor/resource_detection: Trimmed builds no longer link dependencies for resource detectors that are not compiled (#47218) -
processor/resource_detection: Keep Kubernetes and OpenShift clients out of resource detector configuration imports. (#47218) -
processor/resource_detection: Add opt-inhost.idattribute to thek8s_apidetector, set from the node'sstatus.nodeInfo.machineID. (#52194) -
processor/resource_detection: Add theprocessor.resourcedetection.openshift.removeCloudNameRegionfeature gate to stop theopenshiftdetector from reportingcloud.regionon Azure and OpenStack clusters. (#48159)
The value was the Azure cloud environment name (e.g.azurepubliccloud) or the name of the OpenStackclouds.yamlentry, not a region. Theopenshiftdetector now uses the go-contrib SDK detector; while the gate is disabled the legacy value is still reported. It will be removed once the gate is stable. -
processor/rolling_span_latency: Addspan_kindsandalways_include_root_spansoptions to scope which spans are tracked and labeled. (#52061) -
processor/rolling_span_latency: This adds a config schema generated via schemagen to this component. (#52837) -
processor/transform: Add theprocessor.transform.enableExperimentalFunctionsfeature gate, which new transform processor functions will require while they are experimental. (#52523) -
processor/verify: Add cryptographic log record integrity verification toverifyprocessor. (#51383) -
receiver/flink_metrics: Add opt-inflink.job.idresource attribute to uniquely identify a job submission on job, task and operator metrics. (#49624)
The value is thejidalready returned by the Flink REST API. The attribute is disabled by default. -
receiver/google_cloud_spanner: Updateoperations_by_table_json_stringlabel in top minute transaction stats from rawstringtooperations_by_table_jsonvalue_typeso table operations are parsed and formatted as{table_name,insert_or_update_count,insert_or_update_bytes}. (#52267) -
receiver/google_cloud_spanner: Add user split points metrics (user_split_points/split_points_count) withtable_name,index_name,initiator,split_key, andexpire_timelabels (includinghide_split_stats_keysPII masking support forsplit_key) ingooglecloudspannerreceiver. (#52151) -
receiver/google_cloud_spanner: To support both GoogleSQL and PostgreSQL dialects, thesample_lock_requestsmetric label now reads from theSAMPLE_LOCK_REQUESTS_JSON_STRINGcolumn in SPANNER_SYS.TOP_MINUTE_LOCK_STATS. (#51637) -
receiver/google_cloud_spanner: Add remaining labels (start_time,query_text_fingerprint,query_text,query_text_truncated,session_id,query_id,api_client_header,user_agent_header,server_region,priority,transaction_type) andtruncate_textsupport tooldest_active_queriesmetrics to help identify and troubleshoot long-running active queries. (#52257) -
receiver/google_cloud_spanner: Add active partitioned DMLs metrics (num_partitions_total,num_partitions_complete,num_trivial_partitions_complete,rows_processed) to monitor the progress and execution of currently running Partitioned DML statements. (#52254) -
receiver/googlecloudmonitoring: Add support for GCP metrics with value typeDISTRIBUTIONand metric kindCUMULATIVE, converted to histograms with cumulative aggregation temporality. (#39600) -
receiver/host_metrics: Suppress warnings on Windows for not ready removable disks (#52723) -
receiver/kafka: Pass message metadata to opt-in message encoding extensions for all signals. (#51752) -
receiver/mongodb_atlas: Set the User-Agent header on MongoDB Atlas API requests to the collector name and version. (#52742) -
receiver/mysql: Addmysql.wait_event.typeandmysql.wait_event.nameattributes todb.server.query_sample, classifying the current wait asio,lock,synch, orCPU/User sleep/other. (#51432) -
receiver/oracledb: Addoracledb.wait.start_timeattribute todb.server.query_sampleevent to capture the timestamp when the current wait started. (#52770) -
receiver/postgresql: Add thepostgresql.backend.typeattribute to thedb.server.query_sampleevent. (#52615) -
receiver/postgresql: Extract the trace context ofdb.server.query_samplerecords from a SQLCommentertraceparentcomment in the sampled query. (#52227)
Atraceparentinapplication_namekeeps precedence. -
receiver/prometheus: Introduce alpha feature gatereceiver.prometheus.UseTargetUrlForServerAddressto populateserver.address,server.port, andurl.schemefrom post-relabeling__address__and__scheme__target labels instead of parsinginstanceand pre-relabeling service discovery labels. (#52565, #52570) -
receiver/prometheus_simple: Log a warning at start naming thetlssettings that cannot be forwarded to the Prometheus scrape config when the target is scraped over https. (#52081) -
receiver/receiver_creator: Improve extensibility ofreceivercreatorrules by allowing use of customobserver.EndpointDetails"types" (#50548)
Thereceivercreatorconfiguration validation no longer requires that the rule'stype == <endpoint_details>
prefix match one of theobserver.EndpointDetails"types" defined in this repository. Now it only enforces the syntax requirements.
The old enforcement didn't allow downstream distributions to create their ownobserver.EndpointDetailsmaps
making harder to developer new observers that could be used with thereceivercreator. -
receiver/sql_query: Support Microsoft Entra authentication for Azure SQL and Azure Database for PostgreSQL, including managed identities. (#50294) -
receiver/sql_server: Support database credential providers throughdb_auth. (#50294) -
receiver/sql_server: Adddatabasesandexclude_databasesoptions to limit the databases that metrics and events report on. (#52529) -
receiver/udp_log: Addresolve_namesoption to allow disabling reverse DNS lookups when network attributes are enabled. (#52603)
🧰 Bug fixes 🧰
-
cmd/opampsupervisor: Stop losing the last lines of Collector output when passthrough logging is enabled. (#52675)
The Supervisor read the Collector's stdout and stderr through pipes thatexec.Cmd.Waitcloses as soon
as the process exits, so output still in flight, such as a final error line before a crash, could be dropped. -
connector/datadog: Update go-sqllexer to v0.2.6 for SQL obfuscation. (#52553)
Fixes PostgreSQL strings containing backslashes being truncated, MySQLdb . tableidentifiers being altered, and Db2 literals with backslashes (DataDog/datadog-agent#57039, DataDog/datadog-agent#58950). -
connector/datadog: Fix several APM stats computation issues. (#52553)
From updated github.com/DataDog/datadog-agent modules:traces.ignore_resourcesnow matches as a regular expression, as documented, instead of by exact name (DataDog/datadog-agent#58619).- Spans whose stats were already computed by the tracer (
_dd.stats_computed) are skipped, so they are no longer counted twice (DataDog/datadog-agent#54280). - Malformed spans are normalized before stats are computed (DataDog/datadog-agent#56205).
- Spans with timestamps far in the future are counted in the current stats bucket instead of creating future buckets (DataDog/datadog-agent#56608).
-
connector/span_metrics: Fix delta timestamp collisions between resources with matching dimensions, preventing downstream cumulative counters from resetting. (#52145)
Metric names, attributes, and delta values are unchanged.
When unset,metric_timestamp_cache_sizenow defaults to 10 timesresource_metrics_cache_size, with a minimum of 1000 (10000 with default settings).
Users who explicitly setmetric_timestamp_cache_sizemay need to increase it because cache entries now include resource identity.
The "Evicting cached delta timestamp" log level changes from Info to Debug. -
exporter/awss3: Wrap theAssumeRoleProviderin a credentials cache whens3uploader::role_arnis set, so STSAssumeRoleis not called on every S3 request (#52109) -
exporter/azuredataexplorer: Propagate caller's context to Kusto ingestion submission so configured timeouts and cancellations are honored (#51872)
Previously, ingestion calls used context.Background(), causing exports to ignore configured timeout deadlines.
The default configuration (timeout: 0) is unchanged and still runs without a deadline; only an explicitly
configuredtimeoutis now enforced. -
exporter/datadog: Obfuscate SQL span attributes, keep the tracer's sampling decision maker, and let numeric span attributes take precedence over resource attributes. (#52553)
From updated github.com/DataDog/datadog-agent modules:db.statementanddb.query.texton SQL and Cassandra spans are now obfuscated instead of sent raw, andsql.queryis no longer added unless the tracer set it (DataDog/datadog-agent#57166).- The sampling decision maker
_dd.p.dmset by a Datadog SDK is preserved instead of being overwritten with-4(DataDog/datadog-agent#58471). - A numeric span attribute now overrides a resource attribute with the same key instead of both being emitted (DataDog/datadog-agent#58893).
-
exporter/datadog: Fix histogram edge cases and serverless host attribution, and stop sending an empty host resource on hostless series. (#52553)
From updated github.com/DataDog/datadog-agent modules:- Histogram and exponential histogram points with more than about 268M observations are dropped with a warning instead of exhausting memory, and a cumulative count that drops without a reset no longer reports huge
.countvalues (DataDog/datadog-agent#57002). - Distributions made from OTLP histograms no longer have a minimum greater than their maximum (DataDog/datadog-agent#57109).
- The serverless source is derived from
cloud.resource_id, so valid serverless resources no longer fall back to the Collector hostname (DataDog/datadog-agent#57852). - Azure Container Apps detection now requires
replica(orservice.instance.id); incomplete resources fall back to hostname detection (DataDog/datadog-agent#57323). - Series without a hostname, such as
otel.datadog_exporter.metrics.running.*, no longer carry an emptyhostresource (DataDog/datadog-agent#56455).
- Histogram and exponential histogram points with more than about 268M observations are dropped with a warning instead of exhausting memory, and a cumulative count that drops without a reset no longer reports huge
-
exporter/datadog: Update go-sqllexer to v0.2.6 for SQL obfuscation. (#52553)
Fixes PostgreSQL strings containing backslashes being truncated, MySQLdb . tableidentifiers being altered, and Db2 literals with backslashes (DataDog/datadog-agent#57039, DataDog/datadog-agent#58950). -
exporter/elasticsearch: Fix failed document log fields accumulating across documents in a bulk response, which leaked previous documents' fields and input into later error logs. (#52714) -
exporter/elasticsearch: Add authentication credential support to the Elasticsearch Exporter version check (#52437) -
exporter/file: Fix race condition in fileExporter Shutdown causing nil pointer dereference panic when concurrent exports are in-flight (#46871)
Calls to export telemetry after or during shutdown now return io.ErrClosedPipe
instead of panicking, and repeated calls to Shutdown are idempotent.
Shutdown also now waits for any active background flush to complete before closing the file. -
exporter/file: Log the first periodic flush error for each output file writer. (#52574) -
exporter/file: Report file close errors during shutdown when group_by is enabled. (#52587) -
exporter/prometheus_remote_write: Unblock the write-ahead log when the remote endpoint rejects the record at the head of the queue (#51710) -
exporter/signalfx: Replace queued entity event dimension updates with the latest entity state instead of merging them. (#52610) -
exporter/signalfx: Applydimension_client::strip_k8s_label_prefixand thekubernetes_service_property rename to dimension updates converted from entity events. (#52607) -
extension/aws_logs_encoding: Parse ELB access logs whose client and target addresses use unbracketed IPv6 host:port form. (#52532) -
extension/http_forwarder: Preserve all values of HTTP response headers, including multiple Set-Cookie headers. (#52453) -
extension/http_forwarder: Avoid false response truncation warnings for chunked and HEAD responses. (#52589) -
extension/opamp: Report health updates when only nested component statuses change. (#51862) -
internal/docker: Close underlying Docker sdk client transport on Client.Close() to prevent socket leak. (#51972) -
pkg/coreinternal: Fix strptime time parsing never returning for a format that repeats a directive, such as%H %H. (#52627) -
pkg/fileconsumer: Fix log loss on graceful shutdown under back pressure (#52067)
Logs interrupted by shutdown are now re-read after restart instead of being skipped, so delivery is at-least-once and some logs may be duplicated.
This only holds with thestanza.synchronousLogEmitterfeature gate enabled; with the default batching emitter, buffered logs can still be lost on shutdown.
For gzip files, the whole interrupted file chunk is re-read instead of being skipped. -
pkg/ottl: Make theMD5,SHA1andCommunityIDconverters work when the collector runs in strict FIPS 140-3 mode (GODEBUG=fips140=only). (#52479)
These converters hash telemetry data for non-security purposes. The digest is now computed with
crypto/fips140.WithoutEnforcement, so a collector built with the Go FIPS 140-3 module and run with
GODEBUG=fips140=onlyno longer fails or panics when a statement uses them. The algorithms themselves
are still not FIPS approved and must not be used for any security function. -
pkg/prometheus: Correct UCUM time and byte unit conversions behind the pkg.translator.prometheus.CorrectUCUMUnits feature gate. (#52480) -
pkg/stanza: Preserve multiline message bodies in the syslog parser for RFC3164 records without octet counting. (#51554) -
processor/cardinality_guardian: Fix growth detection so a label producing a steady stream of new values each epoch is enforced after its first epoch, not only during it (#50403) -
processor/cumulative_to_delta: Return an error when an invalid regexp is configured inincludeorexcludeinstead of panicking on the first metric batch (#51963) -
processor/log_dedup: Flush pending aggregated logs on shutdown with a non-cancelled context so downstream consumers do not reject them (#52316) -
processor/redaction: Record thebodykey in the redaction summary attributes when a string log body matches an allowed value (#50417)
Previously the processor returned early without recording the allowed value, so an
allowed string log body was never reflected inredaction.body.allowed.keys/
redaction.body.allowed.count. -
processor/redaction: Mask a whole multi-line value matched by blocked_key_patterns with a single mask or hash. (#50296) -
processor/resource_detection: Theeks,k8s_apiandkubeadmdetectors no longer fail at startup when the Collector is not running in Kubernetes; they return no attributes, or fail detection whenfail_on_missing_metadatais enabled. (#52552) -
processor/tail_sampling: Preserve resource and scope schema URLs when splitting incoming spans by trace ID. (#51524) -
receiver/awsecscontainermetrics: Prevent a panic in getResourceFromARN when the task ARN has fewer than 5 colon-separated segments. (#51810) -
receiver/azure_blob: Fix a panic in Event Hub mode when a blob is created in a container whose signal has no configured pipeline. (#52448) -
receiver/azure_event_hub: Report the number of log records, metric data points and spans in the receiver accepted and refused metrics, instead of the number of Event Hub events. (#52785) -
receiver/cloudflare: Applymax_request_body_sizeto the HTTP server so configured limits above 20MiB are honored. (#51897) -
receiver/docker_stats: FixContainerEnvToMaptruncating env var values that contain=(e.g.JAVA_OPTS=-Xmx=512m, base64 strings, connection strings). Split on only the first=to preserve the full value. (#51948) -
receiver/flink_metrics: Record JVM garbage collector metrics for the JobManager and TaskManagers with both the G1 and Parallel collectors. (#52405)
The receiver mapped only PS_* collector names for the JobManager and only G1_* names for the TaskManagers.
With G1, the JVM's default collector, the JobManager reported noflink.jvm.gc.collections.countor
flink.jvm.gc.collections.timedata points. -
receiver/googlecloudmonitoring: Preserve distribution sums when converting Google Cloud Monitoring distributions to histograms. (#49409) -
receiver/googlecloudmonitoring: Skip metrics with unsupported value type and metric kind combinations instead of forwarding metrics with no data, which broke downstream exporters with errors like "metrics type is unset". (#39600) -
receiver/k8s_cluster: Don't emit container entity events for containers that don't have a container ID yet. (#52722) -
receiver/k8s_cluster: Use the pod spec image forcontainer.image.nameandcontainer.image.tag, consistent withk8sattributesprocessor. (#46541)
Previously the status image was used, which some runtimes report as a bare digest (sha256:<hex>).
Values may change for images without a fully qualified registry (e.g.nginxinstead ofdocker.io/library/nginx).
Previously the status image was used, which some runtimes report as a bare digest (sha256:<hex>).
Values may change for images without a fully qualified registry (e.g.nginxinstead ofdocker.io/library/nginx). -
receiver/libhoney: Fix panics when event fields have an unexpected type, such as an integerduration_msor a nulltrace.parent_id(#52072)
Values from the request body were converted with unchecked type assertions, so a valid but unexpected type
(for example an integer duration sent with msgpack, or a JSON null parent id) panicked the request handler and
dropped the whole batch. Integer durations are now accepted, and fields with an unexpected type are ignored. -
receiver/libhoney: Enforce decompressed body size limit to prevent OOM (#51985) -
receiver/mongodb: Derive the UUID v5service.instance.idoutside FIPS 140-3 strict enforcement so the receiver no longer panics underGODEBUG=fips140=only. (#52539)
The identifier is derived withuuid.NewSHA1, which is not a security use of SHA-1. The value is unchanged. -
receiver/mysql: Derive the UUID v5service.instance.idoutside FIPS 140-3 strict enforcement so the receiver no longer panics underGODEBUG=fips140=only. (#52539)
The identifier is derived withuuid.NewSHA1, which is not a security use of SHA-1. The value is unchanged. -
receiver/postgresql: Derive the UUID v5service.instance.idoutside FIPS 140-3 strict enforcement so the receiver no longer panics underGODEBUG=fips140=only. (#52539)
The identifier is derived withuuid.NewSHA1, which is not a security use of SHA-1. The value is unchanged. -
receiver/prometheus: Keep credentials inproxy_urland other URL fields on config reload instead of replacing the password withxxxxx. (#52337) -
receiver/prometheus_remote_write: Answer400 Bad Requestinstead of204 No Contentwhen a native histogram is dropped for its bounds or buckets and Prometheus' own validation refuses it too. (#50340) -
receiver/prometheus_remote_write: Report zero in theX-Prometheus-Remote-Write-*-Writtenresponse headers when a request is refused as invalid. (#50340) -
receiver/prometheus_remote_write: Count the samples of dropped classic histogram and summary series in theX-Prometheus-Remote-Write-Samples-Writtenresponse header, count the dropped series in the newotelcol_receiver_prometheusremotewrite_dropped_seriesinternal metric, and log each one at Debug level instead of Info. (#52224) -
receiver/prometheus_remote_write: Drop float flavored native histograms and rebuild the data point count from the translated buckets. (#50337)
A count can be lower than the one Prometheus sent, because observations that
no bucket represents are not counted. A custom bucket histogram whose bounds
or buckets cannot be represented is now dropped and logged at error level. -
receiver/splunk_enterprise: Close the HTTP response body when setting the search job TTL (#51986)
The response body of the search job TTL request was never closed on a successful response, or when reading it failed.
This leaked a connection on every search scrape. The body is now always closed.
API Changelog
🛑 Breaking changes 🛑
all: Remove the deprecated SignalFx receiver. Use the OTLP receiver instead. (#51934)processor/resource_detection: Change the type of theopenshiftdetectortokenoption toconfigopaque.Stringso it is redacted when the configuration is printed. (#52775)processor/transform: Remove the deprecatedflatten_dataconfig option. Useflatten.loginstead. (#32080)
💡 Enhancements 💡
extension/encoding: Add optional message decoding interfaces with explicit client metadata options for all signals. (#51752)pkg/ottl/contexts/xspanlink: Addottlspanlinkcontext, in the new experimentalxspanlinkmodule, exposing per-span-link fields (trace_id,span_id,trace_state,attributes,dropped_attributes_count,flags) for use in OTTL statements. (#26660)pkg/semconvtest: Pin the default semantic-conventions registry to a release instead of floating on main (#52122)receiver/receiver_creator: Improve extensibility ofreceivercreatorrules by allowing use of customobserver.EndpointDetails"types" (#50548)
Thereceivercreatorconfiguration validation no longer requires that the rule'stype == <endpoint_details>
prefix match one of theobserver.EndpointDetails"types" defined in this repository. Now it only enforces the syntax requirements.
The old enforcement didn't allow downstream distributions to create their ownobserver.EndpointDetailsmaps
making harder to developer new observers that could be used with thereceivercreator.
We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @nikhilred2619, @ssijbabu, @chethankumblekar, @arxhr007, @gssbzn, @slashpai, @benjoseph-grafana, @SaifuddinM23, @cesan3, @atharvamhaske, @eugenekurasov, @bwplotka, @tanmaya-panda1, @dsyme, @nbiswal1, @sk-85, @robertrv, @shubhayu-dev, @ricardbejarano, @0x5t4l1n, @Akash-Kumar-Sinha, @shubhamrai9122-creator, @gezapeti, @thiagocarneiro90, @noctchillin, @smarri4, @vesari ! 🎉