The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
End User Changelog
🛑 Breaking changes 🛑
-
connector/failover: Remove deprecated fieldretry_gapandmax_retries(#49583) -
connector/routing: Promote theconnector.routing.defaultErrorModeIgnorefeature gate to beta. The defaulterror_modeis nowignoreinstead ofpropagate. (#48418)
To restore the previous default ofpropagate, run the collector with the feature gate disabled by passing--feature-gates=-connector.routing.defaultErrorModeIgnore. -
processor/aws_ecs_attributes: Rename the component identifier fromawsecsattributestoaws_ecs_attributesto follow the component naming guidelines. (#44476)
The processor is still in development, so the old identifier is removed rather than kept as a deprecated alias. -
processor/filter: Promote theprocessor.filter.defaultErrorModeIgnorefeature gate to stable. The default top-levelerror_modeis now permanentlyignoreinstead ofpropagate. (#47232)
The gate will be removed in v0.159.0. -
processor/tail_sampling: Fix metric units to comply with the UCUM specification (#49453) -
processor/transform: Promote theprocessor.transform.defaultErrorModeIgnorefeature gate to stable. The default top-levelerror_modeis now permanentlyignoreinstead ofpropagate. (#47231)
The gate will be removed in v0.159.0. -
receiver/apache_spark: Fix metric units to comply with the UCUM specification (#49453) -
receiver/chrony: Fix metric units to comply with the UCUM specification (#49453) -
receiver/haproxy: Fix metric units to comply with the UCUM specification (#49453) -
receiver/host_metrics: Make thecpuattribute opt-in for hostmetrics CPU time and utilization metrics. (#49161)
By default,system.cpu.timeandsystem.cpu.utilizationare now aggregated across logical CPUs and no longer include thecpuattribute.
To restore the previous per-logical-CPU output, configure:receivers: hostmetrics: scrapers: cpu: metrics: system.cpu.time: attributes: [cpu, state] system.cpu.utilization: attributes: [cpu, state]
-
receiver/host_metrics: Enable thesystem.cpu.logical.countmetric by default in the CPU scraper. (#49325)
To restore the previous behavior, disable the new metric by applying the following config:receivers: host_metrics: scrapers: cpu: metrics: system.cpu.logical.count: enabled: false
-
receiver/memcached: Fix metric units to comply with the UCUM specification (#49453) -
receiver/mongodb: Fix metric units to comply with the UCUM specification (#49453) -
receiver/nginx: Fix metric units to comply with the UCUM specification (#49453) -
receiver/nsxt: Fix metric units to comply with the UCUM specification (#49453) -
receiver/redfish: Fix metric units to comply with the UCUM specification (#49453) -
receiver/splunk_enterprise: Fix metric units to comply with the UCUM specification (#49453) -
receiver/sqlserver: Fix metric units to comply with the UCUM specification (#49453) -
receiver/sqlserver: Changesqlserver.lock.timeout.rateto emit per-type data points (#48925)
sqlserver.lock.timeout.ratenow requires asqlserver.lock.timeout.typeattribute
(all,nonzero) and emits one data point per type. Users who enable this metric
will receive two data points per scrape instead of one. The metric stays
enabled: falseandstability: development.
🚩 Deprecations 🚩
all: Remove JMX receiver code (#45740)processor/cumulative_to_delta: Rename the 'cumulativetodelta' processor to 'cumulative_to_delta'. The old 'cumulativetodelta' type remains available as a deprecated alias. (#45339)processor/span_pruning: Renamespanpruningprocessor tospan_pruningand add deprecated aliasspanpruning(#47590)
🚀 New components 🚀
config/configdbauth: Add config fordbauth, so components can use this in the config to support databasee authentication like AWS IAM. (#49044)extension/dbauth: Add extension interface fordbauth. (#49044)
💡 Enhancements 💡
-
cmd/opampsupervisor: Include recent Collector log output when the Supervisor reports that the Collector crashed (#44836, #40173, #21079)
When a Collector process exits unexpectedly, the Supervisor now can add the relevant
tail of the Collector logs to the health and remote config failure messages sent
to the OpAMP server. This helps operators understand why a remote config failed
without first logging into the host to inspectagent.log. This behavior is
disabled by default; setagent::collector_crash_log_snippet_kibto a positive
KiB count, such as4, up to1024(1 MiB) to enable it. -
cmd/opampsupervisor: Add support for restoring the last working remote configuration when an incoming remote configuration fails to apply (#47192)
This behavior is controlled under the configuration optionagent.automatic_config_rollback.
When an old remote configuration is restored, the agent will report an "applied" status again
for this configuraiton. -
exporter/clickhouse: Updates the metrics tables default schemas (#49438)
Reduces Primary Key memory usage and colocates metrics by time more effectively -
exporter/datadog: Adddatadog.serializerexporter.UseSyncForwarderfeature gate (Alpha, disabled by default) that replaces the async DefaultForwarder with a synchronous forwarder so metric send failures are surfaced to OTel'sexporterhelperretry/queue layer. (#49571)
When enabled via--feature-gates=+datadog.serializerexporter.UseSyncForwarder, the metric serializer
exporter path gains three improvements over the legacy async forwarder:-
Error propagation: Datadog intake errors (5xx → retryable, 4xx → permanent drop) are returned
fromConsumeMetricsinstead of being silently swallowed.otelcol_exporter_send_failed_metric_points
now accurately reflects failures. -
OTel-native retry: Because errors are propagated, the configured
retry_on_failurepolicy is
respected. Transient 5xx errors are retried byexporterhelperrather than lost. -
Queue-overflow visibility: When the OTel sending queue fills up (workers blocked on slow/failed
intake calls),otelcol_exporter_enqueue_failed_metric_pointsincrements instead of metrics being
silently dropped inside the DefaultForwarder's internal queue.
Note:
retry_on_failureconfig now also takes effect on the serializer exporter path (previously it
was wired as disabled regardless of user config).
See DataDog/datadog-agent#51333. -
-
exporter/elasticsearch: Addretry::retry_on_document_statusto configure document-level retry status codes separately from request-level retries. (#48681) -
exporter/kafka: Addexporter.kafka.useRequestTypealpha feature gate that routes all signals through a custom exporterhelper.Request (#48090)
When the gate is enabled, traces, metrics, logs, and profiles all convert
pdata into Kafka records at request-creation time and use a custom
Request for queue/batch sizing.queue_batch.sizer: itemsthen counts
Kafka records, not OTLP items. The persistent queue (sending_queue.storage)
is not supported with this gate; configuring both produces an error at
startup. Default OFF. -
exporter/opensearch: Addmapping.manage_index_templateoption forotel-v1mode that creates the matching composable index templates on startup. (#48585)
When enabled, the exporter creates theotel-v1-apm-span-index-templateandotel-v1-logs-index-templatecomposable index templates idempotently on startup, materializingdate_nanostimestamp fields and the typed dynamic-attribute mappings before documents are indexed. If templates with the same names already exist (for example, user-customized variants), they are left in place rather than overwritten. Only valid withmapping.mode: otel-v1; validation rejects the combination with other modes. -
exporter/signalfx: Translatecpu.num_processorsfromsystem.cpu.logical.count. (#49296)
The exporter no longer derivescpu.num_processorsby counting per-coresystem.cpu.timeseries. -
exporter/signalfx: Simplifysystem.cpudefault translations now that hostmetrics CPU metrics are state-aggregated by default. (#49589)
The default translations no longer aggregate translated CPU metrics across thecpuattribute. If that attribute is explicitly re-enabled onsystem.cpu.time, translatedcpu.*andcpu.utilizationdatapoints keep it. -
exporter/signalfx: Exportsystem.cpu.timeandsystem.disk.ioby default (#49738) -
extension/google_cloud_logentry_encoding: Add feature gate to stop emitting deprecated rpc.jsonrpc.error_code and rpc.jsonrpc.error_message attributes (#22095)
The feature gate extension.encoding.googlecloudlogentryencoding.DontEmitV0RPCConventions
(disabled by default) allows users to opt out of the deprecated semconv v1.38.0 attributes.
The new attribute rpc.response.status_code is always emitted regardless of the gate. -
extension/oidc: Add ignore issuer in config for single provider setup and propagate it to go-oidc. (#46791) -
pkg/coreinternal: Migrate semantic conventions from v1.19.0 to v1.40.0 (#45294) -
pkg/experimentalmetricmetadata: Add feature-gated support for emitting entity events using the OpenTelemetry entity events specification log record format. (#49667) -
pkg/ottl: Add theWhenOTTL converter for selecting a value based on a lambda condition. (#49356) -
pkg/ottl: Add theMapKeysOTTL converter for transforming map keys with a lambda key mapper. (#49187) -
pkg/ottl: AddIsEmptyconverter that returnstruewhen the given value is nil or an empty value. (#49635) -
pkg/ottl: Add theAllOTTL converter for testing whether every slice or map element matches a lambda predicate. (#49188) -
pkg/ottl: Add theAnyOTTL converter for testing whether any slice or map element matches a lambda predicate. (#49188) -
pkg/ottl: Add theFilterOTTL converter for filtering slice and map values with a lambda predicate. (#49184) -
pkg/ottl: Add theReduceOTTL converter for folding slice and map values with a lambda accumulator. (#49191) -
pkg/ottl: Add an optionaltruncation_markerargument to thetruncate_allfunction to append a marker to truncated values (#49319) -
pkg/ottl: Add theFindOTTL converter for returning the first matching slice or map value from a lambda predicate, with an optional mapper to transform the result. (#49190) -
pkg/ottl: Add theMapEachOTTL converter for transforming slice and map values with a lambda mapper. (#49186) -
pkg/stanza: Thecsv_parseroperator now processes batches of entries without splitting them, improving performance. (#42390) -
pkg/translator/pprof: reduce redundant work in sample conversion (#49454) -
pkg/translator/pprof: Support translating OTLP sample attributes to pprof sample labels (#49480) -
processor/drain: Add positional parameter extraction for matched templates. (#48914)
Whenextract_parametersis true, the body tokens at<*>positions of the matched template are
written as a string slice attribute (defaultlog.record.template.params), one entry per<*>in
template order. -
processor/dynamic_sampling: Honour incoming W3C tracestate sampling threshold (ot=th) and randomness (ot=rv) when deciding and emitting. (#49311)
The processor now reads any upstreamot=thon incoming spans, applies equalizing
composition (min(P_upstream, 1/rate), matchingprobabilisticsamplerprocessor's
equalizing mode) and emits the effective threshold so downstream metric consumers
reconstruct the correct adjusted count for the original population. Randomness is
sourced fromot=rvif present, falling back to the trace ID. -
processor/gen_ai_normalizer: Add an opt-inoverwrite_schema_urlsetting to replace an existing scope schema URL after normalization writes an attribute. (#48280) -
processor/lookup: Addreload_intervalto theyamllookup source to periodically re-read the file without a collector restart. (#41816)
On a failed reload the previously loaded data is kept and a warning is logged. Reload
outcomes are recorded by thelookup_source_reloadsandlookup_source_reload_failures
metrics. -
processor/lookup: Add acsvlookup source supporting headered and headerless files, scalar or whole-row (map) values, and optional periodic reload. (#41816)
Columns may be selected by header name (key_column/value_column) or by 0-based
index (key_column_index/value_column_index). Setreload_intervalto re-read the
file without a collector restart. -
processor/resource_detection: Add internal telemetry to observe resource detection, in support of promoting the processor to stable. (#44595)
Adds three metrics:
otelcol.resourcedetection.detector.results(count of detection results),
otelcol.resourcedetection.detector.duration(per-detector latency), and
otelcol.resourcedetection.attributes.detected(attributes in the detected resource). -
processor/span_pruning: Add opt-in enable_bytes_metrics configuration and emit bytes_received, bytes_emitted, bytes_processed_input, and bytes_processed_output telemetry counters. (#49008) -
processor/tail_sampling: Add theprocessor.tailsamplingprocessor.usetracestatealpha feature gate, which makes theprobabilisticpolicy use W3Ctracestaterandomness for its sampling decision and rewrites the outgoingthto the effective sampling threshold across matched policies. (#48865) -
processor/transform: AddParseCEFfunction for parsing Common Event Format (CEF) security event data. (#48351) -
receiver/awsecscontainermetrics: Migrate container.image.tag (v1.21.0) semantic convention to container.image.tags (v1.42.0) (#45087) -
receiver/datadog: Map the Datadogkube_app_*tags to the Kubernetes recommendedapp.kubernetes.io/*semantic-convention attributes. (#49530)
kube_app_name,kube_app_instance,kube_app_version,kube_app_component,kube_app_part_ofandkube_app_managed_byare now translated toapp.kubernetes.io/name,.../instance,.../version,.../component,.../part-ofand.../managed-by. The tag mapping table is shared across traces, metrics and logs, so these tags are now recognized as resource attributes for all three signals instead of passing through unchanged. -
receiver/datadog: Translate Datadog span links and span events, including the nativespan_linksandspan_eventsfields sent by tracers. (#49528)
Span links were previously read only from the_dd.span_linksmeta tag and required hex-encoded ids, so links from Datadog tracers (which use the nativespan_linksfield with a 128-bittrace_id_highand W3C flags, or a decimal_dd.span_linksmeta form) were dropped. Span events (nativespan_eventsfield or theeventsmeta fallback) were not translated at all. Native representations take precedence over the meta form when both are present. -
receiver/file_stats: Add an opt-infile.includeattribute to thefile.countmetric (#49556) -
receiver/journald: Add the 'include_log_record_original' configuration option to allow adding the raw data read from journalctl as the 'log.record.original' attribute. (#47921) -
receiver/mysql: Addservice.instance.id,service.name, andservice.namespaceresource attributes to metrics and logs (#46605)
service.instance.idis a deterministic UUID v5 derived from the endpoint and is enabled by default.
service.name(defaults tounknown_service:mysql) andservice.namespaceare disabled by default
and can be enabled and overridden via theresource_attributesconfiguration. -
receiver/mysql: Add db.system.version and db.system.name as optional resource attributes (#47414) -
receiver/oracledb: Add OS-level metrics for the Oracle server (#48458)
Adds the opt-in metricsoracledb.system.cpu.count,
oracledb.system.memory.limit, andoracledb.system.process.count. -
receiver/oracledb: Add transaction, lock, and recovery metrics (#49064)
The new metrics are disabled by default and add no new database queries. -
receiver/oracledb: Adddb.namespaceattribute todb.server.session.wait_sampleevent (#49603) -
receiver/oracledb: Add real-time database health and efficiency indicator metrics. (#49087)
All metrics are disabled by default with development stability. -
receiver/oracledb: Add SGA component memory metrics (#48540)
Adds the opt-in metricsoracledb.sga.usageandoracledb.sga.limit. -
receiver/oracledb: Add session, in-database JVM, and OS resource metrics (#49065)
The new metrics are disabled by default and add no new database queries. -
receiver/postgresql: Add the postgresql.query.conflicts metric reporting queries canceled due to recovery conflicts on standby servers. (#49303)
The metric is disabled by default. Conflicts only occur on standby servers;
the metric will be zero on primary servers. -
receiver/postgresql: Align resource and metric attributes with OpenTelemetry semantic conventions behind the
receiver.postgresql.useOTelSemconv feature gate (alpha, disabled by default).
(#45347)- When gate enabled: single resource per server with server.address, server.port, service.instance.id (UUID v5)
- When gate enabled: db.namespace, db.collection.name, postgresql.index.name added as metric-level attributes
- When gate disabled (default): legacy per-entity resource model with postgresql.database.name, etc.
- receiver.postgresql.separateSchemaAttr kept at StageAlpha; mutually exclusive with useOTelSemconv
-
receiver/pprof: Set instrumentation scope name and version on pprof profiles based on the scraper mode (file, http client, http server, self). (#49209)
Each scraper now sets the instrumentation scope name using the receiver's ScopeName and a per-mode suffix, and the scope version from BuildInfo.The translator function is unchanged. -
receiver/rabbitmq: Add exchange-level metrics (rabbitmq.exchange.messages.published_inandrabbitmq.exchange.messages.published_out) scraped from the/api/exchangesendpoint, withrabbitmq.exchange.nameandrabbitmq.exchange.typeresource attributes. These metrics are disabled by default. (#49552) -
receiver/sqlquery: Honor thetimeoutsetting for the logs collection path so that a slow or blocked query no longer waits indefinitely. (#47114)
The metrics path already appliedtimeoutthrough the scraper controller; the logs path previously ignored it and
used an unbounded context. Settingtimeoutto a positive duration now bounds each log query execution. -
receiver/sqlserver: Add more lock and connection management metrics (#48925)
Adds the following metrics, all disabled by default:sqlserver.connection.reset.ratesqlserver.error.ratesqlserver.lock.block.countsqlserver.lock.escalation.ratesqlserver.lock.memorysqlserver.lock.request.ratesqlserver.lock.wait_time.total
-
receiver/sqlserver: Add index physical stats metrics (#49350)
Adds the following metrics, all disabled by default:sqlserver.index.fragmentation,
sqlserver.index.page.count,sqlserver.index.size,sqlserver.index.page.utilization,
andsqlserver.index.record.count. Collecting these metrics requires theCONNECT ANY DATABASEandVIEW ANY DEFINITIONpermissions in addition to the existing direct-connection
permissions. -
receiver/sqlserver: Add 10 new opt-in metrics for cursor management, worker threads, CLR execution, Service Broker task activation, and stored procedure monitoring. (#49257)sqlserver.cursor.countsqlserver.cursor.memory.usagesqlserver.cursor.plan.countsqlserver.cursor.request.ratesqlserver.worker.thread.countsqlserver.worker.request.countsqlserver.clr.execution.timesqlserver.task.countsqlserver.task.ratesqlserver.stored_procedure.invocation.rate
-
receiver/webhook_event: Add support for HMAC signature verification on incoming webhook requests (#47188)
🧰 Bug fixes 🧰
-
cmd/opampsupervisor: Pass agent CLI args to startup fallback config validation (#49609)
This should ensure the startup fallback configuration validation works
taking into account potential feature gates that may be enabled or disabled. -
exporter/clickhouse: Respect configured database when create_schema is false instead of always connecting to the default database. (#48050) -
exporter/coralogix: Fix domain_settings.compression being ignored when merging signal-level transport settings, so settings like zstd are correctly applied to logs, metrics, traces, and profiles. (#49662) -
exporter/file: Added 0644 permissions to created export files when rotation is enabled. (#49677)
When rotation is enabled, files are created with 0640 permissions as we did not pass FileMode to TimberJack (defaults to 0640). After this change, file creation for both rotation enabled or disabled is done with 0644 permissions. -
exporter/file: Migrate lumberjack-format rotated backup files to timberjack naming convention on startup to prevent unbounded disk usage after upgrade. (#47674)
After the migration from natefinch/lumberjack to DeRuina/timberjack (#45900), rotated backup
files created by the previous lumberjack-based exporter used a different filename pattern
(name-timestamp.ext) that timberjack does not recognise, causing them to be excluded from
max_backups and max_days enforcement and accumulate indefinitely on disk.
On startup, the file exporter now scans the log directory and renames any lumberjack-format
backup files to the timberjack convention (name-timestamp-size.ext), after which timberjack
manages their lifecycle normally. -
exporter/load_balancing: Improve endpoint distribution across large backend sets by increasing hash ring size, virtual node count, and removing endpoint-order bias during ring construction. (#41200)
This update raises the default virtual node count from 100 to 200 and the ring coordinate space from 36000 to 131071.
It also changes ring construction so all virtual points are generated first and assigned globally,
instead of letting earlier endpoints claim scarce positions before later endpoints are processed.
Together with the existing linear-probing collision handling, this reduces skew for large endpoint
sets and keeps ring assignment stable when the same endpoints are provided in a different order. -
exporter/opensearch: Reject attribute values substituted into dynamic index names when they would redirect writes to a system index or another index via a.prefix or..segment. (#49225)
A value substituted into a%{placeholder}index name that is empty, starts with., or contains
..is skipped in favor of the next attribute in the precedence order and then the configured
fallback, matching the existing missing-key behavior. Values that are merely invalid to OpenSearch
(for example uppercase) are still substituted as-is and rejected by OpenSearch at index time, so that
failure remains visible rather than being silently rerouted to the fallback index. -
exporter/splunk_hec: UsebuildInfo.Versionas fallback for__splunk_app_versionheader whensplunk_app_versionis not configured. (#49511) -
extension/azure_encoding: Fix NDJSON format detection failing for Azure blobs that use CRLF line endings. (#49608)
Azure Blob Storage exports may use Windows-style CRLF line endings. The NDJSON
detection heuristic checked for '}' immediately before '\n', but with CRLF the
byte before '\n' is '\r', causing the detection to fail with "unable to detect
JSON format". The fix also accepts '}\r' before '\n' as a valid NDJSON marker. -
internal/sqlquery: Close sql.Rows in QueryRows so the underlying driver connection is released on early-return and error paths. (#49462)
Fixes a memory leak in consumers of internal/sqlquery (sqlserver, postgresql, mysql, oracledb, sqlquery receivers). Previously, when ColumnTypes or row scanning returned early with an error, or when the context was cancelled mid-iteration, sql.Rows was never closed, so the underlying connection stayed marked in-use in the *sql.DB pool. On drivers that allocate per-connection buffers (e.g. go-mssqldb's 64 KiB TDS buffer), this manifested as steady RSS growth under long-running scrapes. -
pkg/azurelogs: Add support for additional time and property fields in Azure Resource Logs (#46162)
Azure resource logs are not standard. This change expands support for different resource types by adding support
for additional time and property fields that are less commonly used in Azure resource logs. -
pkg/fileconsumer: Fix fingerprint generation for gzip-compressed files when the file descriptor is positioned at a non-zero offset. (#49473) -
pkg/translator/jaeger: Preserve the sampled flag when translating spans between Jaeger and OTLP. (#48247)
The Jaeger to OTLP translators (proto and thrift) now map the Jaeger SampledFlag to bit 0 of the OTLP Span.flags field (the W3C Trace Context sampled bit), and the OTLP to Jaeger translator maps it back. Previously the sampled bit was always dropped in both directions, so downstream sampling-aware components lost that information whenever a Jaeger receiver or exporter was in the pipeline. -
processor/metrics_transform: Fix submatch_case config option having no effect at runtime by copying the field into the internal transform struct during config building. (#49171) -
processor/metrics_transform: aggregate_labels and aggregate_label_values operations no longer silently drop all data points when applied to Summary metrics. The operation is now skipped with a warning log instead. (#49456) -
processor/tail_sampling: Fix race condition where SetMaximumTraceSizeBytes updates could be applied after incoming traces are evaluated, causing traces to be incorrectly dropped as too large. (#48887)
In the iter loop, pending configuration updates (SetMaximumTraceSizeBytes and
SetSamplingPolicy) are now drained before processing incoming trace batches.
This prevents a non-deterministic Go select from picking the workChan case
before a config update channel, which previously caused TestDropLargeTraces
to fail flakily on CI. -
processor/tail_sampling: Treatthreshold_msas an exclusive lower bound whenupper_threshold_msis not set. (#49593) -
receiver/aws_lambda: Fix S3 service usage of the error replaying (#49671) -
receiver/datadog: Reconstruct the full 128-bit trace ID for every span in a payload instead of only for spans that appear after the one carrying_dd.p.tid. (#49496)
Only the chunk-local root span carries_dd.p.tid, and Datadog does not order spans root-first, so spans that preceded their root (within a chunk or across separately flushed chunks) kept a 64-bit zero-padded trace ID and no longer correlated with the rest of the trace, or with logs reconstructed from the samedd.trace_id/_dd.p.tid. Requires thereceiver.datadogreceiver.Enable128BitTraceIDfeature gate (beta, enabled by default). -
receiver/github: Process pull-requests in reverse order to adhere to chronological ordering (#48578) -
receiver/k8s_objects: Fix panic and data race in stopperChanList during leader election re-acquisition (#49601) -
receiver/macos_unified_logging: Register themacosunifiedloggingdeprecated type alias for non-darwin platforms (#49558)
This allows the available components reported over OpAMP to be consistent across platforms. -
receiver/mongodb: Ignore the$indexStatsscrape error that occurs when scraping views (#49494) -
receiver/podman_stats: Reportcontainer.blockio.io_service_bytes_recursive.read/.writewith unitByinstead of{operations}(#49580)
These metrics record byte counts (fromstats.BlockInput/BlockOutput) and
describe themselves as bytes, but declared the operation-count unit
{operations}. This aligns them with the equivalent dockerstats receiver
metric and with podman's own other byte-valued metrics. -
receiver/postgresql: Prevent table and index metrics collection from blocking when a PostgreSQL relation has an AccessExclusiveLock. (#49351) -
receiver/splunk_hec: Fix the receiver silently ignoring theread_header_timeoutandwrite_timeoutsettings, which were overridden by a hard-coded 20s timeout (#49483) -
receiver/statsd: Fix explicit bucket histogram mapping for StatsD timing metrics. (#49747) -
receiver/vcenter: Fixvcenter.vm.cpu.readinessalways reporting 0 by adding the missingsummary.quickStats.overallCpuReadinessproperty to the vSphere Retrieve call inVMs()(#48487)
API Changelog
🛑 Breaking changes 🛑
pkg/ottl: Break lambda arity validation into a separate function. (#49421)
This allows statically verifying arity.
💡 Enhancements 💡
-
internal/k8sinventory: Extract checkpoint package and update Observer interface to return startup errors. (#43602)- Extracted
internal/k8sinventory/checkpointas a shared package so checkpoint logic can be reused across observer implementations. - The
Observerinterface'sStartmethod now returns an error, allowing callers to detect and propagate startup failures.
- Extracted
-
pkg/ottl: AddLambdaActivation.IsArgBoundand variadic lambda argument evaluation helpers. (#49191)IsArgBoundreports whether a positional argument maps to a named formal parameter or a blank ("_") placeholder.- Lambda evaluation helpers now normalize only bound arguments.
-
pkg/pdatatest: AddIncludeHistogramExplicitBoundsoption to pmetricassert snapshot generation. (#49732)
The option includes histogram explicit bounds without including other histogram datapoint values.
Snapshot compaction preserves selected histogram datapoint assertion fields, including empty explicit bounds.
We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @Madhumasa84, @vladorf, @rishh09, @meldegwi, @Adii-45, @Mattcazz, @Lenormju, @callegarimattia, @shashank-reddy-nr, @rafaelrodrigues3092, @s3onghyun, @akgrover, @hogeheer499-commits, @rbkrabbe, @Easonliuuuuu, @monfardineL, @EraldCaka, @steveduan-IDME, @lizuju, @Dainerx, @agarvin-nr, @kartikgola, @rdvansloten, @knudtty, @ThyTran1402, @Sprakhar97, @Tjarnold1, @pkulkarni-newrelic, @W-Anubhav ! 🎉