Skip to content
This repository was archived by the owner on Sep 2, 2025. It is now read-only.

Commit 14460e0

Browse files
Merge pull request #2354 from splunk/urbiz-OD5595-k8s-cpm
[5595]: Control Plane Metrics histograms
2 parents f5dbba8 + 18f69f3 commit 14460e0

File tree

2 files changed

+34
-13
lines changed

2 files changed

+34
-13
lines changed

gdi/opentelemetry/collector-kubernetes/kubernetes-config-advanced.rst

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,16 @@ This custom configuration is merged into the default agent configuration.
5757

5858
.. _otel-kubernetes-config-advanced-control-plane:
5959

60-
Override a control plane configuration
60+
Configure control plane metrics
6161
==============================================================
6262

63-
If any of the control plane metric receivers are activated under the ``agent.controlPlaneMetrics`` configuration section, then the Helm chart will configure the Collector to use the activated receivers to collect metrics from the control plane.
63+
Control plane metrics are available for the following components: ``coredns``, ``etcd``, ``kube-controller-manager``, ``kubernetes-apiserver``, ``kubernetes-proxy``, and ``kubernetes-scheduler``. You can use the :ref:`Collector Helm agent <helm-chart-components-agent>` to obtain control plane metrics from a specific component by setting ``agent.controlPlaneMetrics.{otel_component}`` to ``true``.
6464

65-
To collect control plane metrics, the Helm chart uses the Collector on each node to use the receiver creator to represent control plane receivers at runtime. The receiver creator has a set of discovery rules that know which control plane receivers to create. The default discovery rules can vary depending on the Kubernetes distribution and version. See :ref:`receiver-creator-receiver` for more information.
65+
The Helm chart uses the Collector on each node to use the receiver creator to represent control plane receivers at runtime. The receiver creator has a set of discovery rules that know which control plane receivers to create. The default discovery rules can vary depending on the Kubernetes distribution and version. See :ref:`receiver-creator-receiver` for more information.
6666

6767
If your control plane is using non-standard specifications, then you can provide a custom configuration to allow the Collector to successfully connect to it.
6868

69-
Availability and configuration instructions
69+
Supported versions
7070
-----------------------------------------------------------------------------
7171

7272
The Collector relies on pod-level network access to collect metrics from the control plane pods. Since most cloud Kubernetes as a service distributions don't expose the control plane pods to the end user, collecting metrics from these distributions is not supported.
@@ -90,7 +90,10 @@ The following table shows which Kubernetes distributions support control plane m
9090

9191
See the :new-page:`agent template <https://github.com/signalfx/splunk-otel-collector-chart/blob/main/helm-charts/splunk-otel-collector/templates/config/_otel-agent.tpl>` for the default configurations for the control plane receivers.
9292

93-
See the following documentation for information on the configuration options and supported metrics for each control plane receiver:
93+
Availability
94+
-----------------------------------------------------------------------------
95+
96+
The following components provide control plane metrics:
9497

9598
* :ref:`CoreDNS <coredns>`.
9699
* :ref:`etcd`. To retrieve etcd metrics, see :new-page:`Setting up etcd metrics <https://github.com/signalfx/splunk-otel-collector-chart/blob/main/docs/advanced-configuration.md#setting-up-etcd-metrics>`.
@@ -99,14 +102,6 @@ See the following documentation for information on the configuration options and
99102
* :ref:`Kubernetes proxy <kubernetes-proxy>`.
100103
* :ref:`Kubernetes scheduler <kubernetes-scheduler>`.
101104

102-
Known issue
103-
-----------------------------------------------------------------------------
104-
105-
There is a known limitation for the Kubernetes proxy control plane receiver. When using a Kubernetes cluster created using kops, a network connectivity issue prevents proxy metrics from being collected. The limitation can be addressed by updating the kubeProxy metric bind address in the kops cluster specification:
106-
107-
#. Set ``kubeProxy.metricsBindAddress: 0.0.0.0`` in the kops cluster specification.
108-
#. Run ``kops update cluster {cluster_name}`` and ``kops rolling-update cluster {cluster_name}`` to deploy the change.
109-
110105
Use custom configurations for non-standard control plane components
111106
-----------------------------------------------------------------------------
112107

@@ -135,6 +130,30 @@ The following example shows how to connect to a nonstandard API server that uses
135130
useHTTPS: true
136131
useServiceAccount: false
137132
133+
.. _kubernetes-control-plane-prometheus:
134+
135+
Activate Kubernetes control plane metrics with the Prometheus receiver
136+
-------------------------------------------------------------------------
137+
138+
To activate control plane metrics with the OpenTelemetry Prometheus receiver instead, use the feature flag ``useControlPlaneMetricsHistogramData``:
139+
140+
.. code-block:: yaml
141+
142+
featureGates:
143+
useControlPlaneMetricsHistogramData: true
144+
145+
.. Note:: Out-of-the-box dashboards and navigators for control plane metrics with the Prometheus receiver aren't supported yet, but are planned for a future release.
146+
147+
To learn more see :ref:`prometheus-receiver`.
148+
149+
Known issues
150+
-----------------------------------------------------------------------------
151+
152+
There is a known limitation for the Kubernetes proxy control plane receiver. When using a Kubernetes cluster created using kops, a network connectivity issue prevents proxy metrics from being collected. The limitation can be addressed by updating the kubeProxy metric bind address in the kops cluster specification:
153+
154+
#. Set ``kubeProxy.metricsBindAddress: 0.0.0.0`` in the kops cluster specification.
155+
#. Run ``kops update cluster {cluster_name}`` and ``kops rolling-update cluster {cluster_name}`` to deploy the change.
156+
138157
.. _kubernetes-config-advanced-non-root:
139158

140159
Run the container in non-root user mode

gdi/opentelemetry/collector-kubernetes/kubernetes-helm-architecture.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ The Helm chart for the Collector has three components: agent, cluster receiver,
1313

1414
.. note:: For use cases about the different components, see the GitHub documentation :new-page:`Splunk OpenTelemetry Collector Helm Chart Components: Use Cases <https://github.com/jvoravong/splunk-otel-collector-chart/blob/Feature-components-doc/docs/components.md#use-cases>`.
1515

16+
.. _helm-chart-components-agent:
17+
1618
Agent component
1719
==============================================
1820

0 commit comments

Comments
 (0)