This Splunk OpenTelemetry Collector for Kubernetes release adopts the Splunk OpenTelemetry Collector v0.138.0.
💡 Enhancements 💡
agent: Update Istio autodetect rules. The detection logic has been expanded to identify Istio components more reliably. (#2132)
This change may impact billing, as the detection rules have been updated to be less restrictive.
Metrics will now be scraped from istiod, Istio gateways, and Istio sidecars (istio-proxycontainers.)
Metrics were previously only being scraped from istiod.agent: Filter incoming metrics from Prometheus receiver when Istio autodetection is enabled. (#2141)
Theprometheusreceiver is now being used whenautodetect.istio: trueinstead ofprometheus_simple.
The reason for this change is that theprometheusreceiver supports filtering metrics being scraped by
the receiver. Filtering has been introduced to only scrape metrics that are included in default content.clusterReceiver: Disabling attributes not needed for k8s cluster receiver metrics (#2157)
The following attributes have been disabled to reduce cardinality:- k8s.container.status.last_terminated_reason
- k8s.hpa.scaletargetref.apiversion
clusterReceiver: Enable k8sobjects for pods, in pull mode at 6h frequency (#2147)clusterReceiver: Added k8s.pod.qos_class (#2144)clusterReceiver: Enable metrics (k8s.container.status.reason, k8s.pod.status_reason, k8s.node.condition) for cluster receiver (#2151)
Enable the following metrics by default in K8s cluster receiver configuration:- k8s.container.status.reason: this metric gets containers in
CrashLoopBackOff,ImagePullBackOffstate, for example, using k8s.container.status.reason attribute. - k8s.node.condition: this metrics gets Nodes in
MemoryPressure, for example, with condition attribute - k8s.pod.status_reason: this metric helps detect Pods in status
Evicted, for example
- k8s.container.status.reason: this metric gets containers in
operator: Add support forinstrumentation.spec.defaultsfield in Helm values to configure default instrumentation behavior. (#2152)
Users can now configure thedefaults.useLabelsForResourceAttributesoption via Helm values, allowing
Kubernetes labels (e.g.,app.kubernetes.io/name,app.kubernetes.io/version) to be used as resource attributes
in auto-instrumented applications. Read more here.
Example usage:instrumentation: spec: defaults: useLabelsForResourceAttributes: true
🧰 Bug fixes 🧰
agent: Fix kubeletstats receiver failing on GKE Autopilot clusters running Kubernetes 1.32+ (#2159)- GKE Autopilot clusters running k8s 1.32+ disable the insecure kubelet read-only port (10255) by default.
- The receiver in GKE Autopilot now uses the secure kubelet endpoint (port 10250) with serviceAccount authentication.
- Add RBAC permissions to ClusterRole for restricted nodes/pods endpoint in GKE Autopilot