Troubleshooting the Kubernetes agent
No data, offline agents, RBAC gaps, network egress, kubelet stats and resource limits.
No cluster appears on the Kubernetes page
- Check the agent pods:
kubectl get pods -n verops. You should see the cluster-agent pod plus one node-agent pod per node, allRunning. - If pods are missing, re-check the Helm install (
helm status verops-agent -n verops). If they're crash-looping, read the logs:kubectl logs -n verops <pod>. - Authentication — repeated 401s in the log mean the API key is wrong or revoked. Keys start with
ta_live_and are shown once at creation (Settings → API Keys). Fix with:helm upgrade verops-agent verops/verops-k8s-agent -n verops --reuse-values --set apiKey=<new key> - Network egress — the agent only needs outbound HTTPS (443) to your
backendUrl. Connection-refused/timeout logs point to egress NetworkPolicies, firewalls or a proxy blockingapp.verops.io. Allow that host (or setendpointto your permitted ingest URL).
Data appears about a minute after the first successful ship; the page refreshes every 20 seconds.
Cluster shows as offline or goes stale
The agent heartbeats every 30 seconds; the platform flips it offline after roughly three missed beats (~90 seconds). If a previously healthy cluster goes offline: check the cluster-agent pod for restarts or eviction, then egress connectivity. Data resumes automatically once the agent reconnects.
Tabs are partially empty (RBAC)
The chart installs a read-only ClusterRole (get/list/watch on nodes, pods, namespaces, services, endpoints, deployments and other workloads, jobs, HPAs, ingresses, network policies, persistent volumes/claims, resource quotas, config maps and events). If you set rbac.create=false, your own binding must cover the same list — Forbidden errors in the agent log and missing tabs (e.g. Storage empty, Events empty) are the symptom. Fix by re-enabling rbac.create=true or extending your ClusterRole.
Nodes and pods listed, but CPU/memory show 0
Inventory comes from the cluster agent; usage comes from the node DaemonSet reading each kubelet. Check that the node-agent pods are running on every node (nodeAgent.enabled=true, and the DaemonSet tolerates your taints — the default tolerations land on all nodes) and that RBAC includes nodes/stats and nodes/proxy (the chart's default role does).
Agent pods OOMKilled or throttled on large clusters
Defaults are modest (50m/64Mi requests, 500m/256Mi limits). On clusters with thousands of objects, raise them for the cluster agent:
helm upgrade verops-agent verops/verops-k8s-agent -n verops --reuse-values \
--set clusterAgent.resources.limits.memory=512Mi
OTel-sourced cluster: tabs empty or missing data
- Events tab empty — the
k8sobjectsreceiver isn't configured in your collector. - Services/deployments missing — the collector isn't scraping
kube-state-metrics, or kube-state-metrics isn't installed in the cluster at all. Install it from theprometheus-communityHelm chart (for example into ametricsnamespace) and point the collector'sprometheusreceiver at it; thek8s_clusterandk8sobjectsreceivers keep working without it, which is why the cluster still appears. - No node/pod usage — the
kubeletstatsreceiver isn't running, or your collector version emits older metric names than the current OTel semantic conventions.
Still stuck? The Data Explorer is a quick truth test: if SELECT count() FROM metrics WHERE metric_name LIKE 'k8s_%' over the last 15 minutes returns 0, nothing is arriving (installation problem); if it returns rows but the page is empty, contact support with your cluster name.