Available metrics
Pod metrics
Container metrics
CronJob metrics
DaemonSet metrics
Deployment metrics
Job metrics
Node metrics
Storage metrics
ReplicaSet metrics
StatefulSet metrics
Enter CPU thresholds in millicores (1 core = 1000 millicores). Enter memory and network thresholds in MB or GB as shown. The alert engine converts units automatically.
How queries are executed
Kubernetes alert queries evaluate metrics per resource name, not at the cluster level. Each distinct pod, container, node, or workload is evaluated independently, and each violating resource creates its own incident.Pod and container queries
- A status filter subquery runs first to exclude completed pods (
statusPhase != 'succeeded') or empty container names. Only active resources are evaluated. - The main query computes the metric value (e.g.,
avg(cpuUsageNanocores)) per 1-minute bucket, grouped by resource name. - The outer query counts how many buckets violated the threshold.
- Filters like
cluster,namespace,node, anddeploymentcan narrow the scope via the kubeFilters field.
statusRestarts (max - min) within the time window from the kubernetes.state_container table, rather than using an absolute count. This captures restarts that occurred during the evaluation period.
Workload queries (DaemonSet, Deployment, ReplicaSet, StatefulSet, CronJob, Job)
Workload queries evaluate metrics per workload name. For example, a deployment replicas alert computesavg(replicasAvailable) per 1-minute bucket for each deployment.
This is especially useful for detecting replica mismatches: set an alert when Replicas Available drops below a threshold to detect under-provisioned deployments.
Node queries
Node queries evaluate metrics per node name from thekubernetes.node table. Memory usage uses the memoryWorkingsetBytes column (working set memory, not total allocated memory), which reflects actual memory pressure.
Storage queries
PersistentVolume and PersistentVolumeClaim queries evaluate per volume name from their respective tables.Common query pattern
All Kubernetes queries follow this structure:all = every bucket breached, any = at least one bucket breached).
Targets
Kubernetes alert rules target resources by name. Each violating resource creates its own incident.Filters
Use the kubeFilters field to narrow the scope of evaluation:cluster: restrict to a specific clusternamespace: restrict to a specific namespacenode/nodeName: restrict to a specific nodedeployment,daemonset,job,cronjob,replicaset: restrict to a specific workload
How alert evaluation works
Operators
Evaluation windows
Available durations: 5, 10, 15, 30, or 60 minutes.Time functions
Severity
Configure Warning and Critical thresholds independently.Example configurations
Alert: Detect deployment replica mismatch when available replicas drop below 3.Alert: Pod memory usage exceeds 1024 MB.
Alert: Node CPU exceeds 4000 millicores (4 cores).