Before you start. Install a Collector in the cluster — see
Send data from Kubernetes. For traces from
workloads without changing their code, see
Zero-code instrumentation on Kubernetes.
Where the rows come from
Every tab groups metrics by the OpenTelemetry resource attributes below. A metric that does not carry the attribute a tab groups by does not appear on that tab.
Pods are keyed by their uid, not their name. A Deployment that rolls reuses
pod names, and two pods with the same name in different namespaces are two
different pods — both appear as separate rows.
The Namespaces tab is the one that joins three signals: the pod and service
counts come from metrics, and the log, span and error counts come from logs and
spans carrying the same
k8s.namespace.name. A namespace appears when it has
metrics; one that has metrics but no traces shows zero spans rather than
disappearing.
Container CPU and memory
The CPU, Memory and Memory used columns average these metrics over the window:
These are the names the Collector’s
docker_stats receiver emits. A container
that reports other metrics still appears, with a dash in these columns rather
than a zero — a dash means “not measured”, not “idle”.
Every count describes the window
The numbers here are counts of what reported, over the selected time range:- Pods on a cluster is the number of distinct pods that sent a metric in the window, not the number running now. Narrow the range and it drops.
- A pod that stops reporting disappears from the list. It is not shown as unhealthy, because there is no source here that could say it is unhealthy.
- Last seen is the newest sample from that row. Use it to tell a quiet pod from one that has gone.
What this section cannot show
Some Kubernetes facts are not telemetry — they live only in the Kubernetes API, which aiAxonIQ does not read. The section has tabs for four of them, and each says the API does not serve it yet instead of showing an empty table:
For the same reason no tab shows a pod’s phase, its restart count, a node’s
capacity or a cluster’s version. If your Collector sends cluster metrics that
carry those numbers, you can chart them from the
Metrics section.
Troubleshooting
No clusters reporting
No clusters reporting
The Clusters tab needs
k8s.cluster.name on your metrics. If Nodes
or Pods has rows and Clusters does not, the cluster name is the
missing piece — add it as shown above. If every tab is empty, no metric with
Kubernetes attributes has arrived; check the Collector is running and its
metrics pipeline exports to aiAxonIQ.No containers reporting
No containers reporting
Container rows need metrics carrying
container.id, and on this tab also
k8s.pod.name. Containers on a plain Docker host with no Kubernetes
attributes appear under Infrastructure instead — see
Infrastructure and Kubernetes.A namespace shows zero logs or spans
A namespace shows zero logs or spans
The counts come from logs and spans that carry
k8s.namespace.name. Enable
the Kubernetes attributes processor on the logs and traces pipelines as well
as metrics, so all three signals are stamped.CPU and memory show a dash
CPU and memory show a dash
No sample of the metric that column reads arrived for that container in the
window. See Container CPU and memory for the
metric names.
The pod count is lower than I expected
The pod count is lower than I expected
The count is pods that reported in the selected window. Widen the range, and
check that every node runs the Collector — a node without one reports
nothing.
Next
Send data from Kubernetes
Install the Collector in your cluster.
Zero-code instrumentation on Kubernetes
Traces from workloads without code changes.