This Splunk OpenTelemetry Collector release includes changes from the opentelemetry-collector v0.149.0
and the opentelemetry-collector-contrib v0.149.0 releases where appropriate.
🛑 Breaking changes 🛑
- (Splunk)
collectd/apache: This plugin is removed at the end of its deprecation period. (#7373)
There is no direct replacement for this monitor. Please consider using the Apache receiver for OpenTelemetry moving forward. - (Splunk)
collectd/cpufreq: This plugin is removed at the end of its deprecation period. (#7375)
Please use the hostmetrics receiver instead. - (Splunk)
collectd/memory: This plugin is removed at the end of its deprecation period. (#7376)
There is no direct replacement for this monitor. Please consider using the
hostmetrics receiver
with the memory scraper for OpenTelemetry moving forward. - (Splunk)
collectd/opcache: This plugin is removed at the end of its deprecation period. (#7140)
There is no direct replacement for this monitor. Please consider using the PHP SDK for OpenTelemetry moving forward. - (Splunk)
collectd/php-fpm: This plugin is removed at the end of its deprecation period. (#7140)
There is no direct replacement for this monitor. Please consider using the PHP SDK for OpenTelemetry moving forward. - (Splunk)
collectd/processes: This plugin is removed at the end of its deprecation period. (#7377)
Please use the hostmetrics receiver with the process scraper instead. - (Splunk)
collectd/systemd: This plugin is removed at the end of its deprecation period. (#7384)
Please use the systemd receiver instead. - (Splunk)
collectd/uptime: This plugin is removed at the end of its deprecation period. (#7385)
Please use the hostmetrics receiver with the system scraper instead. - (Splunk)
collectd/zookeeper: This plugin is removed at the end of its deprecation period. (#7359)
Please use the zookeeper receiver instead. - (Splunk)
includeconfigsource: Remove the deprecateddelete_filesconfiguration option. (#7374)
Thedelete_filessetting was deprecated inv0.145.0and has now been removed.
Users relying on this option should remove it from their configuration. - (Splunk)
smartagent/ntp: This monitor is removed at the end of its deprecation period. (#7386)
Please use the NTP receiver instead. - (Splunk)
smartagent/postgresql: This monitor is removed at the end of its deprecation period. (#7142)
Please use the postgresql receiver instead. - (Splunk)
collectd/protocols: This plugin is removed at the end of its deprecation period. (#7383)
Please use the hostmetrics receiver
with the network scraper instead. - (Core)
pkg/service: Removeservice_name,service_instance_id, andservice_versionas constant labels on every internal metric datapoint. These attributes are already present intarget_infoand were being duplicated on each series for OpenCensus backwards compatibility. (#14811)
Previously, the collector stamped every internal metric series (e.g.otelcol_process_runtime_heap_alloc_bytes)
withservice_name,service_instance_id, andservice_versionlabels to match the old OpenCensus behavior.
These attributes are now only present in thetarget_infometric, which is the correct Prometheus/OTel convention.
Users who filter or group by these labels on individual metrics will need to update their queries to use
target_infojoins instead. - (Contrib)
receiver/prometheus: Remove the deprecatedreport_extra_scrape_metricsreceiver configuration option and obsolete extra scrape metric feature gates. (#44181)
report_extra_scrape_metricsis no longer accepted inprometheusreceiverconfiguration.
Control extra scrape metrics through the PromConfig.ScrapeConfigs.ExtraScrapeMetrics setting instead.
🚩 Deprecations 🚩
- (Splunk)
receiver/signalfxgatewayprometheusremotewritereceiver: This component is now deprecated and will be removed in a future release. (#7340)
Support for thesignalfxgatewayprometheusremotewritereceiver is ending and it will be removed in a future release.
The closest functionality is theprometheusremotewritereceiver, which is now included in the Splunk distribution. - (Contrib)
receiver/file_log: Renamefilelogreceiver tofile_logwith deprecated aliasfilelog(#45339) - (Contrib)
receiver/kafka: Deprecate the built-inazure_resource_logsencoding in favour ofazureencodingextension. (#46267)
The built-inazure_resource_logsencoding does not support all timestamp formats
emitted by Azure services (e.g. US-format timestamps from Azure Functions).
Users should migrate to theazureencodingextension,
which provides full control over time formats and is actively maintained.
💡 Enhancements 💡
- (Core)
all: Move aix/ppc64 to tier 3 support (#13380) - (Core)
all: Upgrade the profiles stability status to alpha (#14817)
The following components have their profiles status upgraded from development to alpha:- pdata/pprofile
- connector/forward
- exporter/debug
- receiver/nop
- exporter/nop
- exporter/otlp_grpc
- exporter/otlp_http
- (Core)
cmd/mdatagen: Add semconv reference for attributes (#13297) - (Contrib)
exporter/kafka: Cache OTel metric attribute sets in OnBrokerE2E hook to reduce per-export allocations (#47186)
OnBrokerE2Epreviously rebuiltattribute.NewSet+metric.WithAttributeSeton every
call. The set of distinct (nodeID, host, outcome) combinations is bounded by
2 × number-of-brokers, so the computedMeasurementOptionis now cached per key. - (Contrib)
exporter/pulsar: This component does not support aix/ppc64. (#47010)
Make the exporter explicitly panic if used in aix/ppc64 environments. - (Contrib)
pkg/stanza: Ensure router operator does not split batches of entries (#42393) - (Contrib)
pkg/stanza: Parse all Windows Event XML fields into the log body, including RenderingInfo (with Culture, Channel, Provider, Task, Opcode, Keywords, Message), UserData, ProcessingErrorData, DebugData, and BinaryEventData. (#46943)
Previously, RenderingInfo was only used to derive the top-level level/task/opcode/keywords/message
fields. It is now also emitted as a top-levelrendering_infokey containing all fields including
culture,channel, andprovider. UserData (an alternative to EventData used by some providers)
is now parsed into auser_datakey. Rare schema elements ProcessingErrorData, DebugData, and
BinaryEventData are also captured when present. - (Contrib)
processor/resourcedetection: Added IBM Cloud VPC resource detector to the Resource Detection Processor (#46874) - (Contrib)
processor/resourcedetection: Added IBM Cloud Classic resource detector to the Resource Detection Processor (#46874) - (Contrib)
processor/tail_sampling: Addsampling_strategyconfig withtrace-completeandspan-ingestmodes for tail sampling decision timing and evaluation behavior. (#46600) - (Contrib)
receiver/awslambda: Enrich context with AWS Lambda receiver metadata for S3 logs (#47046) - (Contrib)
receiver/azure_event_hub: Add support for Azure Event Hubs distributed processing. This allows the receiver to automatically coordinate partition ownership and checkpointing across multiple collector instances via Azure Blob Storage. (#46595) - (Contrib)
receiver/docker_stats: Add TLS configuration support for connecting to the Docker daemon over HTTPS with client and server certificates. (#33557)
A new optionaltlsconfiguration block is available indocker_statsreceiver config (and the
sharedinternal/dockerpackage). When omitted the connection remains insecure (plain HTTP or
Unix socket), preserving existing behavior. When provided it supports the standard
configtls.ClientConfigfields:ca_file,cert_file,key_file,insecure_skip_verify,
min_version, andmax_version.
A warning is now emitted when a plaintcp://orhttp://endpoint is used without TLS,
reflecting Docker's deprecation of unauthenticated TCP connections since Docker v26.0
(see https://docs.docker.com/engine/deprecated/#unauthenticated-tcp-connections). - (Contrib)
receiver/docker_stats: Add "stream_stats" config option to maintain a persistent Docker stats stream per container instead of opening a new connection on every scrape cycle. (#46493)
Whenstream_stats: trueis set, each container maintains a persistent open Docker stats
stream instead of opening and closing a new connection on every scrape cycle. The scraper
reads from the cached latest value, which reduces connection overhead. - (Contrib)
receiver/expvar: Enable the re-aggregation feature for the expvar receiver (#45396) - (Contrib)
receiver/file_log: Addmax_log_size_behaviorconfig option to control oversized log entry behavior (#44371)
The newmax_log_size_behaviorsetting controls what happens when a log entry exceedsmax_log_size.split(default): Splits oversized log entries into multiple log entries. This is the existing behavior.truncate: Truncates oversized log entries and drops the remainder, emitting only a single truncated log entry.
- (Contrib)
receiver/hostmetrics: Enable re-aggregation for system scraper (#46624)
Enabled the reaggregation feature gate for the system scraper. - (Contrib)
receiver/hostmetrics: Enable re-aggregation for process scraper (#46623)
Enabled the reaggregation feature gate for the process scraper and set all metric attributes (context_switch_type, direction, paging_fault_type, state) with requirement_level recommended. - (Contrib)
receiver/mongodb: Enable re-aggregation feature for mongodb receiver metrics (#46366) - (Contrib)
receiver/mongodb: Addschemeconfiguration option to supportmongodb+srvconnections (#36011)
The newschemefield allows connecting to MongoDB clusters using
SRV DNS records (mongodb+srv protocol). Defaults to "mongodb" for
backward compatibility. - (Contrib)
receiver/mysql: Addmysql.query_plan.hashattribute to top query log records, enabling users to correlate top queries with their corresponding execution plans. (#46626) - (Contrib)
receiver/mysql: Addedmysql.session.statusandmysql.session.idattributes to query samples.mysql.session.statusindicates the session status (waiting,running, orother) at the time of the sample.mysql.session.idprovides the unique session identifier. Both attributes provide additional context for understanding query performance and behavior. (#135350) - (Contrib)
receiver/mysql: Add and tune obfuscation of sensitive properties in both V1 and V2 JSON query plans. (#46629, #46587)
Configure and test obfuscation for V1 and V2 plans, including tests of queries retrieved from the performance schema that are truncated and cannot be obfuscated.
The importance of obfuscation can be very context dependent; sensitive PII, banking, and authorization data may reside in the same database as less sensitive data, and it can be vital to ensure that what is expected to be obfuscated is always obfuscated. Significant additional testing has been added around query plan obfuscation to ensure that this is enforced and to provide assurance and reference to users about what specifically is obfuscated and what is not. - (Contrib)
receiver/mysql: Propagates W3C TraceContext from MySQL session variables to query sample log records. When a MySQL session sets@traceparent, the receiver extracts the TraceID and SpanID and stamps them onto the correspondingdb.server.query_samplelog record, enabling correlation between application traces and query samples. (#46631)
Only samples from sessions where@traceparentis set will have non-zerotraceIdandspanIdfields on the log record. - (Contrib)
receiver/prometheus: Add support for reading instrumentation scope attributes fromotel_scope_<attribute-name>labels while feature-gating deprecation ofotel_scope_info. (#41502)
Scope attributes are always extracted fromotel_scope_<attribute-name>labels on metrics.
Thereceiver.prometheusreceiver.IgnoreScopeInfoMetricfeature gate (alpha, disabled by default)
controls only whether the legacyotel_scope_infometric is ignored for scope attribute extraction.
When the gate is disabled, both mechanisms coexist to support migration.
See the specification change for motivation: open-telemetry/opentelemetry-specification#4505 - (Contrib)
receiver/sqlquery: Add clickhouse support to sqlquery (#47116) - (Contrib)
receiver/sqlquery: Addrow_conditionto metric configuration for filtering result rows by column value (#45862)
Enables extracting individual metrics from pivot-style result sets where each row
represents a different metric (e.g. pgbouncer'sSHOW LISTScommand). When
row_conditionis configured on a metric, only rows where the specified column
equals the specified value are used; all other rows are silently skipped. - (Contrib)
receiver/sqlserver: Enable dynamic metric reaggregation in the SQL Server receiver. (#46379) - (Contrib)
receiver/yang_grpc: Support collecting any metric by browsing the whole metrics tree (#47054)
🧰 Bug fixes 🧰
- (Contrib)
exporter/kafka: Fixes the validation fortopic_from_metadata_keyto use partition keys. (#46994) - (Contrib)
exporter/kafka: Fix topic routing for multi-resource batches whentopic_from_attributeis set without resource-level partitioning (#46872)
Previously, when a batch contained multiple resources with different
topic attribute values, all data was silently sent to the topic of the
first resource. Each resource is now correctly routed to its own topic. - (Contrib)
exporter/splunk_hec: Fix timestamp precision in Splunk HEC exporter to preserve microseconds instead of truncating to milliseconds. (#47175)
Timestamps were rounded to milliseconds before sending to Splunk HEC. The rounding has been removed, giving microsecond precision in the HECtimefield. - (Contrib)
extension/bearertokenauth: Redact bearer token from authentication error messages to prevent credential exposure in logs. (#46200)
Previously, when a client presented an invalid bearer token, the full token value was
included in the error message returned by the Authenticate method. This error could be
propagated to log output, exposing sensitive credentials. The error message now omits
the token value entirely. - (Contrib)
internal/aws: Respect NO_PROXY/no_proxy environment variables when using env-based proxy configuration in awsutil (#46892)
When no explicit proxy_address was configured, the HTTP client manually read HTTPS_PROXY
and used http.ProxyURL which ignores NO_PROXY. Now delegates to http.ProxyFromEnvironment
which correctly handles all proxy environment variables. - (Contrib)
processor/filter: Fix validation of include and exclude severity configurations so they run independently of LogConditions. (#46883) - (Contrib)
receiver/file_log: Fix data corruption after file compression (#46105)
After a log file is compressed (e.g. test.log → test.log.gz), the receiver configured withcompression: autowill now correctly decompress the content and continue reading from where the plaintext file left off. - (Contrib)
receiver/file_log: Fixes bug where File Log receiver did not read the last line of gzip compressed files. (#45572) - (Contrib)
receiver/hostmetrics: Align HugePages metric instrument types with the semantic conventions by emitting page_size, reserved, and surplus as non-monotonic sums instead of gauges. (#42650) - (Contrib)
receiver/hostmetrics: Handle nil PageFaultsStat in process scraper to prevent panic on zombie processes. (#47095) - (Contrib)
receiver/journald: Fix emitting of historical entries on startup (#46556)
When start_at is "end" (the default), pass --lines=0 to journalctl to suppress
the 10 historical entries it emits by default in follow mode. - (Contrib)
receiver/k8s_events: Exclude DELETED watch events to prevent duplicate event ingestion. (#47035) - (Contrib)
receiver/mysql: Remove deprecatedinformation_schema.processlistJOIN from query samples template; usethread.processlist_hostinstead. (#47041) - (Contrib)
receiver/oracledb: Fix oracledbreceiver aborting entire scrape when a SQL query text fails to obfuscate (e.g. due to Oracle truncating a CLOB mid-string-literal). The affected entry is now skipped with a warning log and the rest of the scrape continues normally. (#47151) - (Contrib)
receiver/prometheus_remote_write: Count target_info samples in PRW response stats (#47108)
Docker Image Manifests:
- Linux (amd64, arm64, ppc64le) and Windows (2019 amd64, 2022 amd64):
quay.io/signalfx/splunk-otel-collector:0.149.0- digest:
sha256:884a23dfd1e40c90f423d7bcf5bf0d8f409f9a789ef8a5717051747b4d8faf05