github signalfx/splunk-otel-collector v0.154.0

21 hours ago

This Splunk OpenTelemetry Collector release includes changes from the opentelemetry-collector v0.154.0
and the opentelemetry-collector-contrib v0.154.0 releases where appropriate.

🛑 Breaking changes 🛑

  • (Splunk) config: Update deprecated receiver alias from kubeletstats to kubelet_stats in default configs (#7556)
    All collector configurations need to be updated to use the kubelet_stats alias.
  • (Splunk) config: Update deprecated receiver alias from kafkametrics to kafka_metrics in default configs (#7556)
    All collector configurations need to be updated to use the kafka_metrics alias.
  • (Splunk) packaging: Remove the agent bundle (collectd, Python, and Java subprocesses) from all packages and container images. (#7513)
    The agent bundle (bundled collectd, Python runtime, and Java runtime) is no longer shipped with
    the Splunk Distribution of OpenTelemetry Collector. Monitors that relied on these bundled
    runtimes (collectd-based monitors, Python-based monitors via the Smart Agent Receiver, and the
    JMX Smart Agent monitor) are no longer supported. Users should migrate to native OpenTelemetry
    receivers or Prometheus-compatible exporters for equivalent functionality.
  • (Splunk) smartagentextension: Remove collectd configuration block and bundleDir from the Smart Agent Extension. (#7513)
    The collectd configuration block (including configDir, logLevel, intervalSeconds, etc.) has been removed from the Smart Agent Extension as the collectd subprocess no longer exists.
    The bundleDir field has also been removed from the Smart Agent Extension configuration.
    Configurations referencing these fields must be updated.
  • (Splunk) smartagentreceiver: Remove collectd-based monitors (collectd/openstack, collectd/custom, and the collectd subprocess infrastructure). (#7513)
    The collectd subprocess and all monitors that depended on it have been removed:
    collectd/openstack, collectd/custom, and the underlying collectd infrastructure code.
    Users relying on these monitors should migrate to native OpenTelemetry receivers.
  • (Splunk) hana: Remove the hana monitor after its deprecation period. (#7613)
    The hana monitor has been removed.
    Please use the
    saphana
    and sqlquery receivers instead.
  • (Splunk) smartagentreceiver: Remove the jmx Smart Agent monitor that depended on the bundled Java runtime. (#7513)
    The jmx Smart Agent monitor has been removed along with the bundled Java runtime it required.
    Users should migrate to the jmx receiver from opentelemetry-collector-contrib for equivalent JMX
    metrics collection. Users should also ensure that a compatible Java runtime is installed on the
    host.
  • (Contrib) connector/span_metrics: Validate calls_dimensions and histogram.dimensions at startup (#48097)
    Duplicate dimension names in calls_dimensions or histogram.dimensions previously passed silently; they now fail validation at startup, matching the behaviour of the top-level dimensions setting.
  • (Contrib) receiver/vcenter: Set resourcePoolMemoryUsageAttribute feature gate to beta. (#47552)

🚩 Deprecations 🚩

  • (Splunk) installer: Deprecate the HEC URL parameter (#7611)
    The --hec-url and -hec_url parameters (for BASH and PowerShell, respectively) have been
    deprecated and will be removed in September 2026.
  • (Contrib) exporter/prometheus_remote_write: Rename to prometheus_remote_write with deprecated alias prometheusremotewrite (#45339)
  • (Contrib) exporter/signalfx: Traces have been deprecated for the exporter (#48748)
    Trace correlation functionality no longer requires the signalfx exporter to be included in trace pipelines.
    Sending traces may now be sent solely via OTLP to enable trace correlation. All trace functionality and configuration
    will be removed from this exporter in December 2026.
  • (Contrib) processor/resource_detection: The k8snode detector is deprecated; use k8s_api instead. (#48597)
    Both names work and produce identical output. When switching to k8s_api, also rename your config section from k8snode: to k8s_api:; keeping the old key under the new detector name will silently apply defaults instead.
  • (Contrib) receiver/apache_spark: Rename apachespark receiver to apache_spark with deprecated alias apachespark (#45339)
  • (Contrib) receiver/kafka: Deprecate group_rebalance_strategy in favor of group_rebalance_strategies (#48658)
    Use group_rebalance_strategies to configure one or more ordered protocols. The singular field remains supported for backward compatibility but logs a deprecation warning on startup.
    group_rebalance_strategy and group_rebalance_strategies are mutually exclusive; setting both fails validation.
  • (Contrib) receiver/windows_service: Rename receiver type from windowsservice to windows_service (#45339)

💡 Enhancements 💡

  • (Splunk) config: Remove signalfx exporter from trace pipelines in all default configs (#7594)
    Trace correlation can now be done without including the signalfx exporter in trace pipelines.
  • (Splunk) installer: Add Splunk Platform log collection support to the Windows installer script. (#7592)
    New MSI install parameters: SPLUNK_PLATFORM_URL, SPLUNK_PLATFORM_TOKEN, SPLUNK_PLATFORM_LOGS_INDEX
    enable forwarding host logs to Splunk Platform via HEC. A new splunk_logs_config_windows.yaml
    config file is installed with filelog & windows_event_log receivers.
  • (Splunk) installer: Add Splunk Platform log collection support to the Linux installer script. (#7452)
    New flags --splunk-platform-token, --splunk-platform-url, and --splunk-platform-logs-index
    enable forwarding host logs to Splunk Platform via HEC. A new splunk_logs_config_linux.yaml
    config file is installed with filelog receivers for /var/log, /etc, .bash_history, and journald (disabled by default).
  • (Splunk) installer: Add Splunk Platform metrics collection support to the Linux installer script. (#7615)
    New flag --splunk-platform-metrics-index enables forwarding basic host metrics to Splunk Platform via HEC.
  • (Splunk) packaging: Update Splunk OpenTelemetry Node.js agent to v4.8.0 (#7634)
  • (Core) pkg/config/configtls: Add include_insecure_cipher_suites to configtls to enable insecure cipher suites. Insecure cipher suites are disabled by default for security. (#13829)
  • (Core) pkg/confighttp: Add ExposedHeaders field to CORSConfig to allow setting the Access-Control-Expose-Headers response header. (#15119)
  • (Contrib) connector/span_metrics: Support for glob expressions in the dimensions field of the spanmetrics connector config (#48097)
    It is now possible to specify attributes to add as dimensions to metrics using glob expressions, in addition to exact string matching
  • (Contrib) exporter/load_balancing: Add service, resource, and attributes routing key support for logs (#40223)
    Logs can now be routed using service (default, routes by service.name), resource (routes by
    full resource identity), or attributes (routes by configurable attribute values including
    log.severity and log.body pseudo attributes). This enables stateful downstream processing like
    log reduction, throttling, and tail-based sampling.
  • (Contrib) exporter/signalfx: Handle entity events as property updates sent to the PUT endpoint instead of PATCH. (#48469)
  • (Contrib) extension/google_cloud_logentry_encoding: Migrate semantic conventions from v1.38.0 to v1.40.0 (#47547)
  • (Contrib) processor/cumulativetodelta: Add internal telemetry for converted and dropped datapoints, and for tracked streams. (#48246)
    Three new metrics are emitted by the processor, all disabled by default (opt-in via the collector's service.telemetry.metrics configuration):
    • otelcol_cumulativetodelta_datapoints: number of datapoints converted from cumulative to delta temporality (with a metric_type attribute: sum, histogram, or exponential_histogram).
    • otelcol_cumulativetodelta_datapoints_dropped: number of datapoints dropped instead of converted, with the same metric_type attribute and a reason attribute (reset, initial, bucket_mismatch).
    • otelcol_cumulativetodelta_streams_tracked: number of metric streams currently tracked in memory.
      Reset detections also emit a Debug-level log line including the metric name, type, and datapoint attributes — logs absorb the per-stream cardinality that would be prohibitive on a metric while still letting operators identify which stream is wrapping/restarting.
  • (Contrib) processor/k8s_attributes: Add pod_delete_grace_period config option to configure pod metadata cache deletion grace period. (#48127)
    The pod_delete_grace_period config option defaults to 120s to match the previously hardcoded behavior.
  • (Contrib) processor/resource_detection: Add k8s.cluster.uid detection to the k8s_api detector (formerly k8snode), derived from the kube-system namespace UID. (#48597)
    The k8s.cluster.uid attribute is enabled by default. To disable it, set resource_attributes.k8s.cluster.uid.enabled: false.
    The detector requires get permission on the kube-system namespace. If the permission is missing, a warning is logged and the attribute is omitted; other attributes are unaffected.
  • (Contrib) processor/resource_detection: Updates github.com/GoogleCloudPlatform/opentelemetry-operations-go dependencies to their latest versions (v0.57.0 / v1.33.0). (#48894)
    This update brings in the following features:
    • Support OTLP event_name field in logs exporter
    • Add support for cloud run worker pools
  • (Contrib) processor/tail_sampling: Add a new processor_tail_sampling_count_bytes_sampled metric that counts bytes sampled per policy, mirroring processor_tail_sampling_count_spans_sampled. (#48348)
    Gated behind the processor.tailsamplingprocessor.metricstatcountbytessampled feature gate (alpha, disabled by default).
    Bytes are measured using the protobuf-marshaled ResourceSpans size, the same calculation used for maximum_trace_size_bytes.
  • (Contrib) processor/tail_sampling: Allow nesting the not policy inside and_sub_policy for tail sampling policies. (#47313)
    This enables configurations such as "status_code: ERROR" AND NOT "http.status_code in [400, 499]" without relying on deprecated invert_match.
  • (Contrib) processor/transform: Add the limit_buckets method to the merge_histogram_buckets OTTL function to reduce explicit histogram bucket counts. (#48527)
  • (Contrib) receiver/azure_blob: Allow logs.encoding and traces.encoding to reference an encoding extension ID, in addition to the built-in otlp_json and otlp_proto values. (#48238)
    When encoding is set to a value other than otlp_json or otlp_proto, it is
    treated as the component ID of an encoding extension. The extension is resolved
    from the collector's configured extensions when the receiver starts and used to
    unmarshal blob payloads for that signal.
  • (Contrib) receiver/azure_blob: Add encoding option per signal to accept OTLP/Protobuf in addition to OTLP/JSON blob payloads (#48236)
    Previously the receiver only accepted OTLP/JSON. New logs.encoding and
    traces.encoding options each accept otlp_json (default) or otlp_proto,
    selecting the encoding of blob payloads per signal. The default preserves
    prior behavior for existing OTLP/JSON producers.
  • (Contrib) receiver/host_metrics: Add AIX to the system scraper's supported-OS allowlist. (#47095)
  • (Contrib) receiver/k8s_events: Add dedup_interval config to throttle MODIFIED watch notifications per Event UID. (#48018)
    dedup_interval is opt-in (default 0 preserves existing behavior). When set to a positive
    duration, MODIFIED watch notifications for a given Event UID are emitted at most once per
    interval; ADDED notifications are always emitted. Set to a negative value to drop all
    MODIFIED notifications. Per-UID throttle state is retained for dedup_interval + 5m.
    Adds an internal telemetry counter otelcol.k8s.events.modified.filtered that
    tracks how many MODIFIED notifications were dropped by dedup_interval.
  • (Contrib) receiver/k8s_objects: Add initial_delay to delay the first pull for pull-mode objects by an exact, per-object duration. (#48605)
    initial_delay lets operators stagger heavy pull-mode object collections across startup time
    without changing the configured recurring interval.
    If unset or 0, the receiver keeps the current immediate first-pull behavior.
    Watch-mode objects are unaffected.
  • (Contrib) receiver/kafka: Add group_rebalance_strategies so consumers can advertise multiple partition assignment protocols in order during rolling deployments (#48658)
    Kafka picks the first protocol every group member supports. This avoids INCONSISTENT_GROUP_PROTOCOL when old and new collector pods temporarily advertise different assignment strategies.
    Order is preserved when configuring the franz-go client.
  • (Contrib) receiver/oracledb: Add physical I/O and SQL*Net throughput metrics sourced from the existing v$sysstat scrape. (#48291)
    Adds four new opt-in metrics (disabled by default, stability: development) that
    surface previously discarded v$sysstat counters and establish the OTLP
    attributed metric pattern for the OracleDB receiver:
    • oracledb.physical_io.transferred (attributes: disk.io.direction, disk.io.type)
    • oracledb.physical_io.requests (attributes: disk.io.direction, disk.io.block_size)
    • oracledb.physical_io.cache_writes
    • oracledb.sqlnet.io.transferred (attributes: network.io.direction, destination.type)
      No new SQL queries are introduced; the existing SELECT * FROM v$sysstat scrape
      already returns all required rows, so there is zero additional load on
      monitored Oracle instances.
  • (Contrib) receiver/oracledb: Add oracledb.plan.last_load and oracledb.plan_hash_value attributes to db.server.top_query events (#48216)
    Enhance db.server.top_query event with execution plan metadata:
    • oracledb.plan.last_load: Captures when the query execution plan was loaded
    • oracledb.plan_hash_value: Provides hash value for identifying similar execution plans
      These attributes enable plan stability monitoring, performance regression analysis, and query optimization workflows.
  • (Contrib) receiver/oracledb: Add Oracle instance metadata as resource attributes and CDB/PDB detection at startup. (#48354)
    New resource attributes detected once at receiver startup (best-effort; failures are logged at Warn level):
    • oracle.db.version - Oracle version string (e.g. "19.0.0.0.0")
    • oracle.db.role - database role (e.g. "PRIMARY", "PHYSICAL STANDBY")
    • oracle.db.open_mode - open mode (e.g. "READ WRITE", "READ ONLY")
    • oracle.db.hosting_type - hosting environment: "self-managed", "RDS", or "OCI"
    • oracle.db.pdb - PDB name when connected directly to a PDB (empty for non-CDB or CDB root)
  • (Contrib) receiver/oracledb: Add 12 new opt-in metrics from V$SYSMETRIC (group_id=2) covering buffer cache, CPU, library cache, shared pool, parse, and sort utilization. Parse and sort metrics include differentiating attributes. (#48381)
    New metrics (all disabled by default, stability: development):
    oracledb.buffer_cache.utilization, oracledb.database.cpu.utilization,
    oracledb.database.wait.utilization, oracledb.execution.utilization (with parse_type attribute),
    oracledb.host.cpu.utilization, oracledb.library_cache.utilization,
    oracledb.parse.rate (with parse_result attribute), oracledb.parse.utilization,
    oracledb.redo_allocation.utilization, oracledb.shared_pool.utilization,
    oracledb.sort.ratio (with sort_type attribute), oracledb.sql_service.response.duration
  • (Contrib) receiver/oracledb: Add session wait event sampling (#48353)
    Add new opt-in log event db.server.session.wait_sample (disabled by default) that collects
    per-session wait event statistics from v$session_event. Includes session identifiers (sid, serial),
    wait event details (event, wait_class), and wait metrics (total_waits, time_waited).
  • (Contrib) receiver/postgresql: Clean up the query_sample template to exclude our own connection and remove null query_start staements. (#47317)
  • (Contrib) receiver/sqlquery: Report component status on database connection and query failures for health check v2 integration. (#43837)
  • (Contrib) receiver/sqlserver: Add SQL compilation, parameterization, plan guidance, and attention metrics. (#48591)
    Adds the following new metrics (all disabled by default):
    • sqlserver.attention.rate: rate of SQL attentions (client cancellation interrupts).
    • sqlserver.parameterization.rate: rate of auto-parameterization activity, classified by result
      (auto_attempted, safe, unsafe, failed, forced).
    • sqlserver.plan.execution.rate: rate of plan executions, classified by plan guide result
      (guided, misguided).
    • sqlserver.recompilation.ratio: derived ratio of SQL recompilations to compilations,
      expressed as a percentage.
  • (Contrib) receiver/sqlserver: Add Latch metrics for SQL Server receiver. (#48032)
    Added five new opt-in metrics:
    • sqlserver.latch.wait.rate — latch waits per second
    • sqlserver.latch.wait_time.avg — average latch wait time
    • sqlserver.latch.wait_time.total — total cumulative latch wait time
    • sqlserver.latch.superlatch.count — active superlatch count
    • sqlserver.latch.superlatch.transition.rate — superlatch promotions/demotions with transition.direction attribute
  • (Contrib) receiver/sqlserver: Add Memory Manager metrics (memory areas, page pools, cache objects) consolidating 16 db-agent samplers into 3 metrics. (#48032)
    Added three new opt-in metrics:
    • sqlserver.memory.area with memory.pool attribute (target, total, sql_cache, optimizer, connection, granted_workspace, max_workspace)
    • sqlserver.memory.page.count with page.pool attribute (cache, total, target, database, stolen, reserved, free)
    • sqlserver.memory.cache.object.count with cache.state attribute (in_use, total)
  • (Contrib) receiver/sqlserver: Add session attributes to db.server.query_sample event. (#48346)
    The db.server.query_sample log records now include:
    • sqlserver.client.app.name: Name of the client application that initiated the session.
    • sqlserver.session.start_time: ISO 8601 timestamp of when the session was established.
    • sqlserver.session.duration: Total elapsed time in seconds the session has been actively executing requests.
  • (Contrib) receiver/statsd: Add support for configuring socket buffer size (#47379)
  • (Contrib) receiver/windows_event_log: Add EVTX file support (#48047)

🧰 Bug fixes 🧰

  • (Core) pkg/exporterhelper: Fix nil-pointer panic in sending_queue::batch Unmarshal when sending_queue::sizer is set and sending_queue::batch::enabled is false. (#14687)
    When sending_queue::sizer was set and sending_queue::batch::enabled: false
    cleared the batch Optional to None, the sizer-inheritance branch in
    queuebatch.Config.Unmarshal dereferenced a nil Optional and crashed the
    collector at startup. The branch now also requires Batch.HasValue().
  • (Contrib) extension/text_encoding: Fix text encoding log unmarshalling for large messages when no unmarshaling separator is configured. (#48696)
  • (Contrib) processor/resource_detection: Remove outdated warning about GKE host.name not being available with Workload Identity (#48876)
  • (Contrib) processor/tail_sampling: span-ingest: Clean up storage and memory for implicit unsampled traces after decision wait (#48874)
  • (Contrib) receiver/awss3: Strip the .zst suffix from the object key after zstd decompression so files written by awss3exporter with compression: zstd (e.g. foo.binpb.zst) are correctly parsed instead of being dropped as "Unsupported file format". (#47802)
  • (Contrib) receiver/host_metrics: Fix double-counting of CPU guest/guest_nice time, Linux already includes guest time within the user/nice fields (#48024)
  • (Contrib) receiver/mysql: Aligned db.query.text extraction in MySQL sample query collection with top query collection for consistent query representation. (#48708)
    Along with change, the query plan hash will now be generated based on the digest text for MySQL versions < 8 and MariaDB.
  • (Contrib) receiver/mysql: Fix USE and EXPLAIN FORMAT=json in explainQuery to execute on the same database connection, ensuring the schema context set by USE is visible to the subsequent EXPLAIN. (#48170)
    Previously, USE and EXPLAIN were issued on the connection pool without pinning, so they could land on different connections. Both statements now run on the same *sql.Conn acquired via db.Conn(ctx).
  • (Contrib) receiver/prometheus_remote_write: Fix exemplars for counters with multiple label-set variants being attached to the wrong datapoint. (#48674)

Docker Image Manifests:

  • Linux (amd64, arm64, ppc64le) and Windows (2019 amd64, 2022 amd64):
    • quay.io/signalfx/splunk-otel-collector:0.154.0
    • digest: sha256:b11a6e592248a2281cf95a765d30660a9951f04b0935f91d9ae93db5839b3b52

Don't miss a new splunk-otel-collector release

NewReleases is sending notifications on new releases.