Management cluster telemetry: getting started
NVKE telemetry pipeline (NKTP) collects the management cluster’s
metrics, logs and traces and exports them over OTLP. It is installed by the deploy/nico deploy path, the same way as the rest of the
management plane. There is nothing to install by hand.
This guide covers what NKTP gives the management cluster, what the deploy path needs from you, and how to take a first look. The other guides in this directory cover configuration, verification and troubleshooting.
What you get
The nktp item in deploy/nico
installs the NKTP chart from the
same checkout, into namespace nktp:
- The OpenTelemetry Operator and its CRDs, plus the Prometheus monitoring
CRDs (
ServiceMonitor,PodMonitorand the rest). - Collectors, each an
OpenTelemetryCollectorthe Operator runs:- one on every node, for pod logs, the systemd journal, host auth and audit logs, the kubelet and cAdvisor, and every monitor scheduled to its node
- a gateway per signal (metrics, logs, traces), the OTLP entry points that export to the backend
- a large-target pool for kube-state-metrics and the control-plane monitors
- a Kubernetes Event reader
- a watchdog that receives every Collector’s own telemetry
- kube-state-metrics, node-exporter and metrics-server. metrics-server is
the site’s only provider of
metrics.k8s.io, which the Collector autoscalers read. - A development backend,
lgtm: Grafana, Prometheus, Loki and Tempo in one Pod, with the NKTP dashboards. It keeps data in memory and has no authentication, so it is for evaluation. See Connecting a real backend.
The deploy path also wires the rest of the management plane into it:
Everything exported carries k8s.cluster.name set to the site’s name.
Not scraped:
- cert-manager, NodeLocal DNSCache, OVN-Kubernetes and CAPNICo. NKTP ships no monitors for other components: each service’s owner ships its own. These four don’t yet; see monitoring your service.
- CAPI core and the kubeadm providers, which serve metrics only to a caller with a bearer token.
- The scheduler and controller manager, which listen on
127.0.0.1on NVKE clusters. - Postgres, which runs no metrics exporter.
The state of all their Pods still arrives through kube-state-metrics.
Before you deploy
The deploy path installs NKTP with the rest of the management plane, so its prerequisites are the path’s own (Before this runs), plus:
- cert-manager.
clusterctl initinstalls it. It issues the Operator’s webhook certificate and the mTLS certificates between each Collector and its Target Allocator. ClusterNamein the BootstrapConfig passed with--config. It becomesk8s.cluster.nameon every signal. The install stops at thenvke-base-configitem if it is missing:- Egress from the node running the install:
- to
open-telemetry.github.io,prometheus-community.github.ioandkubernetes-sigs.github.io, because the install builds the chart’s dependencies from itsChart.lockbefore installing - to
docker.io,ghcr.io,quay.ioandregistry.k8s.io, for the images
- to
- Room on the nodes. The site values size NKTP for a small management cluster. Its Pods request about 1.6 CPU and 3.9Gi of memory in total, plus about 125m and 320Mi for each node beyond the first: the node Collector and kube-state-metrics’ node Pod run on every node. The development backend sets no requests but used about 1.2Gi at idle.
Nothing else. The deploy path creates the nktp namespace with the
privileged Pod Security level the node Collector needs, and every setting a
management cluster needs is in
nktp/values.yaml.
Install order
nktp comes straight after capnico and before everything that creates a
monitor:
- Why this position: the chart installs the monitoring CRDs, which the
temporal,spireandcontrolleritems need for their monitors. - A side effect: installing it first means NKTP also records the rest of the management plane coming up.
- The cost: a failed
nktpinstall stops the path there.
First look
On the management cluster, with its kubeconfig:
To open Grafana, port-forward the backend. Bind it to localhost only: Grafana gives anonymous visitors admin rights.
If you are working through a jump host, forward that port over SSH rather than binding it on the site network. The NKTP Health dashboard shows whether the pipeline itself is healthy.
NVKE reference dashboards
NVKE also ships reference Grafana dashboards as JSON files. These are starting points for investigating a site, not a complete monitoring or alerting setup. Review their Requirements and scope panels, check that your backend collects the required metrics, and adapt the dashboards and alerts to your operating needs. An empty optional panel can mean its metric is not scraped.
To use these dashboards, open Grafana Dashboards → New → Import, upload its
JSON file (or paste the JSON), and select a Prometheus datasource when prompted.
The files are not installed automatically on the management cluster. You can
import them into the bundled lgtm Grafana while developing, but import them
into your real telemetry backend
for site operations: lgtm keeps data in memory and has no authentication.
See the dashboard README
for the full catalog and import details.
For the full checklist, see verification.
Next steps
- Configuration: what the site values change, connecting a real backend, and overriding values safely.
- Monitoring your service: how a service gets its own metrics scraped.
- Verification: checking every signal end to end.
- Troubleshooting: the failures seen on real management clusters, and their fixes.
- Observe NVKE and its clusters: health checks, controller logs and metrics, which NKTP complements rather than replaces.