The OpenTelemetry Collector Contrib contains everything in the opentelemetry-collector release, be sure to check the release notes there as well.
Unmaintained Components
These components are marked as Unmaintained and will eventually be removed from our community distributions. If you depend on these components we need your help to support them.
- receiver/huaweicloudcesreceiver/
- receiver/simpleprometheusreceiver/
End User Changelog
🛑 Breaking changes 🛑
-
all: Removes the kafkatopicsobserver extension after being deprecated for 3 months (#48186)
Use thekafkareceiverwith topic regex support instead. -
extension/observer: Removes thekafka.topicsendpoint type along with the kafkatopicsobserver extension (#48186)
Theobserver.KafkaTopicTypeendpoint type and itsobserver.KafkaTopicdetails struct are
removed, as the kafkatopicsobserver was the only observer emitting them. The receivercreator
no longer acceptstype == "kafka.topics"rules or resource attributes for that endpoint type. -
processor/dynamic_sampling: Reserve the "" prefix in rule names for processor-internal decision labels, and rename the unmatched-drop sentinel to_unmatched(#49311)
Configs with rule names starting with "" are now rejected at validation, so user rule
names can never collide with the processor-owned sentinel labels on decision metrics
(_eviction,_root_span_condition). Theruleattribute value for traces dropped with
no matching rule changes fromunmatchedto_unmatchedto follow the same convention. -
receiver/file_log:ordering_criteria::top_n: 0now means 'match all files' instead of silently behaving liketop_n: 1. (#47444)
To restore the previous behavior of matching the first file only, setordering_criteria::top_n: 1.
🚩 Deprecations 🚩
-
exporter/azure_monitor: Renameazuremonitortoazure_monitor(#45339) -
exporter/signalfx: Remove the logic sending trace correlation. (#50166)
The trace correlation endpoint is no longer processing requests as the logic has moved
to be handled by the backend. With this change, the exporter continues to accept spans
but will no longer send them to the correlation endpoint. -
receiver/file_log: Deprecate the implicitordering_criteria.top_ndefault of 1 whenordering_criteria.sort_byis configured. Enable thefilelog.requireExplicitTopNfeature gate to requiretop_nto be set explicitly. (#47444)
Whenordering_criteria.sort_byis configured withouttop_n, the matcher
silently defaultstop_nto 1, returning only the single highest-priority file
per poll. With multiple actively-written files this causes severe log
duplication: the other matching files cycle in and out of the tracker and are
re-read from offset 0 on rediscovery.Enabling the
filelog.requireExplicitTopNfeature gate makes an unsettop_na
startup error whensort_byis configured, forcing the choice to be explicit.
The gate is off by default; it is expected to become the default (and the
implicit fallback removed) in a future release. Usetop_n: 1to keep the
previous behavior.Independently of the feature gate,
top_n: 0now means "match all files"
instead of silently behaving liketop_n: 1. -
receiver/sql_query: Rename the 'sqlquery' receiver to 'sql_query'. The old 'sqlquery' type remains available as a deprecated alias. (#45339)
🚀 New components 🚀
extension/sd_notify: Introduces thesd_notifyextension, which integrates the collector with the sd_notify(3) protocol. (#49607)
💡 Enhancements 💡
-
cmd/opampsupervisor: Add tar.gz archive support and the agent_binary configuration for collector package upgrades. (#49766) -
exporter/awscloudwatchlogs: Add max_event_payload_bytes config option to opt in to the CloudWatch Logs 1 MiB per-event limit (previously hardcoded to 256 KiB). (#48559)
The CloudWatch Logs PutLogEvents API began accepting events up to 1 MiB on
2025-04-02. The exporter previously truncated every event at 256 KiB (the
pre-2025 service limit) via a hardcoded package constant. The default stays
at 256 KiB for backwards compatibility; setmax_event_payload_bytes: 1048576
to take advantage of the new ceiling. A newcwlogs.WithMaxEventPayloadBytes
pusher option exposes the same knob to direct callers of the internal package. -
exporter/azure_monitor: Allow configuring HTTP status codes that should not be marked as errors in Application Insights. (#47691)
Addstelemetry_mappings.traces.http.successsettings for HTTP success mapping:
additional_success_status_codeslists status codes treated as Success on both
server and client HTTP spans, andserver_policy: oteltreats 4xx responses on
HTTP server spans as Success, matching the OpenTelemetry HTTP semantic conventions.
Defaults preserve the existing exporter behaviour. -
exporter/load_balancing: Promote metrics support to alpha stability (#50086) -
exporter/opensearch: Add integration test harness against a real OpenSearch instance (#48615)
Introduces testcontainers-go setup to validate exporter behavior,
dynamic mappings, and cluster connectivity. -
exporter/prometheus_remote_write: Add a nestedhttpconfig block for HTTP client settings. The nested block takes precedence over flat HTTP client settings when set. (#46209) -
exporter/prometheus_remote_write: Add the exporter ID as an attribute on WAL telemetry metrics to disambiguate multiple PRW exporters sharing a collector. (#49130) -
exporter/signalfx: Stop excludingcontainer.memory.rssin SignalFx exporter by default. (#50162) -
extension/aws_iam_db_auth: Changeaws_iam_db_authto alpha (#50118) -
extension/pebble_tail_storage: Addedmax_storage_size_mibsupport to the Pebble tail storage extension to bound local disk usage for pending tail-sampling trace data. (#49592)
Configuration example:
extensions:
pebble_tail_storage:
directory: /var/lib/otelcol/pebble-tail-storage
max_storage_size_mib: 10240 -
extension/sumologic: Add optionalfleet_idconfiguration field to assign a collector to a fleet during registration. (#50142)
When fleet_id is configured, it is sent as fleetId in the collector registration request.
If the server returns an invalid_fleet_id or fleet_not_found error, registration is
retried without the fleet ID so the collector can still register successfully. -
pkg/datadog: Add thedatadog.EnableScopeConventionfeature gate to control theotel.scopename and version conventions in the Datadog exporter. (#49001)
When thedatadog.EnableScopeConventionfeature gate is enabled, spans additionally
carry theotel.scope.nameandotel.scope.versionattributes. The deprecated
otel.library.nameandotel.library.versionattributes are still emitted with the
same values for backward compatibility, so existing dashboards and monitors keyed on
them keep working. -
pkg/fileconsumer: Move filelog.allowFileDeletion and filelog.windows.caseInsensitive filelog.featuregates to beta (#46635) -
pkg/ottl:pcommon.Valueis now comparable using all comparison operators (==, !=, <, <=, >=, >) in OTTL expressions (#49170) -
pkg/ottl: Thesetfunction will passnilvalues directly to the target when theottl.set.allowNilfeature gate is enabled. (#48714) -
processor/dynamic_sampling: Reduce hot-path overhead with a fast path for the default root-span condition, cheaper decision-cache ordering, precomputed metric attributes, and a precomputed emitted tracestate. (#49311) -
processor/dynamic_sampling: Document known limitations, the metric label contract (sentinel rule values, trigger values), and refresh the future work list (#49311) -
processor/dynamic_sampling: Move buffered spans into the output at decision time instead of copying them, halving decision-path allocations. (#49311) -
processor/dynamic_sampling: Drain pending traces on shutdown, deciding each through the normal rule path instead of silently dropping the buffer (#49311)
Previously a collector restart, rollout, or config reload discarded every buffered trace
without a decision (up to trace_timeout worth of spans). Shutdown now decides each pending
trace with the spans seen so far, forwards the kept ones with a correct ot=th tracestate,
and reports them on the decision-triggers counter with trigger="shutdown". Traces already
counted by an earlier trigger are not counted again, and the same double-count guard is
applied to eviction of a trace in its decision_delay window. -
processor/dynamic_sampling: UseMoveToinstead ofCopyTowhen accumulating and forwarding spans, reducing allocations and improving throughput. (#49311) -
processor/resource_detection: Add feature gates to migrate theelastic_beanstalkdetector to the current deployment semantic conventions. (#50130)
The detector reports the deployment environment asdeployment.environment, which is deprecated in
the semantic conventions, and the deployment ID asservice.instance.id. Two alpha feature gates
migrate them todeployment.environment.nameanddeployment.id:
processor.resourcedetection.elasticbeanstalk.EmitV1DeploymentConventionsadds the current
attributes, andprocessor.resourcedetection.elasticbeanstalk.DontEmitV0DeploymentConventions
removes the deprecated ones. Enabling only the first reports both sets, so telemetry
can be migrated before the deprecated attributes are dropped. Enabling only the second is rejected
at startup. The default output is unchanged. -
processor/resource_detection: Support global retry config for resource detection processor (#46546) -
processor/resource_detection: Add Azure Container Apps resource detector (#48239) -
processor/resource_detection: Add theprocessor.resourcedetection.consul.prefixMetaAttributesfeature gate, which emits Consul node metadata asconsul.meta.<key>resource attributes. (#49988)
The gate is alpha and disabled by default, so Consul meta attribute names are unchanged unless the
gate is enabled. This namespaces Consul meta consistently with the other detectors that expose
user-defined key/value data, such asec2.tag.andopenstack.nova.meta.. -
processor/tail_sampling: Addnum_shardsconfig option to run N parallel event loops, sharding traces by trace ID to reduce contention under high load. (#48699)
The single event loop can become a bottleneck under high throughput because
trace ingestion starves sampling decision evaluation. Settingnum_shards
to a value greater than 1 distributes traces across independent goroutines,
each with its own storage and decision batcher. The default value of 1
preserves the original single-loop behavior.
To keep aggregate behavior consistent with the configured values,
num_traces,expected_new_traces_per_sec,decision_cachesizes, and
per-second rate limits in policies (rate_limiting,bytes_limiting, and
compositemax_total_spans_per_second) are divided evenly across shards.
Limiterburst_capacityis not divided so that single large traces remain
admissible regardless of the shard count.
Thesampling_traces_on_memorymetric reports the total across all shards. -
processor/transform: Add support for semconv1.41.0,1.42.0and1.43.0in theset_semconv_span_name()function. (#50198) -
receiver/apache: Change theapache.worker.limitmetric type from a gauge to a non-monotonic cumulative sum (UpDownCounter) (#47061)
An UpDownCounter better represents the configured worker slots, which can go up or down over time. -
receiver/apache: Add an opt-in migration to new, more consistent metric and attribute names behind feature gates (#47327)
The original metric and attribute names remain the default. Enable
receiver.apache.enableNewFormatMetricsto also emit the new names, and
additionally enablereceiver.apache.disableOldFormatMetricsto emit only the
new names. See the receiver's README for the migration guide and full mapping.
Renamed metrics:apache.current_connections->apache.connection.activeapache.connections.async->apache.connection.statusapache.requests->apache.request.countapache.scoreboard->apache.worker.statusapache.workers-> replaced byapache.worker.activeandapache.worker.idle
Renamed attributes:connection_state->apache.connection.statestate(on the scoreboard metric) ->apache.worker.statelevel(onapache.cpu.time) ->apache.process.levelmode(onapache.cpu.time) ->cpu.mode
-
receiver/apache: Addapache.request.rate,apache.traffic.rate(disabled by default), andapache.worker.limitmetrics (#47061) -
receiver/aws_lambda: Add theaws.log.subscription_filter.namesresource attribute to CloudWatch Logs decoded by the built-in decoder (#49923)
The subscription filter name is the CloudWatch-managed link between a log group and the
destination function, so it can carry per-source identity when multiple log groups fan into
a single Lambda. The attribute is only added when the event contains subscription filters. -
receiver/dns_check: Add complete scraping implementation for the DNS Check Receiver, including metrics and resource attributes. (#49561)
Replaces skeleton implementation with full production-ready collector functionality.
Includes metrics metadata and completed configuration.
Includes real scraper implementation that performs DNS checks and emits metrics and resource attributes.
Includes README docs. -
receiver/googlecloudpubsubpush: Promote logs support to alpha stability (#50112) -
receiver/kubelet_stats: Add optional k8s node filesystem inode count/free metrics. (#48926)
Adds the following optional metrics to kubeletstatsreceiver:- k8s.node.filesystem.inode.count
- k8s.node.filesystem.inode.free
-
receiver/mysql: Add replica thread running and open temporary table metrics to the mysqlreceiver. (#50132) -
receiver/mysql: Add mysql.file.open, mysql.table.open, and mysql.thread.slow_launch metrics, disabled by default. (#49867) -
receiver/mysql: Addalter_table,create_index,create_table, andoptimizecommand types to themysql.commandsmetric. (#49863) -
receiver/mysql: Add InnoDB data I/O and pending operation metrics. (#50138) -
receiver/oracledb: Use the go-sqllexerObfuscateAndNormalizeengine to obfuscate SQL in the top query and query sample collectors, and upgradegithub.com/DataDog/datadog-agent/pkg/obfuscateto v0.82.0 (#50231)
The obfuscateddb.query.textis now normalized (whitespace collapsed, comments stripped, punctuation
spaced, trailing semicolon removed), which yields stable query signatures across semantically identical
statements that previously differed only in formatting. Leading SQL comments are no longer rendered as a
leading?; the previous two-pass comment-anonymization behavior has been removed. Comment tags are still
extracted from the raw SQL and emitted viadb.query.comment_tags. Identifier quotation is preserved
(KeepIdentifierQuotation) so a quoted identifier such as"a b"does not collide with the unquoted
a b. This is a one-time change to the obfuscated output format and may alter any downstream identifiers
derived fromdb.query.text. The obfuscate library upgrade to v0.82.0 (withgithub.com/DataDog/go-sqllexer
v0.2.4) also normalizes qualified identifiers consistently. -
receiver/oracledb: Add tablespace health metrics (#48399)
All 3 new metrics are opt-in (disabled by default) and support oracle.db.pdb on CDB-root and
direct-PDB connections. Note: oracle.db.pdb is itself opt-in - if it is not also enabled on a
CDB root with multiple PDBs, same-named tablespaces in different PDBs will be aggregated
together rather than reported per PDB, matching the existing behavior of every other opt-in
oracle.db.pdb metric in this receiver. -
receiver/oracledb: Add wait event timeout count to the session wait sample event (#49934) -
receiver/splunk_enterprise: added dimensions to kvstore metrics (#50189) -
receiver/sqlserver: Use the go-sqllexerObfuscateAndNormalizeengine to obfuscate SQL in the top query and query sample collectors, and upgradegithub.com/DataDog/datadog-agent/pkg/obfuscateto v0.82.0 (#50210)
Comment-only statements (e.g. Blue Prism banners) no longer produce a "result is empty" error or repeated
error logs; they now obfuscate to an empty string. Statements the legacy tokenizer could not parse are
obfuscated instead of being dropped. The obfuscateddb.query.textis now normalized (whitespace collapsed,
comments and aliases removed), which changes the obfuscated output format; this is a one-time change and may
alter any downstream identifiers derived from the obfuscated query text. The obfuscate library upgrade to
v0.82.0 also normalizes qualified identifiers consistently (e.g.schema.tableno longer renders with a
spurious space after the dot), which contributes to the same one-time change in obfuscated output.
The transitivegithub.com/DataDog/go-sqllexerdependency is pinned to v0.2.4, which fixes obfuscation of
string literals containing a backslash (e.g.REPLACE(@@SERVERNAME, '\', ':')). -
receiver/sqlserver: Share a single, tunable database connection pool across all scrapers of a metrics or logs receiver instead of opening one pool per query. (#47219)
Previously each enabled query created its own *sql.DB connection pool to the same instance. All
scrapers now share one pool per receiver instance — the metrics and logs receivers each own
their own pool — that is owned by the receiver and closed on shutdown, reducing connection and
memory overhead as more queries are enabled. The pool can be
tuned via a new optionalconnection_poolconfig block (max_open,max_idle,max_lifetime,
max_idle_time); by defaultmax_openandmax_idleare derived from the number of scrapers,
replacing the sub-optimal Go driver defaults. Emitted telemetry is unchanged.
🧰 Bug fixes 🧰
-
exporter/awscloudwatchlogs: Resolve the{PodName}placeholder inlog_group_name/log_stream_namefrom thek8s.pod.nameresource attribute as well as the legacypodattribute. (#46202)
Thek8sattributesprocessorsets the semantic convention attribute
k8s.pod.name, not the legacypodattribute that{PodName}previously
looked up. This left{PodName}resolving toundefinedfor standard EKS
pipelines unless users added an extra processor to rename the attribute. -
exporter/datadog: Fix log misrouting when a batch contains multiple ResourceLogs with different scopes, which previously routed the whole batch based on only the first ResourceLogs' scope, via thegithub.com/DataDog/datadog-agentdependency bump to v0.82.0. (#50069, #49322) -
exporter/datadog: Fix a goroutine hang on shutdown and swallowed errors when consuming regular logs, via thegithub.com/DataDog/datadog-agentdependency bump to v0.82.0. (#50069) -
exporter/datadog: Fix an unbounded loop in the histogram-to-sketch conversion that could drive the exporter to OOM when ingesting an OTel explicit-bucket histogram with a very large finite upper bound, via thegithub.com/DataDog/datadog-agentdependency bump to v0.82.0. (#50069) -
exporter/datadog: Map theRatemetric intake type in legacy metric clients so delta-sum datapoints carryingdatadog.metric.as_type=rateare no longer silently dropped. (#50119)
toDataTypepreviously mapped onlyCountandGauge, so aRatedatatype fell through to
METRICINTAKETYPE_UNSPECIFIEDand the series was rejected by the intake. -
exporter/prometheus_remote_write: Fix context.DeadlineExceeded being incorrectly treated as a permanent error, which caused metrics to be dropped instead of retried on timeout. (#49691)
context.DeadlineExceeded indicates a transient timeout and should result in a retry.
Only context.Canceled (explicit user/component shutdown) should be treated as permanent. -
exporter/prometheus_remote_write: Flush buffered WAL entries when the exporter is idle so data is not stalled until the next write. (#49130) -
internal/aws: FixeventBatch.exceedsLimitrolling batches at the per-event truncation cap (256 KiB) instead of the 1 MiB per-request PutLogEvents limit. Batches now pack up to the actual service ceiling. (#48559)
This is a pre-existing inefficiency unrelated to the new
max_event_payload_bytesconfig field.eventBatch.exceedsLimithas
compared cumulative batch bytes againstmaxEventPayloadBytes(256 KiB)
rather thanmaxRequestPayloadBytes(1 MiB) since the original 2022 code.
The result: batches have been rolling at ~25% of the PutLogEvents request
limit. Workloads with average event size above ~25 KiB will see roughly
3-4x fewer PutLogEvents calls for the same data volume after this fix,
with no config change required.
The fix is also load-bearing for the new configurable per-event cap shipping
in the same PR: without it, opted-in users with >256 KiB events would ship
each event in its own PutLogEvents call rather than packing up to the 1 MiB
service ceiling.
The new threshold matches the service-documented batch-size accounting:
sum(message bytes UTF-8) + 26 * num_events. That is exactly what
byteTotalalready sums (eventPayloadBytes()includes the 26-byte
perEventHeaderBytes), so no envelope-overhead margin is needed. -
pkg/datadog: Stop setting the removed Agent config keyenable_sketch_stream_payload_serialization, which fixes a spuriousunknown keyERROR logged at Agent startup. The key was a no-op, so this changes no behavior. (#50238) -
pkg/translator/prometheusremotewrite: Preserve consecutive underscores in label names when the permissive label sanitization feature gate is enabled. (#48991)
When the pkg.translator.prometheus.PermissiveLabelSanitization feature gate was enabled, label names with consecutive underscores (e.g. a__b) were still collapsed to a single underscore because the converter did not set PreserveMultipleUnderscores on the label namer. The gate now preserves them as intended. -
processor/coralogix: Only start a new transaction for SERVER/CONSUMER spans when they cross into a different service from their parent, instead of unconditionally, so in-process phases (e.g. a queue-wait span) are no longer misclassified as separate transaction roots. (#50048)
Previously any SERVER or CONSUMER span nested under an existing local transaction was always
split off into its own transaction root, even when it came from the same service as its parent.
Root detection now compares the span's resourceservice.nameagainst its parent's, and only
treats the SERVER/CONSUMER span as a new entry point when the service actually changes. -
processor/isolationforest: Produce differentiated anomaly scores and honor the configuredcontamination_rate. (#46988)
The online isolation forest trees never split, so every record received a
near-identical anomaly score and nothing was ever flagged. Trees now grow once
they accumulate enough samples. The adaptive threshold also ignored
contamination_rate(the percentile was hardcoded to 0.9); it is now derived as
1 - contamination_rate. Acontamination_rateof exactly 0.0 or 1.0 is now
rejected during configuration validation instead of being silently replaced with
a default. -
processor/k8s_attributes: Fix memory leak and incorrect deletion for custom association identifiers (labels, annotations) that go through active->stale->active transitions. (#48588) -
processor/metrics_transform: combine action no longer silently drops data points when a single Summary metric matches the transform. The operation is now skipped with a warning log instead. (#49693) -
processor/tail_sampling: Drop processor state whenTailStorage.Takefails so failed fetches do not leave stranded traces or forward incomplete batches. (#49907) -
processor/tail_sampling: In the composite policy, a sub-policy omitted fromrate_allocationnow receives its default equal share of the budget instead of a zero sampling rate that permanently blocked it from sampling. (#49828) -
receiver/datadog: Set thedatadog.metric.as_typedatapoint attribute on series submitted with typerate(#50120)
A Datadograteseries is translated to a delta Sum, which was previously indistinguishable
from one produced by acountseries, making the original type unrecoverable downstream.
Datapoints fromrateseries now carrydatadog.metric.as_type: rate, the attribute the
Datadog exporter reads to map such a Sum back to a Datadog rate. Other metric types are
unchanged. -
receiver/elasticsearch: Record deleted document counts for the index-levelelasticsearch.index.documentsmetric, matching existing node-level behavior. (#49996) -
receiver/icmpcheckreceiver: Enable privileged ICMP mode on Windows so pings succeed without requiring elevated privileges. (#50215) -
receiver/postgresql: Fix EXPLAIN failing on queries with a repeated placeholder or a$N-looking string literal, by counting real bind parameters frompg_prepared_statementsinstead of regex-matching$Nin the query text. (#50054) -
receiver/postgresql: Fixpostgresql.total_exec_timeandpostgresql.total_plan_timedocs on thedb.server.top_queryevent to correctly state seconds instead of milliseconds. (#50113)
pg_stat_statements reports these columns in milliseconds, and the receiver correctly converts
to seconds before emitting them, per OTel semantic conventions (durations SHOULD use seconds).
metadata.yaml incorrectly documented the emitted unit as milliseconds; this updates the docs
to match the actual (and semconv-compliant) behavior. No emitted values change. -
receiver/prometheus: Prevent the Prometheus receiver from dropping classic histograms without explicit bucket boundaries whenconvert_classic_histograms_to_nhcbis enabled and classic histograms are not retained. (#49893) -
receiver/snowflake: Close sql.Rows in all Fetch* methods so the underlying driver connection is released back to the pool. (#49707)
Previously, none of the 8 Fetch* methods in client.go called rows.Close() after iterating sql.Rows returned by readDB(). This leaked a database connection per query per scrape interval, eventually exhausting the connection pool. Also adds rows.Err() checks after each rows.Next() loop to surface iteration errors. -
receiver/sqlserver: Fix query sample events silently omitting sessions blocked on schema locks. (#49983) -
receiver/sqlserver: Fix the receiver dropping the entire query plan when obfuscating a single attribute fails (#50065)
All Unicode format characters (Cf category, e.g. zero-width space U+200B) are stripped from SQL before obfuscation so queries containing them are not dropped. -
receiver/yang_grpc: Fix walking the value tree and recording metrics (#50109)
API Changelog
🛑 Breaking changes 🛑
-
extension/observer: Removes thekafka.topicsendpoint type along with the kafkatopicsobserver extension (#48186)
Theobserver.KafkaTopicTypeendpoint type and itsobserver.KafkaTopicdetails struct are
removed, as the kafkatopicsobserver was the only observer emitting them. The receivercreator
no longer acceptstype == "kafka.topics"rules or resource attributes for that endpoint type. -
pkg/fileconsumer:matcher.OrderingCriteria.TopNis now a*intinstead ofint, so the matcher can distinguish an unset value from an explicit zero. (#47444) -
pkg/ottl: Remove the deprecatedNewIsRootSpanFactoryand renameNewIsRootSpanFactoryNewtoNewIsRootSpanFactory. (#50093)
🚩 Deprecations 🚩
-
receiver/signalfx: Deprecate the signalfxreceiver package and module (#50201)
The receiver is deprecated and will be removed in the next release. -
testbed: Deprecate testbed.signalfxdatareceiver (#50200)
💡 Enhancements 💡
-
exporter/awscloudwatchlogs: Add max_event_payload_bytes config option to opt in to the CloudWatch Logs 1 MiB per-event limit (previously hardcoded to 256 KiB). (#48559)
The CloudWatch Logs PutLogEvents API began accepting events up to 1 MiB on
2025-04-02. The exporter previously truncated every event at 256 KiB (the
pre-2025 service limit) via a hardcoded package constant. The default stays
at 256 KiB for backwards compatibility; setmax_event_payload_bytes: 1048576
to take advantage of the new ceiling. A newcwlogs.WithMaxEventPayloadBytes
pusher option exposes the same knob to direct callers of the internal package. -
extension/storage: Implement thestorage.Walkerinterface for storagetest (#49969) -
pkg/datadog: Add thedatadog.EnableScopeConventionfeature gate to control theotel.scopename and version conventions in the Datadog exporter. (#49001)
When thedatadog.EnableScopeConventionfeature gate is enabled, spans additionally
carry theotel.scope.nameandotel.scope.versionattributes. The deprecated
otel.library.nameandotel.library.versionattributes are still emitted with the
same values for backward compatibility, so existing dashboards and monitors keyed on
them keep working. -
pkg/ottl:pcommon.Valueis now comparable using all comparison operators (==, !=, <, <=, >=, >) in OTTL expressions (#49170) -
pkg/pdatatest: Support/existsand/regexoperators on the scopeversionfield in pmetricassert assertion files. (#48393)
The assertion-file equivalent ofpmetrictest.IgnoreScopeVersion:version/exists
requires a version without pinning its value,version/regexmatches a full-string pattern. -
pkg/pdatatest: Add empty container validation logic to pmetrictest.ValidateMetrics (#49072) -
pkg/pdatatest: Update pmetricassert assertion schema to use strongly typedint_valueanddouble_valuefields instead of a genericvaluefield. (#48473)
We are thrilled to welcome our first-time contributors to this project. Thank you for your contributions @SrikarChittemsetty, @tombiddulph, @josepdaniel, @Atishyy27, @SSOHEB, @pujitha24, @dmfallak, @janweinkauff, @raunakmandaokar, @Alexpedone, @vijaynandwani, @iypetrov, @danielcbright, @challahc, @darkknight8670, @theycallmeloki, @pathcl, @PragalvaXFREZ, @rkhoriander, @charanck9, @sairaj18, @shubhgupta2104 ! 🎉