Prometheus¶
Connect your existing Prometheus so KubeManta can surface long-retention metrics, let operators write ad-hoc PromQL queries, and give the AI copilot access to your application metrics during investigations.
What it gives you¶
- Long-retention metrics — trend charts covering 1h through 30d / 90d windows, far past KubeManta's built-in 7-day sampler
- Ad-hoc PromQL — run any range query directly from the Metrics → Prometheus sub-tab (first 8 series are charted)
- Application metrics for the AI — when the AI copilot investigates an issue, it can query your latency histograms, custom counters, and business KPIs
- CPU, memory, and network — all sourced from your Prometheus if you prefer not to use KubeManta's built-in sampler
Tier: Free
Prerequisites¶
- Prometheus running — already deployed and scraping your cluster. We'll point KubeManta at it.
- Network path — KubeManta must reach your Prometheus URL (typically
http://prometheus.monitoring:9090for in-cluster, or a public URL for managed Prometheus). - Correct scrape config — Prometheus must scrape the cluster's kubelet cadvisor for pod-scoped metrics to work. If Prometheus only scrapes standalone cadvisor or a Docker-run cadvisor, pod-scoped charts will be blank (we'll detect this and tell you). See Observability for details.
Generate the scrape config
If your Prometheus isn't yet scraping the cluster's kubelet/cadvisor, KubeManta can generate the exact RBAC + prometheus.yml job snippet for you (Admin → Observability → Generate scrape config).
Configure in KubeManta¶
- In the sidebar, click Admin (gear icon).
- Open the Observability tab.
- Under Configure sources, select Prometheus from the dropdown.
- Paste your Prometheus URL (e.g.,
http://prometheus.monitoring:9090). - Click Test to verify KubeManta can reach it.
- Click Save.
The URL is stored encrypted at rest. You can edit it anytime without restarting the agent.
Verify¶
- Click Metrics in the sidebar (OBSERVE group).
- Open the Prometheus sub-tab.
- You should see three empty-state cards: CPU, Memory, and Network. These populate with data as you select a window (1h / 6h / 24h / 30d / 90d).
- Try the Ad-hoc PromQL box — paste a simple query like
upand click Query. If your Prometheus is reachable and has series, you'll see results.
Expected states¶
| State | Meaning | Next step |
|---|---|---|
| Setup not configured | You haven't entered a Prometheus URL yet | Follow "Configure in KubeManta" above |
| Configured, can't reach | The URL is saved, but KubeManta can't connect (firewall, DNS, service down) | Verify the URL is correct and KubeManta has network reach |
| Configured, reachable, but every chart is blank | Prometheus is reachable but has no pod-scoped series (common gotcha: it's scraping standalone cadvisor) | See "Prometheus reachable, but every panel is blank" tip below |
| Working — charts populate | Success! | Proceed to test the AI copilot's metric queries (if you have Pro + AI enabled) |
Prometheus reachable, but every chart is blank
This almost always means your Prometheus is scraping a standalone or Docker-run cadvisor instead of the cluster's kubelet. Those exports have id/interface labels but no namespace/pod labels — so KubeManta's pod-scoped queries return nothing.
Fix: Reconfigure Prometheus to scrape the cluster's kubelet/cadvisor (kube-prometheus-stack does this out of the box). Or generate the exact scrape config via Admin → Observability → Generate scrape config for your existing Prometheus.
Troubleshooting¶
"Configured, can't reach" — but Prometheus is definitely up¶
Check the URL format:
- ✅ Correct: http://prometheus.monitoring:9090 (in-cluster service DNS)
- ✅ Correct: https://prometheus.example.com (managed Prometheus, public)
- ❌ Wrong: prometheus.monitoring:9090 (missing protocol)
- ❌ Wrong: http://prometheus.monitoring:9090/ (trailing slash sometimes causes issues)
Check the network path:
- If KubeManta is in kubemanta-system and Prometheus is in monitoring, the agent pod must have egress to that namespace (no restrictive NetworkPolicy).
- For managed Prometheus (e.g., in a different VPC or cloud provider), ensure the firewall allows outbound HTTPS to that host.
Check the logs:
"Ad-hoc PromQL" returns "no data"¶
Did you select a time window? The Prometheus sub-tab has buttons for 1h / 6h / 24h / 30d / 90d. Make sure you picked one before running a query.
Does the series exist? Try a simple test query like node_uname_info (exported by node-exporter if installed). If that returns nothing, your Prometheus may not have the metrics you expect.
After a Prometheus failover, metrics are stale¶
KubeManta caches Prometheus responses briefly. If you swapped the backend Prometheus instance (e.g., HA failover), update the URL (even if it's the same hostname) and click Save to bust the cache.
Related¶
- Metrics feature — how to read live and historical metrics
- Observability connector — network security + detailed setup
- Install → Network access — ensure
api.keygen.shand your Prometheus host are in your egress allowlist