This Splunk OpenTelemetry Collector release includes changes from the opentelemetry-collector v0.162.0
and the opentelemetry-collector-contrib v0.162.0 releases where appropriate.
🛑 Breaking changes 🛑
- (Splunk)
smartagent/cgroups: Remove the deprecated cgroups Smart Agent monitor. Use the hostmetrics receiver instead. (#8143) - (Splunk)
smartagent/conviva: Remove the deprecated conviva Smart Agent monitor. (#8144) - (Splunk)
smartagent/disk-io: Remove the deprecated Windows implementation of the disk-io Smart Agent monitor. Use the disk scraper in the hostmetrics receiver instead. (#8145) - (Splunk)
smartagent/elasticsearch-query: Remove the deprecated elasticsearch-query Smart Agent monitor. (#8146) - (Splunk)
smartagent/expvar: Remove the deprecated expvar Smart Agent monitor. Use Go instrumentation instead. (#8147) - (Splunk)
smartagent/logstash: Remove the deprecated logstash Smart Agent monitor. (#8148) - (Splunk)
smartagent/net-io: Remove the deprecated net-io Smart Agent monitor. Use the hostmetrics receiver instead. (#8149) - (Splunk)
telegraf/dns: Remove the deprecated telegraf/dns monitor. Use the DNS check receiver instead. (#8150) - (Splunk)
telegraf/ntpq: Remove the deprecated telegraf/ntpq monitor. Use the NTP receiver instead. (#8151) - (Splunk)
telegraf/procstat: Remove the deprecated telegraf/procstat monitor. Use the hostmetrics receiver instead. (#8152) - (Splunk)
telegraf/snmp: Remove the deprecated telegraf/snmp monitor. Use the SNMP receiver instead. (#8153) - (Splunk)
telegraf/sqlserver: Remove the deprecated telegraf/sqlserver monitor. Use the SQL Server receiver instead. (#8154) - (Splunk)
telegraf/statsd: Remove the deprecated telegraf/statsd monitor. Use the StatsD receiver instead. (#8155) - (Splunk)
telegraf/tail: Remove the deprecated telegraf/tail monitor. Use the count connector instead. (#8156) - (Splunk)
telegraf/varnish: Remove the deprecated telegraf/varnish monitor. (#8157) - (Splunk)
telegraf/win_perf_counters: Remove the deprecated telegraf/win_perf_counters monitor. Use the Windows performance counters receiver instead. (#8158) - (Splunk)
telegraf/win_services: Remove the deprecated telegraf/win_services monitor. Use the Windows service receiver instead. (#8159) - (Splunk)
receiver/wavefront: Remove the deprecatedwavefrontreceiver from the distribution. Wavefront is EOL and the receiver has been removed upstream. (#8175) - (Core)
processor/queue_batch: Renamequeuebatchprocessor toqueue_batchprocessor. (#14396) - (Contrib)
pkg/ottl: Remove the stableottl.PanicDuplicateNameandottl.contexts.enableOTelColContextfeature gates. (#44630, #46437) - (Contrib)
processor/transform: Remove the stableprocessor.transform.defaultErrorModeIgnorefeature gate. (#51242) - (Contrib)
receiver/kafka: Change the default formetadata::retry::maxfrom 3 to 20 to match franz-go's default. (#50116)
The field was unwired since the migration to franz-go, so every collector has effectively been
running with franz-go's default of 20. The new default preserves that behavior now that the
field is applied. Only configurations that setmetadata::retry::maxexplicitly change
behavior: the configured value is now honored. - (Contrib)
receiver/kafka_metrics: Change the default formetadata::retry::maxfrom 3 to 20 to match franz-go's default. (#50116)
The field was unwired since the migration to franz-go, so every collector has effectively been
running with franz-go's default of 20. The new default preserves that behavior now that the
field is applied. Only configurations that setmetadata::retry::maxexplicitly change
behavior: the configured value is now honored. - (Contrib)
receiver/prometheus: Promote thereceiver.prometheusreceiver.IgnoreScopeInfoMetricfeature gate to stable (#47312)
Theotel_scope_infometric is no longer used for scope attribute extraction and is
converted like any other metric. Scope attributes are populated fromotel_scope_-prefixed
metric labels instead. The feature gate can no longer be disabled and will be removed in v0.164.0.
🚩 Deprecations 🚩
- (Contrib)
receiver/kafka: Deprecatemetadata::full, which became a no-op after the migration to franz-go. (#50116)
franz-go has no full-metadata mode; it only fetches metadata for the topics the receiver
consumes from. The field is still accepted in configuration for backwards compatibility, but has
no effect at runtime. It will be removed in a future release. - (Contrib)
receiver/kafka_metrics: Deprecatemetadata::full, which became a no-op after the migration to franz-go. (#50116)
franz-go has no full-metadata mode; it only fetches metadata for the topics the scrapers query.
The field is still accepted in configuration for backwards compatibility, but has no effect at
runtime. It will be removed in a future release. - (Contrib)
receiver/kubelet_stats: Deprecatek8s.pod.cpu.node.utilization,k8s.pod.memory.node.utilization,k8s.container.cpu.node.utilization, andk8s.container.memory.node.utilizationmetrics. (#50857)
These metrics are deprecated following the decision in the K8s SemConv SIG
(open-telemetry/semantic-conventions#2768).
They will be removed in a future release.
🚀 New components 🚀
- (Splunk)
awskinesisexporter: Added theawskinesisexporter to the Splunk distribution of the OpenTelemetry Collector. (#8182)
Theawskinesisexporter allows users to export telemetry data to Amazon Kinesis streams.
💡 Enhancements 💡
- (Splunk)
installer: Add totals to Windows Performance Counters in Windows metrics config. (#8172)
Modified receivers config option for instances parameter of Windows Performance Counters to collect additionally _Total values. - (Splunk)
receiver/gnmireceiver: Addyang_modulesconfig option to derive each leaf's metric type (gauge/sum), unit, and enum/identityref value set directly from YANG schema files instead of requiring them indefault/overrides. (#8047)
An explicitoverridesentry still takes precedence over the schema, per field: any of
type/unit/enum_valuesit leaves unset falls through to the schema, then todefault
(e.g.unit, which most OpenConfig models omit).typebecomes optional indefault/overrides
onceyang_modulesis set. - (Splunk)
processor/rolling_span_latency: Replace the temporary localrolling_span_latencyprocessor with the now-upstreamed processor. (#8126)
No configuration or behavior changes; the processor'srolling_span_latencytype, config schema, and telemetry
are unchanged. The local distribution's copy of the processor has been removed. - (Splunk)
collector: Build Windows FIPS artifacts with the certified Go Cryptographic Module v1.0.0. (#8138) - (Splunk)
collector: Build Linux FIPS artifacts with the certified Go Cryptographic Module v1.0.0. (#8119) - (Splunk)
exporter/splunk_outputs: Rename the built-in HEC output stanza from[httpout]to[hecout]to avoid conflicting with the Universal Forwarder's native[httpout]stanza, which is s2s over HTTP rather than HEC. (#8117) - (Splunk)
packaging: Update Splunk OpenTelemetry .NET agent to v1.16.0 (#8133) - (Splunk)
packaging: Update Splunk OpenTelemetry Java agent to v2.31.2 (#8186) - (Splunk)
packaging: Update Splunk OpenTelemetry Java agent to v2.31.3 (#8194) - (Splunk)
packaging: Update Splunk OpenTelemetry Node.js agent to v4.12.0 (#8196) - (Splunk)
installer: Run OTel collector on dedicated service user instead of LocalSystem (#8048)
Use a dedicated Windows virtual service account, NT SERVICE\splunk-otel-collector, for fresh Collector MSI installations.
Upgrades preserve the existing account by default and warn with the explicit migration command when remaining on LocalSystem.
Provision only receiver-required access for the virtual account: performance counters, Windows event logs including Security,
default file-log sources, and file-storage checkpoints. - (Core)
extension/memory_limiter: Add otelcol_memorylimiter_refused_requests metric to record network request refusals in extension mode. (#15561) - (Core)
pkg/confighttp: Enable keepalive configuration by default. (#16026)
Introduces the feature gatepkg.confighttp.PrioritizeNewKeepalive. When disabled, this flag
restores the old behaviour of removing the keepalive configuration in favour
of the deprecated fieldsIdleConnTimeout,MaxIdleConns,MaxIdleConnsPerHost,
DisableKeepAliveswhen the flag is disabled. - (Core)
pkg/exporterhelper: Make the partition idle timeout configurable viabatch::partition::idle_timeoutand raise the default to 90s. (#15894) - (Core)
pkg/exporterhelper: Make the multi-batcher partition LRU cache size configurable and export cache size metrics. (#14526)
Addssending_queue::batch::partition::cache_size(default 10000) to cap the
number of active partition batchers. The value
must be positive. Current size and configured capacity are exported as
otelcol_exporter_queue_batch_partition_cache_size
andotelcol_exporter_queue_batch_partition_cache_capacity. - (Core)
pkg/pprofile: Speed up profiles dictionary merging during exporter-queue batching by replacing the linear-scan dedup in switchDictionary with an indexed lookup, reducing per-merge cost from O(N*L^2) to O(N+L). (#15544)
No behavior change: merged dictionary contents and remapped indices are identical to before. - (Core)
pkg/receiverhelper: Stop allocating a span link that is always discarded when a long-lived-context receiver starts an operation without a parent span context. (#15998)
Receivers created withLongLivedCtx: trueno longer build atrace.Linkwhen the
long-lived context carries no valid span context. The SDK already discarded such a link,
so behaviour is unchanged. This removes 3 of 7 allocations per receive operation. - (Core)
pkg/xpdata: Reduce the timexhash.MapHashtakes for maps with many entries. (#15990) - (Contrib)
cmd/opampsupervisor: Enable keepalive by default (#51159) - (Contrib)
exporter/load_balancing: Addrandomnessrouting key that routes spans by the OTel tracestate randomness value (ot=rv), falling back to trace ID randomness when absent, so traces sharing an explicit randomness value are routed to the same backend. (#49660) - (Contrib)
extension/health_check: Enable keepalive by default (#51175) - (Contrib)
extension/http_forwarder: Enable keepalive by default (#51182) - (Contrib)
pkg/ottl: Promote theottl.set.allowNilfeature gate to stable. (#49741) - (Contrib)
processor/lookup: Promote lookup processor to alpha stage (#51199) - (Contrib)
processor/resource_detection: Add Azure Functions resource detector (#50633) - (Contrib)
processor/rolling_span_latency: Implement EWMA-based rolling latency baseline tracking and slow/very_slow span labeling. (#50260) - (Contrib)
processor/transform: Add extract_avg_metric OTTL function to transform processor (#49238) - (Contrib)
receiver/aws_s3: Support coarser time-steps in partition formats (#51038)
Adds support for day-partitioned time slices when reading partition formats without minute/hour granularity. - (Contrib)
receiver/awscontainerinsightreceiver: Enable keepalive by default (#49316) - (Contrib)
receiver/awsecscontainermetrics: Enable keepalive by default (#49316) - (Contrib)
receiver/azure_monitor: Add support for filtering Azure resources by tags. (#50959)
Filter resources by tag name and optionally by tag value. - (Contrib)
receiver/azure_monitor: Emit thetimegraindatapoint attribute on the ARM collection path, matching the batch API path (#50847)
Datapoints collected through the batch API carried atimegrainattribute while
the same metrics collected through the ARM API did not, so a consumer could not
tell a PT1M series from a PT1H one on that path. Both scrapers now attach the
attribute from the same composite key. - (Contrib)
receiver/collectd: Enable keepalive by default (#49316) - (Contrib)
receiver/file_stats: move all attributes and metrics to beta (#51260) - (Contrib)
receiver/haproxy: Enable keepalive by default (#49316) - (Contrib)
receiver/haproxy: Move all metrics and attributes to beta (#51261)
Also, change all units to singular form per #45270 - (Contrib)
receiver/http_check: Enable keepalive by default (#49316) - (Contrib)
receiver/influxdb: Enable keepalive by default (#49316) - (Contrib)
receiver/jaeger: Enable keepalive by default (#49316) - (Contrib)
receiver/journald: Add "convert_to_semantic_conventions" config option to map well-known journald fields to OpenTelemetry semantic convention attributes (#7298)
See the Semantic Conventions Mapping section of the receiver README for details on whatconvert_to_semantic_conventionsdoes. - (Contrib)
receiver/kafka: Link the receive span to the trace context in Kafka record headers, using the propagators configured inservice::telemetry::traces::propagators. (#51077) - (Contrib)
receiver/mongodb: Add replica set topology and oplog metrics (#50654)
Seven opt-in metrics, disabled by default, emitted only by replica set members. - (Contrib)
receiver/mysql: Addserver.addressandserver.portresource attributes (#50967)
Both attributes are emitted by default. When the receiver connects over loopback (for examplelocalhost
or127.0.0.1),server.addressreports the host name of the machine running the collector, matching how
service.instance.idalready resolves its host.mysql.instance.endpointand existing
service.instance.idvalues are unchanged. Disable the attributes via
resource_attributes.server.address.enabled: falseandresource_attributes.server.port.enabled: false. - (Contrib)
receiver/mysql: Add a newdb.server.query_planevent that reports the query execution plan on a record of its own, so it can be filtered, routed or dropped independently of the query statistics. (#51281)
Disabled by default, and requiresdb.server.top_queryordb.server.query_sample. Enabling it
removesmysql.query_planfrom those two events, which keepmysql.query_plan.hashas the join key.
db.server.top_queryalso reportsdb.namespace, whether or not the new event is enabled. - (Contrib)
receiver/ntp: Move ntp receiver metric to beta (#51380) - (Contrib)
receiver/oracledb: Add a newdb.server.query_planevent that reports the query execution plan on a record of its own, so it can be filtered, routed or dropped independently of the query statistics. (#51065)
Disabled by default, and requiresdb.server.top_query. - (Contrib)
receiver/oracledb: Add theoracle.db.editionresource attribute. (#51292)
Disabled by default. opt in by settingresource_attributes.oracle.db.edition.enabled: truein the receiver config. - (Contrib)
receiver/oracledb: Collect system and resource limit metrics when the receiver is connected directly to a PDB, such as on AWS RDS Oracle (#50147)
Previously, system and resource limit metrics were not reported when connecting straight to a PDB. - (Contrib)
receiver/oracledb: Add thedb.system.nameattribute to thedb.server.query_plananddb.server.session.wait_sampleevents. (#51065) - (Contrib)
receiver/postgresql: Addpostgresql.backend.connection.startattribute todb.server.query_sample(#50769) - (Contrib)
receiver/postgresql: Adddb.system.versionresource attribute. (#51288)
Disabled by default. opt in by settingresource_attributes.db.system.version.enabled: truein the receiver config. - (Contrib)
receiver/postgresql: Emit theserver.addressandserver.portresource attributes regardless of thereceiver.postgresql.useOTelSemconvfeature gate, and report a loopback endpoint as the collector's host name inserver.address. (#50889)
Both attributes were previously emitted only with the gate enabled and are additive, so the resource model the gate selects is otherwise unchanged. Loopback resolution matches howservice.instance.idalready resolves the same endpoint; non-loopback endpoints are unaffected, as istransport: unix, which continues to report the socket path. - (Contrib)
receiver/postgresql: Add a newdb.server.query_planevent to report the query execution plan separately. (#51301)
Disabled by default, and requiresdb.server.top_query. When enabled,db.server.top_query
stops carryingpostgresql.query_plan. - (Contrib)
receiver/prometheus: Enable keepalive by default (#49316) - (Contrib)
receiver/prometheus: Use value types and pre-allocate slices when processing scraped samples and building OTLP metrics. (#51133) - (Contrib)
receiver/prometheus_remote_write: Enable keepalive by default (#49316) - (Contrib)
receiver/rabbitmq: Add the disabled-by-defaultrabbitmq.cluster.nameresource attribute. (#50168) - (Contrib)
receiver/receiver_creator: Add ajoinHostPortfunction for receiver template expressions. (#50969) - (Contrib)
receiver/signalfx: Enable keepalive by default (#49316) - (Contrib)
receiver/splunk_hec: Enable keepalive by default (#49316) - (Contrib)
receiver/sqlserver: Adddb.system.versionresource attribute. (#51194)
Only available in direct connection mode. Disabled by default. - (Contrib)
receiver/sqlserver: Adddb.namespaceanddb.system.nameto thedb.server.query_planevent, so all four log events carry them. (#50629) - (Contrib)
receiver/tcp_check: move metric to alpha stability (#51381) - (Contrib)
receiver/vcenter: Addproxy_urlto configure a per-receiver proxy for vSphere SDK connections. (#51187)
Thehttp,https,socks5andsocks5hschemes are supported. Whenproxy_urlis
unset the process-wide HTTP_PROXY/HTTPS_PROXY/NO_PROXY environment variables continue to
apply, so existing behavior is unchanged. Because the setting is scoped to a single
receiver instance, severalvcenter/<name>receivers in one collector can now each reach
their vCenter through a different proxy. - (Contrib)
receiver/zipkin: Enable keepalive connections by default (#51139)
🧰 Bug fixes 🧰
- (Core)
exporter/debug: Support known sync error handling on AIX (#15924)
Enable the debug exporter to handle known synchronous errors on AIX. - (Core)
pkg/exporterhelper: Drop only the oversized item when splitting a batch, instead of discarding every item queued behind it (#15936)
Applied to logs only for now - (Core)
pkg/exporterhelper: Add exporter and data_type attributes to exporter/enqueue spans. (#16022) - (Core)
receiver/otlp: Error handler preserves the HTTP status code when the request Content-Type is not one a Status can be encoded in (#15995)
Extends the fix in #13414, which handled a missing Content-Type. A Content-Type that was
present but unsupported, or malformed, still fell through to
500 {"code": 13, "message": "failed to marshal error message"}, reporting client errors
such as 401 from a server auth extension or 400 from an unsupported Content-Encoding as
server faults. - (Contrib)
all: Exclude datadogconnector, datadogexporter, and datadogextension on solaris (#51329) - (Contrib)
cmd/opampsupervisor: Preserve the health last reported to the OpAMP server when an accepted connection settings offer replaces the OpAMP client, instead of reporting a running agent as unhealthy (#51009)
The supervisor.agent.health_status metric now also tracks the health reported when no
config is present and at shutdown, which previously bypassed it. - (Contrib)
cmd/opampsupervisor: Open agent.log in append mode for external log rotation (Linux + Windows) (#50376)
This makes external copytruncate-style log rotation (e.g. logrotate) work correctly instead of the file's size reverting on the next write, on both non-Windows (O_APPEND) and Windows (a FILE_APPEND_DATA handle, since Go's O_APPEND does not survive handle inheritance to the managed agent process on Windows). - (Contrib)
cmd/opampsupervisor: Fix stopping a Collector that had just started on Windows sometimes taking the full stop grace period and ending in a forced kill. (#51499) - (Contrib)
exporter/kafka: Applymetadata::retry::backoff, which was silently ignored since the migration to franz-go. (#50116)
metadata::retry::backoffis the minimum wait between retries; each successive retry doubles
the wait, with jitter applied, capped atmax(5s, backoff). On the exporter this paces produce
retries. Produce retry counts remain governed byretry_on_failureandtimeout. - (Contrib)
extension/google_cloud_logentry_encoding: Fix decoding of log messages larger than 64KiB, which previously failed with "bufio.Scanner: token too long". (#51014) - (Contrib)
extension/k8s_observer: Format IPv6 Kubernetes port endpoints correctly. (#50969) - (Contrib)
pkg/ottl: Reject lambda expressions at parse time when they are not passed to a function argument that accepts them. (#51560) - (Contrib)
pkg/stanza: Call the Windows Event Log API through*windows.LazyProcdirectly so that pointer arguments stay alive for the duration of the call. (#51074)
The wrappers in the windows_eventlog_input operator routed every call through aSyscallProcinterface, which hid
the callee from the compiler and let the garbage collector free a buffer while the Windows API was still reading it.
The interface is removed and tests mock the wrapper functions instead. - (Contrib)
processor/cumulative_to_delta: Fix histogram and exponential histogram reset recovery by updating prevPoint on reset detection (#50828) - (Contrib)
processor/delta_to_cumulative: Fix exponential histogram downscaling exceeding the bucket limit due to incorrect index rounding. (#50923) - (Contrib)
processor/k8s_attributes: Reject an invalidexclude.pods[].nameregex at config load instead of panicking at startup (#50957) - (Contrib)
processor/k8s_attributes: Emit the semantic convention deprecation warnings that were unreachable because they were evaluated before the extraction rules were populated (#51188) - (Contrib)
processor/metrics_transform: Preserve an absent histogram sum when aggregating datapoints instead of reporting a sum of 0 (#49379)
When merging (exponential) histogram datapoints, the sum is now only kept when every merged
datapoint carries one, matching the existing handling of min and max. Previously a merge that
involved a datapoint without a sum produced HasSum=true with Sum=0, which is indistinguishable
from a genuine zero sum. - (Contrib)
processor/resource_detection: Honor the configuredtimeoutin thegcpdetector when the metadata server is unreachable. (#50754)
Thegcpdetector did not honor the configuredtimeout. It now checks the metadata
server with a context that carries the deadline. - (Contrib)
processor/rolling_span_latency: move units to singular form (#45270) - (Contrib)
processor/tail_sampling: Reuse the original decision's threshold when rewriting tracestate for late-arriving spans of an already-sampled trace. (#50623) - (Contrib)
processor/transform: Ensure each batch of data receives a fresh cache whenshared_cacheis enabled (#51087) - (Contrib)
processor/transform: Fix exponential-to-explicit histogram conversion (#50737)
The conversion now handles positive, negative, and zero buckets, includes the
required overflow bucket, preserves data point metadata, and uses the
exponential histogram mapping implementation for bucket boundaries. - (Contrib)
receiver/elasticsearch: Emit theelasticsearch.index.shards.sizemetric withaggregation: primary_shardsin addition toaggregation: total(#48918)
The index shards size metric only reported thetotalaggregation, unlike the other index
metrics and its own documented attributes. It now also reports theprimary_shardsaggregation. - (Contrib)
receiver/fluent_forward: Cap decoded msgpack array entries at 1,000,000 and map options at 1,000 to avoid excessive memory allocation. (#49223) - (Contrib)
receiver/jaeger: Bound the Thrift decoder's max message size to the HTTP request body length to prevent a memory-amplification DoS. (#49218)
A tiny Thrift-binary payload could declare a spans list with a huge element count, forcing the decoder to
pre-allocate a large slice before failing to read the (absent) data. The Thrift/api/traceshandler now
caps the decoder's max message size at the number of bytes actually received, so a container that declares
more elements than the payload can hold is rejected instead of being pre-allocated. - (Contrib)
receiver/k8s_events: move units to singular form (#51262) - (Contrib)
receiver/k8s_events: Keep the watcher in the Kubernetes events receiver retry when retrieving fresh resource version after a 410 Gone response but fails transiently. (#49962) - (Contrib)
receiver/k8s_objects: Keep the watcher in the Kubernetes objects receiver retry when retrieving fresh resource version after a 410 Gone response but fails transiently. (#49962) - (Contrib)
receiver/kafka: Stop reporting stale offset lag and current offset metrics for revoked Kafka partitions. (#36093)
Theotelcol_kafka_receiver_offset_lagandotelcol_kafka_receiver_current_offsetmetrics will now be reported using async gauges. - (Contrib)
receiver/kafka: Stop processing a fetched batch once the partition consumer is cancelled, instead of marking and dropping the rest of it (#50753)
message_marking.on_errorandmessage_marking.on_permanent_errorno longer mark a
record that was interrupted by the cancellation. At shutdown, records that were
fetched but not delivered are redelivered on the next run instead of being committed. - (Contrib)
receiver/kafka: Applymetadata::retry::maxandmetadata::retry::backoff, which were silently ignored since the migration to franz-go. (#50116)
metadata::retry::maxgoverns retries for consumer group and offset commit/fetch requests. It
does not apply to fetch requests, nor to the client's internal metadata refresh, which caps
itself at 3 retries.
metadata::retry::backoffis the minimum wait between retries; each successive retry doubles
the wait, with jitter applied, capped atmax(5s, backoff). Unlikemax, it applies to every
retry path, including fetches. - (Contrib)
receiver/kafka_metrics: Applymetadata::retry::maxandmetadata::retry::backoff, which were silently ignored since the migration to franz-go. (#50116)
metadata::retry::maxgoverns retries for the admin and offset fetch requests issued by the
scrapers. It does not apply to the client's internal metadata refresh, which caps itself at 3
retries.
metadata::retry::backoffis the minimum wait between retries; each successive retry doubles
the wait, with jitter applied, capped atmax(5s, backoff). - (Contrib)
receiver/kafka_metrics: Set thekafka.cluster.aliasresource attribute to enabled whencluster_aliasis defined. (#47573) - (Contrib)
receiver/mongodb: Fix replica set secondary connections never being established (#50622)
Replica set secondaries were never discovered, so the receiver only ever collected from the
instance it was pointed at. The receiver now connects to discovered secondaries, applying the
configured TLS settings and an operation timeout to those connections. - (Contrib)
receiver/mysql: Disabling every metric fed by a query now also skips the query that fed it, instead of still running the query and discarding the result. (#50702) - (Contrib)
receiver/mysql: Checkrows.Err()after iterating query results so a failed scrape is not reported as successful (#51125)
Affected queries could return partial results without reporting an error, so a connection lost
part-way through a scrape produced incomplete metrics that looked like a successful collection. - (Contrib)
receiver/oracledb: Fix top_query and top_procedure collection running before the configured collection interval has elapsed (#50888) - (Contrib)
receiver/oracledb: move units to singular form (#45270) - (Contrib)
receiver/postgresql: Fix incorrect top-query counter increments and query ranking caused by an undersized counter cache. (#51066)
With the defaults (top_n_query: 200, max_rows_per_query: 1000), the cache held 4,000 entries
for up to 10,000 counters, overflowing beyond roughly 400 statements when all ten counters were populated.
Eviction within a collection caused full cumulative totals to be reported as interval increments
on subsequent collections, also distorting which queries were selected as the top N.
The cache is now sized from max_rows_per_query, independently of the reporting limit. - (Contrib)
receiver/postgresql: Prevent dropped top-query records and incorrect query-plan reuse when the same query ID appears under multiple databases or roles. (#51067)
Rows from different databases or roles that shared a query ID previously used the same counter-cache entries.
This could calculate deltas against unrelated counters and silently drop top-query records.
Cache entries are now isolated by database, role, query ID, and counter column.
Query plans are also cached separately for each database, role, and query ID. - (Contrib)
receiver/prometheus: Drop malformed classic histograms with decreasing bucket counts or overall count below largest bucket count instead of emitting invalid OTLP data. (#50348)
Also applies when classic histograms are converted to NHCB via theconvert_classic_histograms_to_nhcbscrape option. - (Contrib)
receiver/snmp: Fix a collector-crashing nil-pointer panic in the deferred client Close when a mid-scrape connection reset fails to reconnect. (#49703)
The wrapper's Close now delegates to gosnmp's nil-safe, idempotent Close instead of dereferencing the connection field directly. - (Contrib)
receiver/splunk_hec: Extend the response write deadline while a request body is actively being read (#51391)
Over HTTP/2 the server arms the WriteTimeout deadline when the handler starts
and never extends it, so a large or slow request that is still actively
transferring its body was reset (RST_STREAM) once WriteTimeout elapsed, even
though it was making progress. The receiver now pushes the write deadline out
as the request body is read, so WriteTimeout behaves as an idle timeout for the
body-read phase rather than a hard cap on how long a request may take to arrive.
The deadline is also reset once just before the data is handed to the pipeline
so the downstream consumer starts with a full window; it is not extended while
the consumer runs, so a consumer that blocks longer than WriteTimeout is still
reset. When WriteTimeout is 0 (disabled) behavior is unchanged. - (Contrib)
receiver/splunk_hec: SetObservedTimestampon log records so downstream consumers have a valid timestamp when the event carries no time (#51391)
Previously the receiver only setTimestamp, derived from the event'stime
field (events endpoint) or the?time=query parameter (raw endpoint). When
neither was present the timestamp defaulted to the zero value (Unix epoch) and
ObservedTimestampwas never set, leaving records with no usable time.
ObservedTimestampis now stamped with the receiver's wall-clock time on both
the events and raw paths, giving downstream components the standard fallback. - (Contrib)
receiver/ssh_check: Fix the configuredtimeoutnever being applied to the underlying SSH connection. (#50912) - (Contrib)
receiver/systemd: move units to singular form (#45270) - (Contrib)
receiver/tcp_check: move units to singular form (#45270)
Docker Image Manifests:
- Linux (amd64, arm64, ppc64le) and Windows (2019 amd64, 2022 amd64):
quay.io/signalfx/splunk-otel-collector:0.162.0- digest:
sha256:3b69941b3aef72b1142fb2d63d850297cbac4e9c79fc06a2feb4710092ccca60