Skip to content
Docs · Documentation

Using Kubyl

Overview and metrics

Cluster and namespace dashboards, events and CPU/memory metrics.

Cluster overview

Open Overview in the sidebar. It shows KPI tiles for Pods, Workloads, Nodes, CPU and Memory with sparklines, charts by namespace (CPU, memory working set, network and CPU throttling), disk IOPS and dropped packets by node, a Nodes table with Cordon, Uncordon and Drain…, and an Alerts card.

The time range is 15m, 1h, 6h, 24h or 7d and is remembered. overview.top_n (1–4, default 4) sets how many top entries charts show.

Namespace overview

From a favorite's context menu choose Open Namespace Overview for workload health (Healthy, Progressing, Unavailable, Scaled down), top pods by CPU with bars against their limits (a pod counts as unlimited when any container lacks a limit), network and CPU throttling by pod, and recent warnings. Alerts and Security cards appear when the cluster has those sources. Charts keep one colour per namespace across the whole cluster.

Metrics sources

Kubyl uses Prometheus when it finds one and falls back to metrics-server, which has current values but no history. The status-bar chip shows which one is active: “Prometheus · …”, “metrics-server”, “No metrics” or “Looking for metrics…”. Its menu has Look for Prometheus again.

Prometheus discovery

Kubyl discovers kube-prometheus-stack, prometheus-operated, OpenShift's thanos-querier and VictoriaMetrics, and reaches them through the API server's service proxy, so no extra network access is needed. On OpenShift it handles the auth proxy through Routes, using your token or a service account token.

For an external Prometheus, set a url in the per-cluster metrics.prometheus entry for that cluster (alongside namespace, service, port, scheme, path, service_account and TLS options). Requests go directly from your machine, with mTLS and a header stored in the keychain via Metrics: Set Prometheus Authorization Header…. You can override PromQL with metrics.queries, where $sel is replaced by label matchers.

Prometheus servers behind basic auth are listed as locked and ask for a username and password, which Kubyl keeps in the keychain (see Alerts for how). Discovery runs again after three failed reads and every five minutes while a cluster has no Prometheus. The libraries of PromQL queries check which metrics exist before charting them. VictoriaMetrics is found by name and probed but has been tested less than the others. metrics.source is auto (default), prometheus, metrics_server or off. Metrics appear in the CPU and MEMORY columns of Pods and Nodes, in details sparklines, the overview and the status bar.

Metrics in details

The details panel has a Metrics section with compact hover charts, the latest values in the header and one shared range from 15 minutes to 7 days. It waits 400 ms before fetching, so arrowing through a list does not query every row.

KindCharts
PodsNetwork bandwidth, packets, dropped packets and errors, disk IOPS and throughput, CPU throttling, pressure (PSI) for CPU, memory and I/O, OOM kills and restarts. CPU and memory stay in the Usage section.
Namespaces and workloads (Deployment, StatefulSet, DaemonSet, ReplicaSet, Job)CPU and memory plus the pod charts above. Pressure shows the highest pod.
Nodes (node-exporter)CPU, memory, network, packets, drops, errors, TCP retransmits, conntrack use, disk IOPS, throughput and busy time, pressure and the fullest filesystem.
PVCsVolume used against capacity and inodes, from the kubelet's volume stats.

Events

The Events panel in the right dock and the Events view show Last seen, Type, Reason, Object, Message, Count and Namespace. Kubyl reads events.k8s.io/v1 with a fallback to core v1 and derives OOMKilled warnings from pod status (overview.derived_events).

KeysAction
/Search
PPause
GGroup repeated events
EnterOpen the object

The Warning and Normal chips filter by type, and repeats of the same object, reason and type fold into *×N* (toggle with G). Opening the Overview activates the Events tab of the right dock. Toast notifications for Warning events in favorited namespaces are off by default. Turn them on with overview.notify_warnings, and overview.notify_interval (60 s) sets the minimum time between two for the same namespace. These are Kubyl toasts, not system notifications.

Prometheus web UI

When a cluster has Prometheus, Thanos Query or VictoriaMetrics, a Prometheus row appears in the sidebar (prometheus.sidebar). It has Overview (build info, runtime and TSDB status), Query (PromQL with completion, as a table or graph), Targets, Rules and Service Discovery tabs, and a server selector when there are several servers in one cluster. Prometheus: Open Query Tool goes straight to Query and Prometheus: Look for Servers Again re-runs discovery. Expressions and results are never saved to disk.

  • The tab reads the API itself and only for the tab on screen. It refreshes every prometheus.refresh_interval seconds (15).
  • The query box is a single line. Enter runs the query, and Ctrl Enter runs it from anywhere in the view.
  • Thanos Query has no TSDB status or runtime info, so the Overview shows each part's error on its own.
  • Keyboard navigation of the lists and a persisted query history are not available yet.

Prometheus' own alerts and rules also feed the Alerts view.

Something missing or wrong? Open an issue on GitHub.