Update All OpenTelemetry Collector Contrib packages to v0.159.0 - #106
Open
renovate[bot] wants to merge 1 commit into
Open
Update All OpenTelemetry Collector Contrib packages to v0.159.0#106renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
Contributor
Author
ℹ️ Artifact update noticeFile name: go.modIn order to perform the update(s) described in the table above, Renovate ran the
Details:
|
renovate
Bot
force-pushed
the
renovate/all-opentelemetry-collector-contrib-packages
branch
12 times, most recently
from
August 12, 2026 12:05
55ca6eb to
c546938
Compare
renovate
Bot
force-pushed
the
renovate/all-opentelemetry-collector-contrib-packages
branch
5 times, most recently
from
August 17, 2026 19:34
c20cd08 to
9da4ad0
Compare
renovate
Bot
force-pushed
the
renovate/all-opentelemetry-collector-contrib-packages
branch
from
August 17, 2026 23:39
9da4ad0 to
589023b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.157.0→v0.159.0v0.157.0→v0.159.0v0.157.0→v0.159.0Release Notes
open-telemetry/opentelemetry-collector-contrib (github.com/open-telemetry/opentelemetry-collector-contrib/exporter/splunkhecexporter)
v0.159.0Compare Source
🛑 Breaking changes 🛑
all: Removes the kafkatopicsobserver extension after being deprecated for 3 months (#48186)Use the
kafkareceiverwith topic regex support instead.extension/observer: Removes thekafka.topicsendpoint type along with the kafkatopicsobserver extension (#48186)The
observer.KafkaTopicTypeendpoint type and itsobserver.KafkaTopicdetails struct areremoved, as the kafkatopicsobserver was the only observer emitting them. The receivercreator
no longer accepts
type == "kafka.topics"rules or resource attributes for that endpoint type.processor/dynamic_sampling: Reserve the "" prefix in rule names for processor-internal decision labels, and rename the unmatched-drop sentinel to_unmatched(#49311)Configs with rule names starting with "" are now rejected at validation, so user rule
names can never collide with the processor-owned sentinel labels on decision metrics
(
_eviction,_root_span_condition). Theruleattribute value for traces dropped withno matching rule changes from
unmatchedto_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, set
ordering_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)When
ordering_criteria.sort_byis configured withouttop_n, the matchersilently defaults
top_nto 1, returning only the single highest-priority fileper 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_nastartup error when
sort_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. Use
top_n: 1to keep theprevious behavior.
Independently of the feature gate,
top_n: 0now means "match all files"instead of silently behaving like
top_n: 1.receiver/sql_query: Rename the 'sqlquery' receiver to 'sql_query'. The old 'sqlquery' type remains available as a deprecated alias. (#45339)🚀 New components 🚀
extension/sd_notify: Introduces 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; set
max_event_payload_bytes: 1048576to take advantage of the new ceiling. A new
cwlogs.WithMaxEventPayloadBytespusher option exposes the same knob to direct callers of the internal package.
exporter/azure_monitor: Allow configuring HTTP status codes that should not be marked as errors in Application Insights. (#47691)Adds
telemetry_mappings.traces.http.successsettings for HTTP success mapping:additional_success_status_codeslists status codes treated as Success on bothserver and client HTTP spans, and
server_policy: oteltreats 4xx responses onHTTP 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 the
datadog.EnableScopeConventionfeature gate is enabled, spans additionallycarry the
otel.scope.nameandotel.scope.versionattributes. The deprecatedotel.library.nameandotel.library.versionattributes are still emitted with thesame 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 as
deployment.environment, which is deprecated inthe semantic conventions, and the deployment ID as
service.instance.id. Two alpha feature gatesmigrate them to
deployment.environment.nameanddeployment.id:processor.resourcedetection.elasticbeanstalk.EmitV1DeploymentConventionsadds the currentattributes, and
processor.resourcedetection.elasticbeanstalk.DontEmitV0DeploymentConventionsremoves 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 as
ec2.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. Setting
num_shardsto 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, andper-second rate limits in policies (
rate_limiting,bytes_limiting, andcomposite
max_total_spans_per_second) are divided evenly across shards.Limiter
burst_capacityis not divided so that single large traces remainadmissible regardless of the shard count.
The
sampling_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, andadditionally enable
receiver.apache.disableOldFormatMetricsto emit only thenew 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.idleRenamed attributes:
connection_state->apache.connection.statestate(on the scoreboard metric) ->apache.worker.statelevel(onapache.cpu.time) ->apache.process.levelmode(onapache.cpu.time) ->cpu.modereceiver/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:
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 obfuscated
db.query.textis now normalized (whitespace collapsed, comments stripped, punctuationspaced, 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 stillextracted from the raw SQL and emitted via
db.query.comment_tags. Identifier quotation is preserved(
KeepIdentifierQuotation) so a quoted identifier such as"a b"does not collide with the unquoteda b. This is a one-time change to the obfuscated output format and may alter any downstream identifiersderived from
db.query.text. The obfuscate library upgrade to v0.82.0 (withgithub.com/DataDog/go-sqllexerv0.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 obfuscated
db.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 aspurious space after the dot), which contributes to the same one-time change in obfuscated output.
The transitive
github.com/DataDog/go-sqllexerdependency is pinned to v0.2.4, which fixes obfuscation ofstring 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 optional
connection_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)The
k8sattributesprocessorsets the semantic convention attributek8s.pod.name, not the legacypodattribute that{PodName}previouslylooked up. This left
{PodName}resolving toundefinedfor standard EKSpipelines 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 toMETRICINTAKETYPE_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.exceedsLimithascompared cumulative batch bytes against
maxEventPayloadBytes(256 KiB)rather than
maxRequestPayloadBytes(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 whatbyteTotalalready sums (eventPayloadBytes()includes the 26-byteperEventHeaderBytes), 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 resource
service.nameagainst its parent's, and onlytreats 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 as1 - contamination_rate. Acontamination_rateof exactly 0.0 or 1.0 is nowrejected 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 Datadog
rateseries is translated to a delta Sum, which was previously indistinguishablefrom one produced by a
countseries, making the original type unrecoverable downstream.Datapoints from
rateseries now carrydatadog.metric.as_type: rate, the attribute theDatadog 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)v0.158.0Compare Source
🛑 Breaking changes 🛑
cmd/opampsupervisor: Remove thereports_package_statusescapability config option. Theaccepts_packagesoption now enables both the AcceptsPackages and ReportsPackageStatuses OpAMP capabilities. (#49762)Neither capability was functional; the supervisor exits with an error at startup when configured, so no working configuration is affected.
processor/drain: Add masking rules for named parameter extraction. Removes theextract_parametersandparams_attributeconfig fields released in v0.157.0. (#48914)Adds
masking_rules, an ordered list of{name, pattern}regex substitutions applied to a copyof the log body before it is fed to the Drain tree. Matched substrings become named mask tokens
in derived templates (for example
<ip>), stabilising the tree on high-cardinality values.Each masked position writes a dynamic attribute at
<parameter_key_prefix>.<mask name>(default prefixlog.record.template.parameter), matchingthe OTel semantic-convention pattern used by
http.request.header.<key>anddb.query.parameter.<key>.Adds
emit_wildcards(default false): when true, Drain's own<*>positions are written to apositional string slice attribute at
wildcards_attribute(defaultlog.record.template.wildcards). Independent ofmasking_rules, so users can enable it withoutany rules to see raw variable values before deciding what to mask.
When a mask name matches multiple positions in the same template, first-match wins and the
losing values are dropped. The
otelcol_processor_drain_masks_duplicatescounter is incrementedonce per record per duplicated mask name, tagged with a
maskattribute for observability.Breaking: the positional-only
extract_parametersandparams_attributefields released inv0.157.0 are removed. Collectors with either field set will fail to start after upgrading.
To migrate, replace
extract_parameters: truewithemit_wildcards: true, and renameparams_attributetowildcards_attribute. The behaviour is identical; only the field nameschange. Note the default output attribute also renames from
log.record.template.paramstolog.record.template.wildcards, so downstream consumers of the old attribute key should eitherupdate their references or set
wildcards_attribute: log.record.template.paramsto keep theold key.
processor/dynamic_sampling: Flatten sampler config, renamekey_fieldstokey_attributes, dropinitial_sampling_rate. (#49311)Sampler fields no longer live under a per-type sub-block (
sampler.<type>.<field>);they move up one level under
sampler:withtypeacting as the discriminator.key_fieldsis renamed tokey_attributesto match OTel attribute vocabulary usedelsewhere in the processor. The rarely-used
initial_sampling_rateonema_throughputis removed; dynsampler-go's default applies.goal_throughput_per_secis now
intfor both throughput samplers. Fields set for a sampler type that doesnot use them are rejected at config validation.
processor/dynamic_sampling: Replace the custom rule condition parser with OTTL expressions and add amatchfield to control same-span vs any-span semantics. (#49311)Rule
conditions:are now OTTL boolean expressions evaluated in the ottlspancontext. Path expressions must be qualified with a context prefix
(
span.attributes["k"],resource.attributes["k"],span.status.code, etc).A new per-rule
match:field selectsany_span(default, each conditionsatisfied by some span) or
same_span(some single span satisfies allconditions). A new counter,
otelcol_processor_dynamic_sampling_ottl_eval_errors, is labelled by ruleand tracks runtime OTTL evaluation errors.
receiver/icmpcheckreceiver: Change RTT metric value type from int to double for sub-millisecond precision (#49960)receiver/oracledb:oracle.db.pdbis now a data-point attribute (opt-in) instead of a resource attribute. (#48643)oracle.db.pdbhas moved from a resource attribute to an opt-in data point attribute.Downstream pipelines that grouped, routed, or filtered on
oracle.db.pdbat resource scopemust be updated to read it from data point attributes, and it must be explicitly enabled on
each metric that should carry it via
metrics.<name>.attributes: [oracle.db.pdb]. ExistingCDB deployments that do not enable the attribute or add the grants needed for per-PDB
collection keep working unchanged; the receiver falls back to the single-container queries.
receiver/postgresql: Collectpostgresql.database.locksfrom each configured database instead of only the defaultpostgresdatabase. (#49206)Previously the metric was collected once against the default
postgresdatabase, so locks on relationsbelonging to other configured databases were silently dropped, and all data points were emitted on the
instance-level resource without
postgresql.database.name. Lock data points for database-local relationsare now emitted on the corresponding per-database resource with the
postgresql.database.nameresourceattribute. Locks on shared system catalogs (e.g.
pg_database) are reported once at the instance level.When the
receiver.postgresql.useOTelSemconvfeature gate is enabled there is a single server-levelresource, so the data points instead carry a
db.namespaceattribute to identify the database. Without itrelations that exist in more than one database (any system catalog, or user tables sharing a name) would
collapse into a single series. Locks on shared system catalogs carry an empty
db.namespace, since theyare server-scoped rather than database-scoped.
The lock count now uses
COUNT(*)instead ofCOUNT(pid), so locks held by prepared transactions(which have a NULL
pidinpg_locks) are counted instead of being reported as zero.The metric is disabled by default and has development stability, so no feature gate is provided for this
behavior change.
🚩 Deprecations 🚩
exporter/mezmo: Deprecate the mezmo exporter (#49953)Mezmo now supports ingesting OpenTelemetry data directly via OTLP. Use the OTLP/HTTP
exporter instead. See https://docs.mezmo.com/telemetry-pipelines/otel-collector and
https://docs.mezmo.com/telemetry-pipelines/open-telemetry-source for migration guidance.
processor/alibabaecsdetector: Deprecate per-detectorfail_on_missing_metadatain thealibaba_ecsdetector config (#46579)Use the top-level
fail_on_missing_metadatain the processor config instead.The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later.
processor/delta_to_cumulative: Rename the 'deltatocumulative' processor to 'delta_to_cumulative'. The old 'deltatocumulative' type remains available as a deprecated alias. (#45339)processor/delta_to_rate: Rename the 'deltatorate' processor to 'delta_to_rate'. The old 'deltatorate' type remains available as a deprecated alias. (#45339)processor/novadetector: Deprecate per-detectorfail_on_missing_metadatain thenova(OpenStack) detector config (#46579)Use the top-level
fail_on_missing_metadatain the processor config instead.The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later.
processor/resource_detection: Deprecate per-detectorfail_on_missing_metadatain theec2detector config (#46579)Use the top-level
fail_on_missing_metadatain the processor config instead.The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later.
processor/tencentcvmdetector: Deprecate per-detectorfail_on_missing_metadatain thetencent_cvmdetector config (#46579)Use the top-level
fail_on_missing_metadatain the processor config instead.The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later.
processor/upclouddetector: Deprecate per-detectorfail_on_missing_metadatain theupclouddetector config (#46579)Use the top-level
fail_on_missing_metadatain the processor config instead.The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later.
processor/vultrdetector: Deprecate per-detectorfail_on_missing_metadatain thevultrdetector config (#46579)Use the top-level
fail_on_missing_metadatain the processor config instead.The field continues to work but will emit a deprecation warning in the logs when set and
code will be removed later.
🚀 New components 🚀
extension/aws_iam_db_auth: Add an extension awsiamdbauthextension that implementsdbauth. (#49044)receiver/dns_check: Add initial skeleton of DNS Check receiver (README, config, factory, metadata) with In Development stability. (#49561)💡 Enhancements 💡
exporter/datadog: Addexporter.datadogexporter.AddUnitsfeature gate that maps OTLP (UCUM) metric units to their Datadog equivalents. (#15280)exporter/elasticsearch: Allowtraces,profiles, andsyntheticsas validdata_stream.typevalues when overriding via attributes inbodymapmapping mode, in addition to the existinglogsandmetrics. (#49337)exporter/prometheus_remote_write: Addconvert_explicit_histograms_to_nhcbto convert explicit-bucket (classic) histograms into Native Histograms with Custom Buckets (NHCB) on export, withkeep_classic_histogramsto emit both representations during migration. (#33661)When
convert_explicit_histograms_to_nhcbis set, each OTLP explicit-bucket histogramis converted to a single NHCB series (schema -53) carrying the bounds as
CustomValues, instead of the classic
_bucket/_sum/_countfan-out. Settingkeep_classic_histograms: trueadditionally emits the classic series so amigration can run both in parallel. Implemented for both the RW1 and RW2 write
paths; reuses Prometheus'
util/convertnhcbconverter for wire-compatibleencoding.
exporter/prometheus_remote_write: Addinclude_metadata_keystoremote_write_queueconfiguration to forward client metadata as HTTP headers. (#47317)pkg/jaeger: Migrate http.status_code (v1.25.0) semantic convention to http.response.status_code (v1.40.0) (#45036)The migration is gated behind two alpha (disabled by default) feature gates:
enable
pkg.translator.jaeger.EmitV1HttpConventionsto emithttp.response.status_code, andadditionally enable
pkg.translator.jaeger.DontEmitV0HttpConventionsto stop emitting thedeprecated
http.status_code.Both gates will graduate to beta (enabled by default) and eventually be removed, after which the
translator will only emit
http.response.status_code. That removal is a breaking change foranything still relying on
http.status_code, so please migrate your dashboards, alerts andqueries now.
pkg/stanza: Changeconnection_idle_timeouton thetcp_inputoperator to a duration field that defaults to no idle timeout, apply it independently ofmax_connections, and add atcp_input_refused_connectionsmetric. (#49610)pkg/stanza: Addmax_connectionsandconnection_idle_timeoutoptions to thetcp_inputoperator to limit the number of concurrent TCP connections. (#49610)processor/dynamic_sampling: Evicted traces now receive a real sampling decision instead of being dropped silently, with a configurableevictionpolicy. (#49311)When
num_tracesis full the oldest pending trace is evicted and decided immediately.eviction.policy: evaluate(default) runs the normal rules on the spans seen so far;eviction.policy: probabilisticdecides with a threshold derived fromeviction.sampling_percentagein constant time, shedding load under pressure. Both modesrecord the decision for late spans and stamp kept traces with a correct
ot=th.processor/dynamic_sampling: Add configurableroot_span_conditionOTTL expression to control which spans trigger the trace decision. (#49311)Defaults to
IsRootSpan(), preserving prior behaviour. Operators can override with any OTTL booleanexpression evaluated in the
ottlspancontext (e.g. accepting a producer-supplied hint attribute or across-process server span). Evaluation errors are counted on
processor_dynamic_sampling_ottl_eval_errorsunder the sentinel
rule="_root_span_condition"label.processor/oracleclouddetector: Addcloud.resource_idresource attribute to the Oracle Cloud detector, set to the compute instance OCID. (#49832)processor/resource_detection: Add top-levelfail_on_missing_metadatato make unreachable metadata services a hard failure (#46579)When
true, network-based detectors return an error instead of silently returning an emptyresource when their metadata service is unreachable.
Supersedes the per-detector
fail_on_missing_metadatafields, which are now deprecated.processor/resource_detection: Add cloud.region to GKE resource detection by deriving it from cloud.availability_zone (#49694)processor/span_pruning: Preserve whole outlier subtrees instead of individual spans and detect outliers at every aggregation level, so a slow interior span (e.g. one slow handler among many) keeps its entire subtree. (#49324)processor/span_pruning: Add optional OTTLconditionsfiltering so span pruning only applies to traces with at least one matching span (empty conditions still prune all traces), and add theotelcol_processor_spanpruning_traces_skippedmetric for traces skipped when no conditions match. (#49026)processor/transform: AddParseELFfunction to parse W3C Extended Log Format (ELF) log blocks into structured maps. (#48352)ParseELF(target)parses a complete ELF text block and returns apcommon.Mapwithdirective metadata (version, software, date, start_date, end_date, remark), a fields
slice, and an entries slice keyed by field name. Multiple #Fields directives and
double-quoted values (IIS-style) are supported.
receiver/awsxray: Migrates v1.20.0 (http.client_ip) semantic convention to v1.42.0 (client.address) (#45085)receiver/awsxray: Migrated HTTP semantic conventions from v1.25.0 to v1.42.0 (#45084)receiver/kafka_metrics: Addkafka.cluster.idresource attribute, auto-discovered from cluster metadata. Disabled by default; opt in viaresource_attributes. (#48892)The attribute is disabled by default. When enabled, it complements the existing user-configured
kafka.cluster.aliasresource attribute.receiver/kubelet_stats: Add thereceiver.kubeletstats.cpuUsageScrapeBasedfeature gate. When enabled,container.cpu.usage,k8s.pod.cpu.usageandk8s.node.cpu.usage(and the cpu utilization metrics derived from them) are calculated as the rate of the corresponding*.cpu.timecounter between consecutive scrapes, instead of being read directly from the kubelet'sUsageNanoCoresvalue. (#49477)receiver/memcached: Addtlsconfiguration to support connecting to memcached over TLS. (#49146)TLS is disabled by default (
insecure: true), so existing plaintext configurations are unaffected.receiver/mongodb: Adddb.server.top_queryslow query event collection to the MongoDB receiver. (#49623)Emits the top N slowest query executions per scrape window as
db.server.top_querylog events,including obfuscated query text, execution stats, and optional explain plans. Configurable via
the new
top_query_collectionconfig block. Thelogssignal is atdevelopmentstability;attribute names may change until OTel
db.server.top_queryconventions stabilize.receiver/mongodb: Addservice.nameandservice.namespaceopt-in resource attributes and allow overriding any resource attribute viaoverride_value. (#49812)When
service.nameis enabled, the receiver setsConfiguration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.