Skip to content

v0.87.0

Compare
Choose a tag to compare
@srv-gh-o11y-gdi srv-gh-o11y-gdi released this 31 Oct 20:23
· 1411 commits to main since this release
v0.87.0
844545d

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

🛑 Breaking changes 🛑

  • (Splunk) Auto Instrumentation for Linux (#3791):
    • The /usr/lib/splunk-instrumentation/instrumentation.conf config file is no longer
      supported, and is replaced by /etc/splunk/zeroconfig/java.conf. If the splunk-otel-auto-instrumentation deb/rpm
      package is manually upgraded, the options within /usr/lib/splunk-instrumentation/instrumentation.conf will need to
      be manually migrated to their corresponding environment variables within /etc/splunk/zeroconfig/java.conf.
    • Manual installation of the splunk-otel-auto-instrumentation deb/rpm package no longer automatically adds
      /usr/lib/splunk-instrumentation/libsplunk.so to /etc/ld.so.preload.
    • Manual upgrade of the splunk-otel-auto-instrumentation deb/rpm package will automatically remove
      /usr/lib/splunk-instrumentation/libsplunk.so from /etc/ld.so.preload.
    • The splunk.linux-autoinstr.executions metric is no longer generated by libsplunk.so.
    • See Splunk OpenTelemetry Zero Configuration Auto Instrumentation for Linux
      for manual installation/configuration details.
    • For users of the Ansible, Chef, Puppet, or Salt modules for Auto Instrumentation, it is recommended to update the following option in your configuration for version 0.86.0 or older until these modules are updated to manage these changes:
      • Ansible: splunk_otel_auto_instrumentation_version
      • Chef: auto_instrumentation_version
      • Puppet: auto_instrumentation_version
      • Salt: auto_instrumentation_version
  • (Contrib) kubeletstatsreceiver: Fixes a bug where the "insecure_skip_verify" config was not being honored when "auth_type" is "serviceAccount" in kubelet client. (#26319)
    • Before the fix, the kubelet client was not verifying kubelet's certificate. The default value of the config is false,
      so with the fix the client will start verifying tls cert unless the config is explicitly set to true.
  • (Contrib) tailsamplingprocessor: Improve counting for the count_traces_sampled metric (#25882)
  • (Contrib) extension/filestorage: Replace path-unsafe characters in component names (#3148)
  • (Core) service/telemetry exporter/exporterhelper: Enable sampling logging by default and apply it to all components. (#8134)
    • The sampled logger configuration can be disabled easily by setting the service::telemetry::logs::sampling::enabled to false.

🚩 Deprecations 🚩

  • (Splunk) The following Auto Instrumentation options for the Linux installer script are deprecated and will only apply if the --instrumentation-version <version> option is specified for version 0.86.0 or older:
    • --[no-]generate-service-name: libsplunk.so no longer generates service names for instrumented applications. The default behavior is for the activated Java and/or Node.js Auto Instrumentation agents to automatically generate service names. Use the --service-name <name> option to override the auto-generated service names for all instrumented applications.
    • --[enable|disable]-telemetry: libsplunk.so no longer generates the splunk.linux-autoinstr.executions telemetry metric.

🚀 New components 🚀

  • (Splunk) Add the loadbalancing exporter (#3825)
  • (Splunk) Add the udplog receiver (#3826)

💡 Enhancements 💡

  • (Splunk) Update golang to 1.20.10 (#3770)
  • (Splunk) Add debian 12 support to installer (#3766)
  • (Splunk) Add new Auto Instrumentation options for the Linux installer script (#3791):
    • --with[out]-systemd-instrumentation: Activate auto instrumentation for only systemd services without preloading
      the libsplunk.so shared object library (default: --without-systemd-instrumentation)
    • Initial support for Splunk OpenTelemetry Auto Instrumentation for Node.js:
      • Activated by default if the --with-instrumentation or --with-systemd-instrumentation option is specified.
      • Use the --without-instrumentation-sdk node option to explicitly skip Node.js.
      • npm is required to install the Node.js Auto Instrumentation package. If npm is not installed, Node.js will
        be skipped automatically.
      • By default, the Node.js Auto Instrumentation package is installed with the npm install --global command. Use the
        --npm-command "<command>" option to specify a custom command.
      • Environment variables to activate and configure Node.js auto instrumentation are added to /etc/splunk/zeroconfig/node.conf (for --with-instrumentation) or
        /usr/lib/systemd/system.conf.d/00-splunk-otel-auto-instrumentation.conf (for --with-systemd-instrumentation) based on defaults and specified installation options.
    • Auto Instrumentation for Java is also activated by default if the --with-instrumentation or
      --with-systemd-instrumentation option is specified. Use the --without-instrumentation-sdk java option to skip Java.
    • --otlp-endpoint host:port: Set the OTLP gRPC endpoint for captured traces (default: http://LISTEN_INTERFACE:4317
      where LISTEN_INTERFACE is the value from the --listen-interface option if specified, or 127.0.0.1 otherwise)
    • See Linux Installer Script for more details.
  • (Splunk) Update splunk-otel-javaagent to v1.29.0 (#3788)
  • (Splunk) Redis discovery (#3731)
  • (Splunk) Update Bundled OpenJDK to 11.0.21+9 (#3819)
  • (Splunk) Oracledb discovery tweaks (remove static endpoint) (#3836)
  • (Contrib) probabilisticsamplerprocessor: Allow non-bytes values to be used as the source for the sampling decision (#18222)
  • (Contrib) kafkareceiver: Allow users to attach kafka header metadata with the log/metric/trace record in the pipeline. Introduce a new config param, 'header_extraction' and some examples. (#24367)
  • (Contrib) kafkaexporter: Adding Zipkin encoding option for traces to kafkaexporter (#21102)
  • (Contrib) kubeletstatsreceiver: Support specifying context for kubeConfig auth_type (#26665)
  • (Contrib) kubeletstatsreceiver: Adds new k8s.pod.cpu_limit_utilization, k8s.pod.cpu_request_utilization, k8s.container.cpu_limit_utilization, and k8s.container.cpu_request_utilization metrics that represent the ratio of cpu used vs set limits and requests. (#27276)
  • (Contrib) kubeletstatsreceiver: Adds new k8s.pod.memory_limit_utilization, k8s.pod.memory_request_utilization, k8s.container.memory_limit_utilization, and k8s.container.memory_request_utilization metrics that represent the ratio of memory used vs set limits and requests. (#25894)

🧰 Bug fixes 🧰

  • (Contrib) spanmetricsprocessor: Prune histograms when dimension cache is pruned. (#27080)
    • Dimension cache was always pruned but histograms were not being pruned. This caused metric series created
      by processor/spanmetrics to grow unbounded.
  • (Contrib) splunkhecreceiver: Fix receiver behavior when used for metrics and logs at the same time; metrics are no longer dropped. (#27473)
  • (Contrib) metricstransformprocessor: Fixes a nil pointer dereference when copying an exponential histogram (#27409)
  • (contrib) k8sclusterreceiver: change k8s.container.ready, k8s.pod.phase, k8s.pod.status_reason, k8s.namespace.phase units to empty (#10553)
  • (Contrib) k8sclusterreceiver: Change k8s.node.condition* metric units to empty (#10553)
  • (Contrib) syslogreceiver: Fix issue where long tokens would be truncated prematurely (#27294)
  • (Core) telemetry: remove workaround to ignore errors when an instrument includes a / (#8346)

Docker Images:

  • quay.io/signalfx/splunk-otel-collector:0.87.0-amd64 (digest: sha256:51695b9547b0fe406cfabc7d39b13eb036d09590171aee43b2a98c08a72513bb)
  • quay.io/signalfx/splunk-otel-collector:0.87.0-arm64 (digest: sha256:5c08b338e69b9b6543d4e3a65ec51f48daab8bedf8ddc4b60de35b8153e017bd)
  • quay.io/signalfx/splunk-otel-collector:0.87.0-ppc64le (digest: sha256:16f8ed69d676b6572402e34c8cad96ba3665daac9707ff91a056491e49c37f1f)
  • quay.io/signalfx/splunk-otel-collector-windows:0.87.0 (digest: sha256:6481bc2fcc7a4acca9afa7d2491f7743f3aad00cd44ac14fe234b7d3f17b0010)
  • quay.io/signalfx/splunk-otel-collector-windows:0.87.0-2022 (digest: sha256:6ec469469c6bc40132ebac5f9141e8d310473418b232214a2ba1191438c7d0d5)