Management cluster telemetry: verification
A Collector can be Ready and still export nothing, so this checklist checks
the signals themselves, not just the Pods. Run it after the management plane is
installed through the deploy/nico deploy path, or after any change to its NVKE telemetry pipeline (NKTP)
values. It assumes the development backend, lgtm. Against your own backend,
run the same queries there.
On an existing site, where the controller runs as cloud-workflow-engine,
replace nke-controller with cloud-workflow-engine throughout this page.
All commands run against the management cluster:
1. The pipeline is up
The 21 certificates are the Operator’s webhook certificate, a CA, server and
client certificate for each of the three Target Allocators, and the eleven
internal TLS certificates that the chart’s certManager.internalTLS default
adds: one CA, four server and six client certificates.
Configure cert-manager lists them.
The Operator: it must be running with no restarts, and its finalizer grant must be owned by Helm:
The monitors:
The resource metrics API, which the Collector autoscalers read:
2. The signals arrive
Port-forward the backend, bound to localhost, and define two shell helpers the rest of this page uses:
promql '<query>'runs a PromQL query against the backend’s Prometheus.logql '<query>'runs a LogQL query against its Loki.
Each prints one line per result: the series’ identifying label (its job,
service_name or k8s_cluster_name), then its value. Run them in the same
shell as the port-forward.
Scrapes run every 30 seconds and exports are batched, so give a fresh install a few minutes before these queries.
Metrics
A PodMonitor’s job is <namespace>/<monitor>; a ServiceMonitor’s is the
Service’s name. otelcol-contrib also appears: it is the development
backend’s own Collector.
A handful of series without k8s_cluster_name is expected. The development
backend scrapes itself without going through NKTP.
Logs
journaldis the node’s systemd journal.authis/var/log/auth.logor/var/log/secure.kube-apiserveris the API server’s audit log.
The log classes can be checked the same way, through the
nvidia_telemetry_class label: system.auth, system.audit,
k8s.control_plane and k8s.api.audit.
Log classification
lists what each covers. /var/log/audit/audit.log exists only where auditd
runs, so system.audit may be empty.
Traces
The controller sends a span per API request:
3. The rest of the site is unaffected
NKTP’s install touches other components’ configuration, so check they still work:
- The first: the controller’s metrics NetworkPolicy must not have cut off its API.
- The second: SPIRE’s OIDC discovery must still answer at the site IP.
- The third: CAPNICo is still configured.
4. A repeat install changes nothing
The deploy path is meant to be re-run. Record Pod start times, re-run it with the same inputs, and compare:
Helm revisions go up on every run; that is expected.