This Splunk OpenTelemetry Collector release includes changes from the opentelemetry-collector v0.142.0
and the opentelemetry-collector-contrib v0.142.0 releases where appropriate.
🛑 Breaking changes 🛑
- (Splunk)
configserver: Removed the deprecated localhost config endpoint (http://localhost:55554/debug/configz) and its related environment variables. (#6984)
The collector's default configuration files enable thezpagesextension and the respectivedebug/expvarzendpoint,
by default athttp://localhost:55679/debug/expvarz. This endpoint provides a JSON map containing the collector
configuration details. The keyssplunk.config.initialandsplunk.config.effectivewithin this map
hold, respectively, the initial and effective YAML configurations as strings.
To retrieve the configuration in YAML format using this endpoint, you can use the following commands:
On Windows PowerShell 5.1:On Bash (with(Invoke-WebRequest http://localhost:55679/debug/expvarz).Content | ConvertFrom-Json | Select-Object -ExpandProperty splunk.config.effective
curlandjq):curl http://localhost:55679/debug/expvarz --silent | jq -r '.["splunk.config.initial"]'
- (Contrib)
exporter/prometheusremotewrite: Updated to Remote Write 2.0 spec rc.4, requiring Prometheus 3.8.0 or later as the receiving endpoint. (#44861)
The upstream Prometheus library updated the Remote Write 2.0 protocol from rc.3 to rc.4 in
prometheus/prometheus#17411. This renamedCreatedTimestamptoStartTimestampand moved it
from theTimeSeriesmessage to individualSampleandHistogrammessages. This is a
wire-protocol incompatibility, so if you are exporting to a Prometheus server, you must upgrade
it to version 3.8.0 or later to receive data from this exporter. - (Contrib)
extension/googlecloudlogentry_encoding: Parse External Application Load Balancer logs into log record attributes instead of placing it in the body as is. (#44438) - (Contrib)
pkg/stanza: Allowmax_batch_sizeof 0 for unlimited batching inrecombineoperator (#43982)
The recombine operator now supports settingmax_batch_size: 0to disable batch size limits.
This allows unlimited batching, letting entries be combined based only onmax_log_sizeand matching conditions.
If you havemax_batch_size: 0in your config and want to keep the behavior unchanged, change the configuration tomax_batch_size: 1. - (Contrib)
processor/cumulativetodelta: Change defaultmax_stalenessfrom 0 (infinite) to 1 hour (#44427)
The processor now defaults to amax_stalenessof 1 hour instead of 0 (infinite retention).
This prevents unbounded memory growth in long-running collector instances, especially when tracking metrics with high cardinality or frequently changing attribute values.
To restore the previous behavior of infinite retention, explicitly setmax_staleness: 0in your configuration. - (Contrib)
processor/resourcedetection: Promoteprocessor.resourcedetection.propagateerrorsfeature gate to beta (#44609)
Note: Splunk OTel Collector has disabled this feature gate by default to prevent unexpected crashes due to resource detection errors - (Contrib)
processor/resourcedetection: Remove deprecatedattributesconfiguration option (#44610) - (Contrib)
receiver/dockerstats: Upgrades default Docker API version to 1.44 to be compatible with recent Docker Engine versions. (#44279)
Users requiring an older Docker API version can set theapi_versionin the docker stats receiver config. The minimum supported API level is not changed, only default. - (Contrib)
receiver/filelog: Movefilelog.decompressFingerprintto stable stage (#44570) - (Contrib)
receiver/prometheus: Promote the receiver.prometheusreceiver.RemoveStartTimeAdjustment feature gate to stable and remove in-receiver metric start time adjustment in favor of the metricstarttime processor, including disabling the created-metric feature gate. (#44180)
Previously, users could disable the RemoveStartTimeAdjustment feature gate to temporarily keep the legacy start time adjustment behavior in the Prometheus receiver.
With this promotion to stable and bounded registration, that gate can no longer be disabled; the receiver will no longer set StartTime on metrics based on process_start_time_seconds, and users should migrate to the metricstarttime processor for equivalent functionality.
This change also disables the receiver.prometheusreceiver.UseCreatedMetric feature gate, which previously used the<metric>_createdseries to derive start timestamps for counters, summaries, and histograms when scraping non OpenMetrics protocols.
However, this does not mean that the_createdseries is always ignored: when using the OpenMetrics 1.0 protocol, Prometheus itself continues to interpret the_createdseries as the start timestamp, so only the receiver-side handling for other scrape protocols has been removed. - (Contrib)
receiver/prometheus: Native histogram scraping and ingestion is now controlled by the scrape configuration optionscrape_native_histograms. (#44861)
The feature gatereceiver.prometheusreceiver.EnableNativeHistogramsis now stable and enabled by default.
Native histograms scraped from Prometheus will automatically be converted to OpenTelemetry exponential histograms.
To enable scraping of native histograms, you must configurescrape_native_histograms: truein your Prometheus
scrape configuration (either globally or per-job). Additionally, the protobuf scrape protocol must be enabled
by settingscrape_protocolsto includePrometheusProto.
🚩 Deprecations 🚩
- (Splunk)
signalfx-agent: The collectd/zookeeper plugin is deprecated. Please use the zookeeper receiver instead. This plugin will be removed by the end of March 2026. (#7016) - (Contrib)
processor/k8sattributes: Removes stable k8sattr.fieldExtractConfigRegex.disallow feature gate (#44694) - (Contrib)
receiver/kafka: Deprecatedefault_fetch_sizeparameter for franz-go client (#43104)
Thedefault_fetch_sizeparameter is now deprecated for the franz-go Kafka client and will only be used with the legacy Sarama client.
Users should configuremax_fetch_sizeinstead when using franz-go.
This deprecation is marked as of v0.142.0. - (Contrib)
receiver/kafka: Support configuring a list of topics and exclude_topics; deprecate topic and exclude_topic (#44477) - (Contrib)
receiver/prometheus: Deprecateuse_start_time_metricandstart_time_metric_regexconfig in favor of the processormetricstarttime(#44180)
💡 Enhancements 💡
- (Core)
exporter/debug: Add logging of dropped attributes, events, and links counts in detailed verbosity (#14202) - (Contrib)
exporter/kafka: Adds server.address attribute to all Kafka exporter metrics. (#44649) - (Contrib)
exporter/prometheusremotewrite: Add option to removeservice.name,service.instance.id,service.namespaceResourceAttribute from exported metrics (#44567) - (Contrib)
exporter/signalfx: Support setting default properties for dimension updates to be set lazily as part of configuration (#44891) - (Contrib)
extension/googlecloudlogentry_encoding: Add support for GCP VPC Flow Log fields for MIG (Managed Instance Group) and Google Service logs. (#44220)
Adds support for the following GCP VPC Flow Log fields:- Add support for gcp.vpc.flow.{source,destination}.google_service.{type,name,connectivity}
- Add support for gcp.vpc.flow.{source,destination}.instance.managed_instance_group.{name,region,zone}
- (Contrib)
extension/health_check: Added extension.healthcheck.useComponentStatus feature gate to enable v2 component status reporting in healthcheckextension while maintaining backward compatibility by default. (#42256) - (Contrib)
pkg/translator/azurelogs: Added support for Activity Logs Recommendation category (#43220) - (Contrib)
processor/resourcedetection: Add support for dynamic refresh resource attributes with refresh_interval parameter (#42663) - (Contrib)
processor/transform: New Transform Processor functionset_semconv_span_name()to overwrite the span name with the semantic conventions for HTTP, RPC, messaging, and database spans. (#43124)
In other cases, the originalspan.nameis unchanged.
The primary use ofset_semconv_span_name()is alongside the
Span Metrics Connector
to address high-cardinality issues in span metrics whenspan.namedoes not comply with the OTel requirement
that span names be low cardinality. - (Contrib)
receiver/azuremonitor: Scrape storage account sub types (#37220) - (Contrib)
receiver/googlecloudpubsub: Exponential backoff streaming restarts (#44741) - (Contrib)
receiver/kafka: Makesession_timeout,heartbeat_interval,max_partition_fetch_size, andmax_fetch_waitunconditional in franz-go consumer (#44839) - (Contrib)
receiver/kafka: Validate thatexclude_topicsentries in kafkareceiver config are non-empty. (#44920) - (Contrib)
receiver/oracledb: Added independent collection interval config for Oracle top query metrics collection (#44607) - (Contrib)
receiver/prometheusremotewrite: Map.PutStr causes excessive memory allocations due to repeated slice expansions (#44612) - (Contrib)
receiver/splunk_hec: Support parsing JSON array payloads in Splunk HEC receiver (#43941) - (Contrib)
receiver/sshcheck: Promote sshcheck receiver to beta stability (#41573) - (Contrib)
pkg/ottl: Accept string trace/span/profile IDs forTraceID(),SpanID(), andProfileID()in OTTL. (#43429)
This change allows for a more straightforward use of string values to set trace, span, and profile IDs in OTTL. - (Contrib)
pkg/stanza: New featuregatefilelog.windows.caseInsensitiveintroduced. It will make glob matching is case-insensitive on Windows. (#40685)
Previously, anyincludepattern that included some manner of wildcard (*or**) would
be case-sensitive on Windows, but Windows filepaths are by default case-insensitive. This meant
that in a directory with the filesa.logandb.LOG, the pattern*.logwould previously only
matcha.log. With thefilelog.windows.caseInsensitivefeaturegate enabled, it will match botha.log
andb.LOGwhen on Windows. The behaviour is the same as always on other operating systems, as all other
currently supported platforms for the Collector have case-sensitive filesystems. - (Contrib)
processor/k8sattributes: Updates semconv version to v1.37.0 (#44696) - (Contrib)
processor/resourcedetection: Update semconv dependency to 1.37.0 which updates the schema url in the data, but no other impact is expected. (#44726)
🧰 Bug fixes 🧰
- (Splunk)
resourcedetection: Theprocessor.resourcedetection.propagateerrorsfeature gate setting has been disabled by default to prevent unexpected crashes due to resource detection errors. (#7030)
In upstream release v0.142.0, theprocessor.resourcedetection.propagateerrorsfeature gate has been changed from disabled to enabled by default.
This change may lead to unexpected crashes in environments where resource detection errors occur.
To mitigate this issue, we have disabled thepropagateerrorssetting by default in our distribution.
Users who require strict error propagation can manually enable this feature in their configuration. - (Contrib)
processor/cumulativetodelta: Check whether bucket bounds are the same when verifying whether histograms are comparable (#44793) - (Contrib)
processor/cumulativetodelta: Fix logic handling ZeroThreshold increases for exponential histograms (#44793) - (Contrib)
processor/filter: Fix context initialization for metric/datapoint context (#44813) - (Contrib)
processor/k8sattributes: Fixk8sattr.labelsAnnotationsSingular.allowfeature gate to affect config default tag names in addition to runtime extraction (#39774) - (Contrib)
processor/tail_sampling: Fix a memory leak introduced in 0.141.0 of the tail sampling processor when not blocking on overflow. (#44884) - (Contrib)
receiver/googlecloudpubsub: Acknowledge messages at restart (#44706)
Rewrote the control flow loop so the acknowledgment of messages is more reliable. At stream restart, the messages
ackIds are resent immediately without an explicit acknowledgment. Outstanding ackIds are only cleared when the
acknowledgment is sent successfully. - (Contrib)
receiver/kafka: Usemax_fetch_sizeinstead ofdefault_fetch_sizein franz-go client (#43104)
The franz-go Kafka consumer was incorrectly usingdefault_fetch_size(a Sarama-specific setting) instead ofmax_fetch_sizewhen configuringkgo.FetchMaxBytes.
This fix ensures the correct parameter is used and adds validation to preventmax_fetch_sizefrom being less thanmin_fetch_size.
The default value formax_fetch_sizehas been changed from 0 (unlimited) to 1048576 (1 MiB) to maintain backward compatibility with the previous (incorrect) behavior. - (Contrib)
receiver/prometheus: Fix HTTP response body leak in target allocator when fetching scrape configs fails (#44921)
The getScrapeConfigsResponse function did not close resp.Body on error paths.
If io.ReadAll or yaml.Unmarshal failed, the response body would leak,
potentially causing HTTP connection exhaustion. - (Contrib)
receiver/prometheus: Fixes yaml marshaling of prometheus/common/config.Secret types (#44445)
Docker Image Manifests:
- Linux (amd64, arm64, ppc64le) and Windows (2019 amd64, 2022 amd64):
quay.io/signalfx/splunk-otel-collector:0.142.0- digest:
sha256:2017e680b48be7f6cfe3b41c912e2f895489e9ae882844176ed020e014b24c40