titan-iac/knowledge/catalog/metrics.json
jenkins 0da9e4c82d refactor: restructure services layout, retire oceanus, add aether scaffolding
- Move flat service manifests into structured subdirs (apps/, bootstrap-jobs/,
  repair-jobs/, migration-jobs/, validation-jobs/, node-ops/, networking/)
- Retire oneoffs/ directories across services
- Remove oceanus cluster and its host roles; add aether cluster + terraform scaffolding
- Reorganize scripts/ into ops/, render/, sync/, manual-tests/
- Add Makefile with render/validate/test/flux targets and repo-structure tests
- Update flux-system application CRs to the new paths
- Add hermes-automated-triage-24h-plan knowledge doc (+ comms mirror)
- Refresh knowledge catalogs, dashboards, vmalert rules, quality contract

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 16:21:36 -03:00

3013 lines
147 KiB
JSON

[
{
"dashboard": "Atlas GitOps",
"panel_title": "Flux Source",
"panel_id": 1,
"panel_type": "stat",
"description": "Branch and revision currently reported by Flux's GitRepository source.",
"tags": [
"atlas",
"gitops",
"flux"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max by (branch, revision) (ananke_gitops_flux_source_info{job=\"ananke-power\",namespace=\"flux-system\",name=\"flux-system\"}) or on() vector(0)"
]
},
{
"dashboard": "Atlas GitOps",
"panel_title": "Kustomizations Ready",
"panel_id": 2,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"gitops",
"flux"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 * sum(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})), 1)"
]
},
{
"dashboard": "Atlas GitOps",
"panel_title": "Kustomizations Suspended",
"panel_id": 3,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"gitops",
"flux"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(max by (namespace, name) (ananke_gitops_kustomization_suspended{job=\"ananke-power\"})) or on() vector(0)"
]
},
{
"dashboard": "Atlas GitOps",
"panel_title": "HelmReleases Ready",
"panel_id": 4,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"gitops",
"flux"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 * sum(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})), 1)"
]
},
{
"dashboard": "Atlas GitOps",
"panel_title": "HelmReleases Suspended",
"panel_id": 5,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"gitops",
"flux"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(max by (namespace, name) (ananke_gitops_helmrelease_suspended{job=\"ananke-power\"})) or on() vector(0)"
]
},
{
"dashboard": "Atlas GitOps",
"panel_title": "GitOps Exporter",
"panel_id": 6,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"gitops",
"flux"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"min(ananke_gitops_scrape_success{job=\"ananke-power\"}) or on() vector(0)",
"(time() - max(ananke_gitops_last_scrape_timestamp_seconds{job=\"ananke-power\"})) or on() vector(0)"
]
},
{
"dashboard": "Atlas GitOps",
"panel_title": "Readiness History",
"panel_id": 7,
"panel_type": "state-timeline",
"description": "Ready percentage over time for Flux Kustomizations and HelmReleases.",
"tags": [
"atlas",
"gitops",
"flux"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(100 * sum(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})), 1), \"kind\", \"Kustomizations\", \"__name__\", \".*\") or label_replace(100 * sum(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})), 1), \"kind\", \"HelmReleases\", \"__name__\", \".*\")"
]
},
{
"dashboard": "Atlas GitOps",
"panel_title": "Flux Sources",
"panel_id": 8,
"panel_type": "table",
"description": "A Value of 1 means Ready; 0 means not Ready.",
"tags": [
"atlas",
"gitops",
"flux"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max by (namespace, name, url, branch, revision, ready, reason) (ananke_gitops_flux_source_info{job=\"ananke-power\"}) * on(namespace, name) group_left() max by (namespace, name) (ananke_gitops_flux_source_ready{job=\"ananke-power\"})"
]
},
{
"dashboard": "Atlas GitOps",
"panel_title": "Kustomizations",
"panel_id": 9,
"panel_type": "table",
"description": "A Value of 1 means Ready; 0 means not Ready. The ready/reason labels come from Flux status.conditions.",
"tags": [
"atlas",
"gitops",
"flux"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max by (namespace, name, path, source_namespace, source_name, revision, ready, reason) (ananke_gitops_kustomization_info{job=\"ananke-power\"}) * on(namespace, name) group_left() max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})"
]
},
{
"dashboard": "Atlas GitOps",
"panel_title": "HelmReleases",
"panel_id": 10,
"panel_type": "table",
"description": "A Value of 1 means Ready; 0 means not Ready. Chart/version/app_version are included when Flux reports them.",
"tags": [
"atlas",
"gitops",
"flux"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max by (namespace, name, chart, version, app_version, revision, ready, reason) (ananke_gitops_helmrelease_info{job=\"ananke-power\"}) * on(namespace, name) group_left() max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})"
]
},
{
"dashboard": "Atlas GPU",
"panel_title": "Namespace GPU Utilization",
"panel_id": 1,
"panel_type": "piechart",
"description": "Instant share of observed GPU compute activity by namespace. Host covers GPU work outside Kubernetes pods; idle appears only when observed GPU activity is zero.",
"tags": [
"atlas",
"gpu"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(100 * ((((sum by (namespace) (nvidia_namespace_gpu_sm_util_percent{namespace!=\"\",pod!=\"\",$namespace_scope_gpu})) > 0)) or (label_replace(((sum(((avg by (node) (label_replace(label_replace(DCGM_FI_DEV_GPU_UTIL, \"pod\", \"$1\", \"Hostname\", \"(.*)\"), \"namespace\", \"monitoring\", \"\", \"\") * on(namespace,pod) group_left(node) kube_pod_info{namespace=\"monitoring\"}) or max by (node) (jetson_gr3d_freq_percent{node!=\"\"})) unless on(node) (max by (node,gpu,uuid,model) (last_over_time(nvidia_gpu_device_utilization_percent[5m]))))) or on() vector(0)) > 0), \"namespace\", \"unattributed\", \"\", \"\"))) / clamp_min((sum((((sum by (namespace) (nvidia_namespace_gpu_sm_util_percent{namespace!=\"\",pod!=\"\",$namespace_scope_gpu})) > 0)) or (label_replace(((sum(((avg by (node) (label_replace(label_replace(DCGM_FI_DEV_GPU_UTIL, \"pod\", \"$1\", \"Hostname\", \"(.*)\"), \"namespace\", \"monitoring\", \"\", \"\") * on(namespace,pod) group_left(node) kube_pod_info{namespace=\"monitoring\"}) or max by (node) (jetson_gr3d_freq_percent{node!=\"\"})) unless on(node) (max by (node,gpu,uuid,model) (last_over_time(nvidia_gpu_device_utilization_percent[5m]))))) or on() vector(0)) > 0), \"namespace\", \"unattributed\", \"\", \"\"))) or on() vector(0)), 1)) or (label_replace(vector(100), \"namespace\", \"idle\", \"\", \"\") and on() ((sum((((sum by (namespace) (nvidia_namespace_gpu_sm_util_percent{namespace!=\"\",pod!=\"\",$namespace_scope_gpu})) > 0)) or (label_replace(((sum(((avg by (node) (label_replace(label_replace(DCGM_FI_DEV_GPU_UTIL, \"pod\", \"$1\", \"Hostname\", \"(.*)\"), \"namespace\", \"monitoring\", \"\", \"\") * on(namespace,pod) group_left(node) kube_pod_info{namespace=\"monitoring\"}) or max by (node) (jetson_gr3d_freq_percent{node!=\"\"})) unless on(node) (max by (node,gpu,uuid,model) (last_over_time(nvidia_gpu_device_utilization_percent[5m]))))) or on() vector(0)) > 0), \"namespace\", \"unattributed\", \"\", \"\"))) or on() vector(0)) == 0))"
]
},
{
"dashboard": "Atlas GPU",
"panel_title": "GPU Process Util by Namespace",
"panel_id": 2,
"panel_type": "timeseries",
"description": "NVML process-level SM utilization by namespace. Host covers GPU work outside Kubernetes pods.",
"tags": [
"atlas",
"gpu"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"((sum by (namespace) (nvidia_namespace_gpu_sm_util_percent{namespace!=\"\",pod!=\"\",$namespace_scope_gpu})) > 0)"
]
},
{
"dashboard": "Atlas GPU",
"panel_title": "GPU Util by Node",
"panel_id": 3,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"gpu"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(avg by (node) (label_replace(label_replace(DCGM_FI_DEV_GPU_UTIL, \"pod\", \"$1\", \"Hostname\", \"(.*)\"), \"namespace\", \"monitoring\", \"\", \"\") * on(namespace,pod) group_left(node) kube_pod_info{namespace=\"monitoring\"}) or max by (node) (jetson_gr3d_freq_percent{node!=\"\"}), \"Hostname\", \"$1\", \"node\", \"(.*)\")"
]
},
{
"dashboard": "Atlas GPU",
"panel_title": "GPU Pods Reporting Device Util",
"panel_id": 4,
"panel_type": "table",
"description": "DCGM labels the device utilization sample with GPU-consuming pods; multiple pods on one device can report the same value.",
"tags": [
"atlas",
"gpu"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"topk(10, sum(DCGM_FI_DEV_GPU_UTIL{pod!=\"\"}) by (namespace,pod,Hostname))"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Sent (1d)",
"panel_id": 1,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max(postmark_outbound_sent{window=\"1d\"})"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Sent (7d)",
"panel_id": 2,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max(postmark_outbound_sent{window=\"7d\"})"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Mail Bounces (1d)",
"panel_id": 3,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max(postmark_outbound_bounce_rate{window=\"1d\"})",
"max(postmark_outbound_bounced{window=\"1d\"})"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Success Rate (1d)",
"panel_id": 4,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"clamp_min(100 - max(postmark_outbound_bounce_rate{window=\"1d\"}), 0)"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Limit Used (30d)",
"panel_id": 5,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max(postmark_sending_limit_used_percent)"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Send Limit (30d)",
"panel_id": 6,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max(postmark_sending_limit)"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Last Success",
"panel_id": 7,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max(postmark_last_success_timestamp_seconds)"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Exporter Errors",
"panel_id": 8,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(postmark_request_errors_total)"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Bounce Rate (1d vs 7d)",
"panel_id": 13,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max by (window) (postmark_outbound_bounce_rate)"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Bounced (1d vs 7d)",
"panel_id": 14,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max by (window) (postmark_outbound_bounced)"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Sent (1d vs 7d)",
"panel_id": 15,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max by (window) (postmark_outbound_sent)"
]
},
{
"dashboard": "Atlas Mail",
"panel_title": "Exporter Errors",
"panel_id": 16,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"mail"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(postmark_request_errors_total)"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Ingress Success Rate (5m)",
"panel_id": 1,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(sum(rate(traefik_entrypoint_requests_total{code!~\"5..\"}[5m]))) / clamp_min(sum(rate(traefik_entrypoint_requests_total[5m])), 1)"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Error Budget Burn (1h)",
"panel_id": 2,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(1 - ((sum(rate(traefik_entrypoint_requests_total{code!~\"5..\"}[1h]))) / clamp_min(sum(rate(traefik_entrypoint_requests_total[1h])), 1))) / 0.0010000000000000009"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Error Budget Burn (6h)",
"panel_id": 3,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(1 - ((sum(rate(traefik_entrypoint_requests_total{code!~\"5..\"}[6h]))) / clamp_min(sum(rate(traefik_entrypoint_requests_total[6h])), 1))) / 0.0010000000000000009"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Edge P99 Latency (ms)",
"panel_id": 4,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"histogram_quantile(0.99, sum by (le) (rate(traefik_entrypoint_request_duration_seconds_bucket[5m]))) * 1000"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Ingress Traffic",
"panel_id": 5,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(rate(node_network_receive_bytes_total{device!~\"lo|cni.*|veth.*|flannel.*|docker.*|virbr.*|vxlan.*|wg.*\"}[5m])) or on() vector(0)"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Egress Traffic",
"panel_id": 6,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(rate(node_network_transmit_bytes_total{device!~\"lo|cni.*|veth.*|flannel.*|docker.*|virbr.*|vxlan.*|wg.*\"}[5m])) or on() vector(0)"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Intra-Cluster Traffic",
"panel_id": 7,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(rate(container_network_receive_bytes_total{namespace!=\"traefik\",pod!=\"\"}[5m]) + rate(container_network_transmit_bytes_total{namespace!=\"traefik\",pod!=\"\"}[5m])) or on() vector(0)"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Per-Node Throughput",
"panel_id": 8,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"avg by (node) ((sum(rate(node_network_transmit_bytes_total{device!~\"lo|cni.*|veth.*|flannel.*|docker.*|virbr.*|vxlan.*|wg.*\"}[5m])) or on() vector(0) + sum(rate(node_network_receive_bytes_total{device!~\"lo|cni.*|veth.*|flannel.*|docker.*|virbr.*|vxlan.*|wg.*\"}[5m])) or on() vector(0)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Top Namespaces",
"panel_id": 9,
"panel_type": "table",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"topk(10, sum(rate(container_network_transmit_bytes_total{namespace!=\"\"}[5m]) + rate(container_network_receive_bytes_total{namespace!=\"\"}[5m])) by (namespace))"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Top Pods",
"panel_id": 10,
"panel_type": "table",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"topk(10, sum(rate(container_network_transmit_bytes_total{pod!=\"\"}[5m]) + rate(container_network_receive_bytes_total{pod!=\"\"}[5m])) by (namespace,pod))"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Traefik Routers (req/s)",
"panel_id": 11,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"topk(10, sum by (router) (rate(traefik_router_requests_total[5m])))"
]
},
{
"dashboard": "Atlas Network",
"panel_title": "Traefik Entrypoints (req/s)",
"panel_id": 12,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"network"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum by (entrypoint) (rate(traefik_entrypoint_requests_total[5m]))"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "Worker Nodes Ready",
"panel_id": 1,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(kube_node_status_condition{condition=\"Ready\",status=\"true\",node=~\"titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"})"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "Control Plane Ready",
"panel_id": 2,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(kube_node_status_condition{condition=\"Ready\",status=\"true\",node=~\"titan-0a|titan-0b|titan-0c\"})"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "Control Plane Workloads",
"panel_id": 3,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(kube_pod_info{node=~\"titan-0a|titan-0b|titan-0c\",namespace!~\"^(kube-.*|.*-system|traefik|monitoring|logging|cert-manager|maintenance|postgres)$\"})"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "API Server 5xx rate",
"panel_id": 9,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(rate(apiserver_request_total{code=~\"5..\"}[5m]))"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "API Server P99 latency",
"panel_id": 10,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"histogram_quantile(0.99, sum by (le) (rate(apiserver_request_duration_seconds_bucket[5m]))) * 1000"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "etcd P99 latency",
"panel_id": 11,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"histogram_quantile(0.99, sum by (le) (rate(etcd_request_duration_seconds_bucket[5m]))) * 1000"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "Node CPU",
"panel_id": 4,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"avg by (node) (((1 - avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m]))) * 100) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "Node RAM",
"panel_id": 5,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"avg by (node) ((avg by (instance) ((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "Control Plane (incl. titan-db) CPU",
"panel_id": 6,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg by (node) (((1 - avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m]))) * 100) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))) * on(node) group_left() label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh\"}, \"node\", \"$1\", \"nodename\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "Control Plane (incl. titan-db) RAM",
"panel_id": 7,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg by (node) ((avg by (instance) ((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))) * on(node) group_left() label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh\"}, \"node\", \"$1\", \"nodename\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "Root Filesystem Usage",
"panel_id": 8,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"avg by (node) ((avg by (instance) ((1 - (node_filesystem_avail_bytes{mountpoint=\"/\",fstype!~\"tmpfs|overlay\"} / node_filesystem_size_bytes{mountpoint=\"/\",fstype!~\"tmpfs|overlay\"})) * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))"
]
},
{
"dashboard": "Atlas Nodes",
"panel_title": "Astraios Usage",
"panel_id": 9,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"nodes"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"avg by (node) ((avg by (instance) ((1 - (node_filesystem_avail_bytes{mountpoint=\"/mnt/astraios\",fstype!~\"tmpfs|overlay\"} / node_filesystem_size_bytes{mountpoint=\"/mnt/astraios\",fstype!~\"tmpfs|overlay\"})) * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Control Plane Ready",
"panel_id": 2,
"panel_type": "gauge",
"description": "Control-plane nodes currently Ready; full count is good, lower means Kubernetes core capacity is missing.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(kube_node_status_condition{condition=\"Ready\",status=\"true\",node=~\"titan-0a|titan-0b|titan-0c\"})"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Control Plane Workloads",
"panel_id": 3,
"panel_type": "stat",
"description": "Non-core pods running on control-plane nodes; zero is good because control nodes should stay focused.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(kube_pod_info{node=~\"titan-0a|titan-0b|titan-0c\",namespace!~\"^(kube-.*|.*-system|traefik|monitoring|logging|cert-manager|maintenance|postgres)$\"}) or on() vector(0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Stuck Terminating",
"panel_id": 5,
"panel_type": "stat",
"description": "Pods that Kubernetes cannot finish deleting; zero is good, growth means cleanup or storage may be stuck.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(max by (namespace,pod) (((time() - kube_pod_deletion_timestamp{pod!=\"\"}) > bool 600) and on(namespace,pod) (kube_pod_deletion_timestamp{pod!=\"\"} > bool 0))) or on() vector(0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Atlas Availability (365d)",
"panel_id": 27,
"panel_type": "stat",
"description": "Rolling 365-day availability from vmalert's precomputed atlas:availability:ratio_365d series. Grafana keeps the last successful rollup for up to 24h so one missed long-window evaluation does not render as No data.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"last_over_time(atlas:availability:ratio_365d{scope=\"atlas\"}[24h])"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Problem Pods",
"panel_id": 4,
"panel_type": "stat",
"description": "Pods in unhealthy phases; zero is good, any count means a workload needs attention.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(max by (namespace,pod) (kube_pod_status_phase{phase!~\"Running|Succeeded\"})) or on() vector(0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "CrashLoop / ImagePull",
"panel_id": 6,
"panel_type": "stat",
"description": "Pods restarting or unable to pull images; zero is good, any count usually blocks a service.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(max by (namespace,pod) (kube_pod_container_status_waiting_reason{reason=~\"CrashLoopBackOff|ImagePullBackOff\"})) or on() vector(0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Workers Ready",
"panel_id": 1,
"panel_type": "gauge",
"description": "Worker nodes currently Ready; full count is good, lower means less place to run services.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(kube_node_status_condition{condition=\"Ready\",status=\"true\",node=~\"titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"})"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Hottest node: CPU",
"panel_id": 7,
"panel_type": "stat",
"description": "Highest worker CPU load right now; lower is calmer, hot nodes may need pods moved.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(topk(1, avg by (node) (((1 - avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m]))) * 100) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))), \"__name__\", \"$1\", \"node\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Hottest node: RAM",
"panel_id": 8,
"panel_type": "stat",
"description": "Highest worker memory use right now; lower is safer, high values risk evictions.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(topk(1, avg by (node) ((avg by (instance) ((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))), \"__name__\", \"$1\", \"node\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Hottest node: NET (rx+tx)",
"panel_id": 9,
"panel_type": "stat",
"description": "Busiest node network rate; spikes can reveal traffic concentration or noisy services.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(topk(1, avg by (node) ((sum by (instance) (rate(node_network_receive_bytes_total{device!~\"lo\"}[5m]) + rate(node_network_transmit_bytes_total{device!~\"lo\"}[5m]))) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))), \"__name__\", \"$1\", \"node\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Hottest node: I/O (r+w)",
"panel_id": 10,
"panel_type": "stat",
"description": "Busiest node disk I/O rate; high values can explain slow storage-backed apps.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(topk(1, avg by (node) ((sum by (instance) (rate(node_disk_read_bytes_total[5m]) + rate(node_disk_written_bytes_total[5m]))) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))), \"__name__\", \"$1\", \"node\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Astreae Usage",
"panel_id": 23,
"panel_type": "stat",
"description": "Percent of Astreae used; lower is safer, high values reduce storage headroom.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 - (sum(node_filesystem_avail_bytes{mountpoint=\"/mnt/astreae\",fstype!~\"tmpfs|overlay\"}) / sum(node_filesystem_size_bytes{mountpoint=\"/mnt/astreae\",fstype!~\"tmpfs|overlay\"}) * 100)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Asteria Usage",
"panel_id": 24,
"panel_type": "stat",
"description": "Percent of Asteria used; lower is safer, high values reduce storage headroom.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 - (sum(node_filesystem_avail_bytes{mountpoint=\"/mnt/asteria\",fstype!~\"tmpfs|overlay\"}) / sum(node_filesystem_size_bytes{mountpoint=\"/mnt/asteria\",fstype!~\"tmpfs|overlay\"}) * 100)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Astreae Free",
"panel_id": 25,
"panel_type": "stat",
"description": "Free space on Astreae; higher is better for backups and workload growth.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(node_filesystem_avail_bytes{mountpoint=\"/mnt/astreae\",fstype!~\"tmpfs|overlay\"})"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Asteria Free",
"panel_id": 26,
"panel_type": "stat",
"description": "Free space on Asteria; higher is better for backups and workload growth.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(node_filesystem_avail_bytes{mountpoint=\"/mnt/asteria\",fstype!~\"tmpfs|overlay\"})"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Pyrphoros UPS Current",
"panel_id": 40,
"panel_type": "stat",
"description": "Live Pyrphoros UPS draw and runtime; stable runtime means the lab can ride out short outages.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Pyrphoros\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Pyrphoros\"}) / 100) or on() vector(0), \"metric\", \"Draw\", \"__name__\", \".*\") or label_replace(max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Pyrphoros\"}) or on() vector(0), \"metric\", \"Runtime\", \"__name__\", \".*\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Statera UPS Current",
"panel_id": 144,
"panel_type": "stat",
"description": "Live Statera UPS draw and runtime; stable runtime means the lab can ride out short outages.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Statera\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Statera\"}) / 100) or on() vector(0), \"metric\", \"Draw\", \"__name__\", \".*\") or label_replace(max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Statera\"}) or on() vector(0), \"metric\", \"Runtime\", \"__name__\", \".*\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "UPS History (Power Draw)",
"panel_id": 41,
"panel_type": "timeseries",
"description": "UPS power draw over time; steady draw is normal, spikes show sudden load changes.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Pyrphoros\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Pyrphoros\"}) / 100)",
"max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Statera\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Statera\"}) / 100)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Current Enclosure Temperature",
"panel_id": 42,
"panel_type": "stat",
"description": "Current tent temperature in C and F; moderate values protect hardware and plants.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(max(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)) or on() vector(0), \"metric\", \"\u00b0C\", \"__name__\", \".*\") or label_replace(max((max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)) * 9 / 5 + 32) or on() vector(0), \"metric\", \"\u00b0F\", \"__name__\", \".*\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Current Enclosure Climate",
"panel_id": 143,
"panel_type": "stat",
"description": "Current humidity and VPD; in-range values mean the enclosure climate is stable.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(max(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)) or on() vector(0), \"metric\", \"%RH\", \"__name__\", \".*\") or label_replace(max(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_vpd_kpa != 0)) or on() vector(0), \"metric\", \"kPa\", \"__name__\", \".*\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Enclosure Climate History",
"panel_id": 43,
"panel_type": "timeseries",
"description": "Temperature on left axis, humidity and pressure on right axis with dynamic bound series so small swings remain visible.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)",
"max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)",
"max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_vpd_kpa != 0)",
"(min_over_time(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)[$__range]) - 0.08)",
"(max_over_time(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)[$__range]) + 0.08)",
"clamp_min((min_over_time(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)[$__range]) - 0.35), 0)",
"clamp_max((max_over_time(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)[$__range]) + 0.35), 100)",
"clamp_min((min_over_time(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_vpd_kpa != 0)[$__range]) - 0.03), 0)",
"(max_over_time(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_vpd_kpa != 0)[$__range]) + 0.03)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Fan Intensity History",
"panel_id": 141,
"panel_type": "state-timeline",
"description": "Fan intensity lanes on the 0-10 controller scale. Cooler colors are quiet/low intensity; warmer colors mean the enclosure is pushing harder.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{port=\"1\"}), \"fan\", \"Outlet\", \"__name__\", \".*\") or label_replace(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{port=\"2\"}), \"fan\", \"Inlet - Inside\", \"__name__\", \".*\") or label_replace(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{port=\"3\"}), \"fan\", \"Inlet - Outside\", \"__name__\", \".*\") or label_replace(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{port=\"4\"}), \"fan\", \"Tent Interior\", \"__name__\", \".*\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Flux Source",
"panel_id": 140,
"panel_type": "stat",
"description": "Flux GitRepository branch reported by Ananke. Revision and object detail live in Atlas GitOps.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max by (branch, revision) (ananke_gitops_flux_source_info{job=\"ananke-power\",namespace=\"flux-system\",name=\"flux-system\"}) or on() vector(0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Current Gate Health",
"panel_id": 151,
"panel_type": "stat",
"description": "Current gate-check health across suites; skipped or not-applicable checks count as healthy, failures lower it.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg((min by (suite) (((100 * sum by (suite) (clamp_max(max by (suite, check) ((((sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|soteria|titan_iac|bstein_home|data_prepper|lesavka\",branch=~\"main|master|origin/main|origin/master\",check=~\"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"})) or (sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|soteria|titan_iac|bstein_home|data_prepper|lesavka\",suite=~\"ariadne|atlasbot|bstein_home|data_prepper\",branch=~\"main|master|origin/main|origin/master\",check=\"supply_chain\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"})))) > 0), 1) unless on(suite, check) (clamp_max(max by (suite, check) ((((sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|soteria|titan_iac|bstein_home|data_prepper|lesavka\",branch=~\"main|master|origin/main|origin/master\",check=~\"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"})) or (sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|soteria|titan_iac|bstein_home|data_prepper|lesavka\",suite=~\"ariadne|atlasbot|bstein_home|data_prepper\",branch=~\"main|master|origin/main|origin/master\",check=\"supply_chain\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"})))) > 0), 1))) / clamp_min(sum by (suite) (clamp_max(max by (suite, check) ((((sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|soteria|titan_iac|bstein_home|data_prepper|lesavka\",branch=~\"main|master|origin/main|origin/master\",check=~\"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube\",status!=\"\"})) or (sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|soteria|titan_iac|bstein_home|data_prepper|lesavka\",suite=~\"ariadne|atlasbot|bstein_home|data_prepper\",branch=~\"main|master|origin/main|origin/master\",check=\"supply_chain\",status!=\"\"})))) > 0), 1)), 1))) or (min by (suite) (platform_quality:test_category_health_rate:percent_1h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|soteria|titan_iac|bstein_home|data_prepper|lesavka\",branch!=\"\",branch=~\"main|master|origin/main|origin/master\",category=~\"api|chaos|compatibility|component|contract|e2e|integration|manual|performance|regression|reliability|security|smoke|system|ui|unit\"}))))) or on() vector(0))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "CI Run Success (24h)",
"panel_id": 152,
"panel_type": "stat",
"description": "Percent of published quality-gate CI runs that completed successfully in 24h; this is automation health, not raw test pass rate.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 * ((sum(platform_quality:suite_runs:increase_24h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|bstein_home|bstein-home|data_prepper|data-prepper|lesavka\",status=~\"ok|passed|success\"}) or on() vector(0))) / clamp_min(((sum(platform_quality:suite_runs:increase_24h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|bstein_home|bstein-home|data_prepper|data-prepper|lesavka\"}) or on() vector(0))), 1)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Failed Runs (24h)",
"panel_id": 153,
"panel_type": "stat",
"description": "Published quality-gate runs that failed in 24h; zero is good, any value needs a look.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(sum(platform_quality:suite_runs:increase_24h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|pegasus-health|pegasus_health|soteria|titan_iac|titan-iac|bstein_home|bstein-home|data_prepper|data-prepper|lesavka\",status!~\"ok|passed|success\"}) or on() vector(0))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Suites With Runs (24h)",
"panel_id": 154,
"panel_type": "stat",
"description": "Configured suites with at least one published quality-gate run in 24h; full count means the dashboard is fresh.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum((sum by (suite) (platform_quality:suite_runs:increase_24h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|soteria|titan_iac|bstein_home|data_prepper|lesavka\"}) > bool 0)) or on() vector(0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Avg Coverage",
"panel_id": 155,
"panel_type": "stat",
"description": "Average latest line coverage across suites; higher means code is better protected by tests.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg((max by (suite) (platform_quality:suite_coverage_percent:latest_1h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|soteria|titan_iac|bstein_home|data_prepper|lesavka\"}))) or on() vector(0))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "GitOps Health",
"panel_id": 150,
"panel_type": "state-timeline",
"description": "GitOps readiness and suspension health over time. Blue means perfect; warmer colors mean a readiness or suspension problem appeared.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(100 * sum(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})), 1), \"signal\", \"Kustomizations Ready\", \"__name__\", \".*\") or label_replace(100 * sum(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) / clamp_min(count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})), 1), \"signal\", \"HelmReleases Ready\", \"__name__\", \".*\") or label_replace(100 * (1 - (sum(max by (namespace, name) (ananke_gitops_kustomization_suspended{job=\"ananke-power\"})) or on() vector(0)) / clamp_min((count(max by (namespace, name) (ananke_gitops_kustomization_ready{job=\"ananke-power\"})) or on() vector(0)), 1)), \"signal\", \"Kustomizations Not Suspended\", \"__name__\", \".*\") or label_replace(100 * (1 - (sum(max by (namespace, name) (ananke_gitops_helmrelease_suspended{job=\"ananke-power\"})) or on() vector(0)) / clamp_min((count(max by (namespace, name) (ananke_gitops_helmrelease_ready{job=\"ananke-power\"})) or on() vector(0)), 1)), \"signal\", \"HelmReleases Not Suspended\", \"__name__\", \".*\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "One-off Job Pods (age hours)",
"panel_id": 44,
"panel_type": "bargauge",
"description": "Temporary job pods by age; low or empty is good, old pods usually need cleanup.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort_desc(((time() - kube_pod_start_time{pod!=\"\"}) / 3600) * on(namespace,pod) group_left(owner_name) (kube_pod_owner{owner_kind=\"Job\"} unless on(namespace, owner_name) label_replace(kube_job_owner{owner_kind=\"CronJob\"}, \"owner_name\", \"$1\", \"job_name\", \"(.*)\")) * on(namespace,pod) group_left(phase) max by (namespace,pod,phase) (kube_pod_status_phase{phase=~\"Running|Succeeded\"}))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Ariadne Run Volume",
"panel_id": 45,
"panel_type": "timeseries",
"description": "Ariadne automation attempts and failures; attempts show activity, failures show work to investigate.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(increase(ariadne_task_runs_total[5m])) or on() vector(0)",
"sum(increase(ariadne_task_runs_total{status=\"error\"}[5m])) or on() vector(0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Test Category Health",
"panel_id": 46,
"panel_type": "state-timeline",
"description": "Health by major test category across all suites over the last 24 hours. Skipped tests are healthy; failures and errors lower the lane.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"avg by (category) (platform_quality:test_category_health_rate:percent_1h{suite=~\"ariadne|metis|ananke|atlasbot|pegasus|soteria|titan_iac|bstein_home|data_prepper|lesavka\",branch!=\"\",branch=~\"main|master|origin/main|origin/master\",category=~\"api|chaos|compatibility|component|contract|e2e|integration|performance|regression|reliability|security|smoke|system|ui\"})"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Jenkins Last Success (h, newest first)",
"panel_id": 142,
"panel_type": "stat",
"description": "Top 6 most recent Jenkins successes by age (newest first). Green means last run succeeded; red means last run did not succeed. Use Atlas Jobs for the full list.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort((label_replace((sort(bottomk(6, min by (exported_job,job_url,weather_icon) ((time() - ariadne_jenkins_build_weather_job_last_success_timestamp_seconds) / 3600)))) and on(exported_job,job_url,weather_icon) (max by (exported_job,job_url,weather_icon) (ariadne_jenkins_build_weather_job_last_status) == 1), \"run_state\", \"ok\", \"exported_job\", \".*\")) or (label_replace((sort(bottomk(6, min by (exported_job,job_url,weather_icon) ((time() - ariadne_jenkins_build_weather_job_last_success_timestamp_seconds) / 3600)))) and on(exported_job,job_url,weather_icon) (max by (exported_job,job_url,weather_icon) (ariadne_jenkins_build_weather_job_last_status) != 1), \"run_state\", \"bad\", \"exported_job\", \".*\")))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Jenkins Last Failure (h, newest first)",
"panel_id": 243,
"panel_type": "stat",
"description": "Top 6 most recent Jenkins failures by age (newest first). Green means last run succeeded; red means last run did not succeed. Use Atlas Jobs for the full list.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort((label_replace((sort(bottomk(6, min by (exported_job,job_url,weather_icon) ((time() - ariadne_jenkins_build_weather_job_last_failure_timestamp_seconds) / 3600)))) and on(exported_job,job_url,weather_icon) (max by (exported_job,job_url,weather_icon) (ariadne_jenkins_build_weather_job_last_status) == 1), \"run_state\", \"ok\", \"exported_job\", \".*\")) or (label_replace((sort(bottomk(6, min by (exported_job,job_url,weather_icon) ((time() - ariadne_jenkins_build_weather_job_last_failure_timestamp_seconds) / 3600)))) and on(exported_job,job_url,weather_icon) (max by (exported_job,job_url,weather_icon) (ariadne_jenkins_build_weather_job_last_status) != 1), \"run_state\", \"bad\", \"exported_job\", \".*\")))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "PVC Backup Health / Age",
"panel_id": 47,
"panel_type": "bargauge",
"description": "Backup age in hours computed from last-success timestamps for restic-managed PVCs (nightly target: <=20h green, <40h yellow, <50h orange, >=50h red). PVCs that have backup history but currently no successful backup (missing/no_completed/error) are pinned to 999h for visibility.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort_desc(max by (namespace, pvc) (((time() - pvc_backup_last_success_timestamp_seconds{driver=\"restic\"}) / 3600) or on(namespace,pvc,volume,driver) ((((pvc_backup_health_reason{driver=\"restic\",reason=~\"missing|no_completed|lookup_failed|unknown_timestamp\"} > 0) * (pvc_backup_count{driver=\"restic\"} > bool 0)) * 999))) or on() ((label_replace(label_replace(vector(999), \"namespace\", \"maintenance\", \"__name__\", \".*\"), \"pvc\", \"backup-telemetry-missing\", \"__name__\", \".*\")) unless on() ((count({__name__=~\"pvc_backup_(count|last_success_timestamp_seconds|health_reason)\",driver=\"restic\"})) > 0)))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Mail Sent (1d)",
"panel_id": 30,
"panel_type": "stat",
"description": "Outbound mail sent in the last day; useful context for mail health and bounce rates.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max(postmark_outbound_sent{window=\"1d\"})"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Mail Bounces (1d)",
"panel_id": 31,
"panel_type": "stat",
"description": "Outbound mail bounce rate and count; zero is best, high values risk delivery reputation.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max(postmark_outbound_bounce_rate{window=\"1d\"})",
"max(postmark_outbound_bounced{window=\"1d\"})"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Mail Success Rate (1d)",
"panel_id": 32,
"panel_type": "stat",
"description": "Outbound mail success rate; higher is better for user notifications.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"clamp_min(100 - max(postmark_outbound_bounce_rate{window=\"1d\"}), 0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Mail Limit Used (30d)",
"panel_id": 33,
"panel_type": "stat",
"description": "Postmark monthly send limit used; lower leaves more quota headroom.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max(postmark_sending_limit_used_percent)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Postgres Connections Used",
"panel_id": 34,
"panel_type": "stat",
"description": "Current Postgres connections; lower leaves room for apps during spikes.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"label_replace(sum(pg_stat_activity_count), \"conn\", \"used\", \"__name__\", \".*\") or label_replace(max(pg_settings_max_connections), \"conn\", \"max\", \"__name__\", \".*\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Postgres Hottest Connections",
"panel_id": 35,
"panel_type": "stat",
"description": "Database with the most active connections; high values identify the pressure source.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"topk(1, sum by (datname) (pg_stat_activity_count))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Namespace CPU Share",
"panel_id": 11,
"panel_type": "piechart",
"description": "Shares are normalized within the selected filter. Switching scope changes the denominator.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 * ( sum(rate(container_cpu_usage_seconds_total{namespace!=\"\",pod!=\"\",container!=\"\",container!=\"POD\",$namespace_scope_cpu}[1m])) by (namespace) ) / clamp_min(sum( sum(rate(container_cpu_usage_seconds_total{namespace!=\"\",pod!=\"\",container!=\"\",container!=\"POD\",$namespace_scope_cpu}[1m])) by (namespace) ), 1)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Namespace GPU Utilization",
"panel_id": 12,
"panel_type": "piechart",
"description": "Instant share of observed GPU compute activity by namespace. Host covers GPU work outside Kubernetes pods; idle appears only when observed GPU activity is zero.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(100 * ((((sum by (namespace) (nvidia_namespace_gpu_sm_util_percent{namespace!=\"\",pod!=\"\",$namespace_scope_gpu})) > 0)) or (label_replace(((sum(((avg by (node) (label_replace(label_replace(DCGM_FI_DEV_GPU_UTIL, \"pod\", \"$1\", \"Hostname\", \"(.*)\"), \"namespace\", \"monitoring\", \"\", \"\") * on(namespace,pod) group_left(node) kube_pod_info{namespace=\"monitoring\"}) or max by (node) (jetson_gr3d_freq_percent{node!=\"\"})) unless on(node) (max by (node,gpu,uuid,model) (last_over_time(nvidia_gpu_device_utilization_percent[5m]))))) or on() vector(0)) > 0), \"namespace\", \"unattributed\", \"\", \"\"))) / clamp_min((sum((((sum by (namespace) (nvidia_namespace_gpu_sm_util_percent{namespace!=\"\",pod!=\"\",$namespace_scope_gpu})) > 0)) or (label_replace(((sum(((avg by (node) (label_replace(label_replace(DCGM_FI_DEV_GPU_UTIL, \"pod\", \"$1\", \"Hostname\", \"(.*)\"), \"namespace\", \"monitoring\", \"\", \"\") * on(namespace,pod) group_left(node) kube_pod_info{namespace=\"monitoring\"}) or max by (node) (jetson_gr3d_freq_percent{node!=\"\"})) unless on(node) (max by (node,gpu,uuid,model) (last_over_time(nvidia_gpu_device_utilization_percent[5m]))))) or on() vector(0)) > 0), \"namespace\", \"unattributed\", \"\", \"\"))) or on() vector(0)), 1)) or (label_replace(vector(100), \"namespace\", \"idle\", \"\", \"\") and on() ((sum((((sum by (namespace) (nvidia_namespace_gpu_sm_util_percent{namespace!=\"\",pod!=\"\",$namespace_scope_gpu})) > 0)) or (label_replace(((sum(((avg by (node) (label_replace(label_replace(DCGM_FI_DEV_GPU_UTIL, \"pod\", \"$1\", \"Hostname\", \"(.*)\"), \"namespace\", \"monitoring\", \"\", \"\") * on(namespace,pod) group_left(node) kube_pod_info{namespace=\"monitoring\"}) or max by (node) (jetson_gr3d_freq_percent{node!=\"\"})) unless on(node) (max by (node,gpu,uuid,model) (last_over_time(nvidia_gpu_device_utilization_percent[5m]))))) or on() vector(0)) > 0), \"namespace\", \"unattributed\", \"\", \"\"))) or on() vector(0)) == 0))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Namespace RAM Share",
"panel_id": 13,
"panel_type": "piechart",
"description": "Shares are normalized within the selected filter. Switching scope changes the denominator.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 * ( sum(container_memory_working_set_bytes{namespace!=\"\",pod!=\"\",container!=\"\",container!=\"POD\",$namespace_scope_ram}) by (namespace) ) / clamp_min(sum( sum(container_memory_working_set_bytes{namespace!=\"\",pod!=\"\",container!=\"\",container!=\"POD\",$namespace_scope_ram}) by (namespace) ), 1)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Worker Node CPU",
"panel_id": 14,
"panel_type": "timeseries",
"description": "Worker CPU over time; lower is calmer, sustained high load may need rescheduling.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg by (node) (((1 - avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m]))) * 100) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))) * on(node) group_left() label_replace(node_uname_info{nodename=~\"titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Worker Node RAM",
"panel_id": 15,
"panel_type": "timeseries",
"description": "Worker memory over time; lower is safer, sustained high use risks evictions.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg by (node) ((avg by (instance) ((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))) * on(node) group_left() label_replace(node_uname_info{nodename=~\"titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Control plane CPU",
"panel_id": 16,
"panel_type": "timeseries",
"description": "Control-plane CPU over time; low steady usage means Kubernetes has control headroom.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg by (node) (((1 - avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m]))) * 100) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))) * on(node) group_left() label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh\"}, \"node\", \"$1\", \"nodename\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Control plane RAM",
"panel_id": 17,
"panel_type": "timeseries",
"description": "Control-plane memory over time; low steady usage means Kubernetes has control headroom.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg by (node) ((avg by (instance) ((node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes) / node_memory_MemTotal_bytes * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))) * on(node) group_left() label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh\"}, \"node\", \"$1\", \"nodename\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Node Pod Share",
"panel_id": 28,
"panel_type": "piechart",
"description": "Share of pods per node; uneven share can reveal overloaded workers.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(sum(kube_pod_info{pod!=\"\" , node!=\"\"}) by (node) / clamp_min(sum(kube_pod_info{pod!=\"\" , node!=\"\"}), 1)) * 100"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Top Nodes by Pod Count",
"panel_id": 29,
"panel_type": "bargauge",
"description": "Nodes with the most pods; lower and balanced is easier to operate.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort_desc(topk(12, sum(kube_pod_info{pod!=\"\" , node!=\"\"}) by (node)))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Cluster Ingress Throughput",
"panel_id": 18,
"panel_type": "timeseries",
"description": "Traffic entering the cluster; spikes should line up with expected usage.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(rate(node_network_receive_bytes_total{device!~\"lo|cni.*|veth.*|flannel.*|docker.*|virbr.*|vxlan.*|wg.*\"}[5m])) or on() vector(0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Cluster Egress Throughput",
"panel_id": 19,
"panel_type": "timeseries",
"description": "Traffic leaving the cluster; spikes should line up with expected usage.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(rate(node_network_transmit_bytes_total{device!~\"lo|cni.*|veth.*|flannel.*|docker.*|virbr.*|vxlan.*|wg.*\"}[5m])) or on() vector(0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Intra-Cluster Throughput",
"panel_id": 20,
"panel_type": "timeseries",
"description": "Traffic inside the cluster; high values can expose chatty services.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(rate(container_network_receive_bytes_total{namespace!=\"traefik\",pod!=\"\"}[5m]) + rate(container_network_transmit_bytes_total{namespace!=\"traefik\",pod!=\"\"}[5m])) or on() vector(0)"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Root Filesystem Usage",
"panel_id": 21,
"panel_type": "timeseries",
"description": "Node root disk usage; lower is safer, high values can break kubelet.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"avg by (node) ((avg by (instance) ((1 - (node_filesystem_avail_bytes{mountpoint=\"/\",fstype!~\"tmpfs|overlay\"} / node_filesystem_size_bytes{mountpoint=\"/\",fstype!~\"tmpfs|overlay\"})) * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))"
]
},
{
"dashboard": "Atlas Overview",
"panel_title": "Nodes Closest to Full Astraios Disks",
"panel_id": 22,
"panel_type": "timeseries",
"description": "Astraios disk fullness by node; lower is safer for storage reliability.",
"tags": [
"atlas",
"overview"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"avg by (node) ((avg by (instance) ((1 - (node_filesystem_avail_bytes{mountpoint=\"/mnt/astraios\",fstype!~\"tmpfs|overlay\"} / node_filesystem_size_bytes{mountpoint=\"/mnt/astraios\",fstype!~\"tmpfs|overlay\"})) * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))"
]
},
{
"dashboard": "Atlas Pods",
"panel_title": "Problem Pods",
"panel_id": 1,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"pods"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(max by (namespace,pod) (kube_pod_status_phase{phase!~\"Running|Succeeded\"})) or on() vector(0)"
]
},
{
"dashboard": "Atlas Pods",
"panel_title": "CrashLoop / ImagePull",
"panel_id": 2,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"pods"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(max by (namespace,pod) (kube_pod_container_status_waiting_reason{reason=~\"CrashLoopBackOff|ImagePullBackOff\"})) or on() vector(0)"
]
},
{
"dashboard": "Atlas Pods",
"panel_title": "Stuck Terminating (>10m)",
"panel_id": 3,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"pods"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(max by (namespace,pod) (((time() - kube_pod_deletion_timestamp{pod!=\"\"}) > bool 600) and on(namespace,pod) (kube_pod_deletion_timestamp{pod!=\"\"} > bool 0))) or on() vector(0)"
]
},
{
"dashboard": "Atlas Pods",
"panel_title": "Control Plane Workloads",
"panel_id": 4,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"pods"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(kube_pod_info{node=~\"titan-0a|titan-0b|titan-0c\",namespace!~\"^(kube-.*|.*-system|traefik|monitoring|logging|cert-manager|maintenance|postgres)$\"})"
]
},
{
"dashboard": "Atlas Pods",
"panel_title": "Pods Not Running",
"panel_id": 5,
"panel_type": "table",
"description": "",
"tags": [
"atlas",
"pods"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(time() - kube_pod_created{pod!=\"\"}) * on(namespace,pod) group_left(node) kube_pod_info * on(namespace,pod) group_left(phase) max by (namespace,pod,phase) (kube_pod_status_phase{phase!~\"Running|Succeeded\"})"
]
},
{
"dashboard": "Atlas Pods",
"panel_title": "CrashLoop / ImagePull",
"panel_id": 6,
"panel_type": "table",
"description": "",
"tags": [
"atlas",
"pods"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(time() - kube_pod_created{pod!=\"\"}) * on(namespace,pod) group_left(node) kube_pod_info * on(namespace,pod,container) group_left(reason) max by (namespace,pod,container,reason) (kube_pod_container_status_waiting_reason{reason=~\"CrashLoopBackOff|ImagePullBackOff\"})"
]
},
{
"dashboard": "Atlas Pods",
"panel_title": "Terminating >10m",
"panel_id": 7,
"panel_type": "table",
"description": "",
"tags": [
"atlas",
"pods"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((time() - kube_pod_deletion_timestamp{pod!=\"\"}) and on(namespace,pod) (kube_pod_deletion_timestamp{pod!=\"\"} > bool 0)) * on(namespace,pod) group_left(node) kube_pod_info)"
]
},
{
"dashboard": "Atlas Pods",
"panel_title": "Node Pod Share",
"panel_id": 8,
"panel_type": "piechart",
"description": "",
"tags": [
"atlas",
"pods"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(sum(kube_pod_info{pod!=\"\" , node!=\"\"}) by (node) / clamp_min(sum(kube_pod_info{pod!=\"\" , node!=\"\"}), 1)) * 100"
]
},
{
"dashboard": "Atlas Pods",
"panel_title": "Top Nodes by Pod Count",
"panel_id": 9,
"panel_type": "bargauge",
"description": "",
"tags": [
"atlas",
"pods"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort_desc(topk(12, sum(kube_pod_info{pod!=\"\" , node!=\"\"}) by (node)))"
]
},
{
"dashboard": "Atlas Pods",
"panel_title": "Namespace Plurality by Node v27",
"panel_id": 10,
"panel_type": "table",
"description": "",
"tags": [
"atlas",
"pods"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(sum by (namespace,node) (kube_pod_info{pod!=\"\" , node!=\"\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod!=\"\"}), 1) * 100) * on(namespace,node) group_left() ((sum by (namespace,node) (kube_pod_info{pod!=\"\" , node!=\"\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod!=\"\"}), 1) * 100) + on(node) group_left() ((sum by (node) (kube_node_info{node=\"titan-0a\"}) * 0 + 0.001) or (sum by (node) (kube_node_info{node=\"titan-0b\"}) * 0 + 0.002) or (sum by (node) (kube_node_info{node=\"titan-0c\"}) * 0 + 0.003) or (sum by (node) (kube_node_info{node=\"titan-db\"}) * 0 + 0.004) or (sum by (node) (kube_node_info{node=\"titan-jh\"}) * 0 + 0.005) or (sum by (node) (kube_node_info{node=\"titan-04\"}) * 0 + 0.006) or (sum by (node) (kube_node_info{node=\"titan-05\"}) * 0 + 0.007) or (sum by (node) (kube_node_info{node=\"titan-06\"}) * 0 + 0.008) or (sum by (node) (kube_node_info{node=\"titan-07\"}) * 0 + 0.009000000000000001) or (sum by (node) (kube_node_info{node=\"titan-08\"}) * 0 + 0.01) or (sum by (node) (kube_node_info{node=\"titan-09\"}) * 0 + 0.011) or (sum by (node) (kube_node_info{node=\"titan-10\"}) * 0 + 0.012) or (sum by (node) (kube_node_info{node=\"titan-11\"}) * 0 + 0.013000000000000001) or (sum by (node) (kube_node_info{node=\"titan-20\"}) * 0 + 0.014) or (sum by (node) (kube_node_info{node=\"titan-21\"}) * 0 + 0.015) or (sum by (node) (kube_node_info{node=\"titan-12\"}) * 0 + 0.016) or (sum by (node) (kube_node_info{node=\"titan-13\"}) * 0 + 0.017) or (sum by (node) (kube_node_info{node=\"titan-14\"}) * 0 + 0.018000000000000002) or (sum by (node) (kube_node_info{node=\"titan-15\"}) * 0 + 0.019) or (sum by (node) (kube_node_info{node=\"titan-16\"}) * 0 + 0.02) or (sum by (node) (kube_node_info{node=\"titan-17\"}) * 0 + 0.021) or (sum by (node) (kube_node_info{node=\"titan-18\"}) * 0 + 0.022) or (sum by (node) (kube_node_info{node=\"titan-19\"}) * 0 + 0.023) or (sum by (node) (kube_node_info{node=\"titan-22\"}) * 0 + 0.024) or (sum by (node) (kube_node_info{node=\"titan-23\"}) * 0 + 0.025) or (sum by (node) (kube_node_info{node=\"titan-24\"}) * 0 + 0.026000000000000002)) == bool on(namespace) group_left() (max by (namespace) ((sum by (namespace,node) (kube_pod_info{pod!=\"\" , node!=\"\"}) / on(namespace) group_left() clamp_min(sum by (namespace) (kube_pod_info{pod!=\"\"}), 1) * 100) + on(node) group_left() ((sum by (node) (kube_node_info{node=\"titan-0a\"}) * 0 + 0.001) or (sum by (node) (kube_node_info{node=\"titan-0b\"}) * 0 + 0.002) or (sum by (node) (kube_node_info{node=\"titan-0c\"}) * 0 + 0.003) or (sum by (node) (kube_node_info{node=\"titan-db\"}) * 0 + 0.004) or (sum by (node) (kube_node_info{node=\"titan-jh\"}) * 0 + 0.005) or (sum by (node) (kube_node_info{node=\"titan-04\"}) * 0 + 0.006) or (sum by (node) (kube_node_info{node=\"titan-05\"}) * 0 + 0.007) or (sum by (node) (kube_node_info{node=\"titan-06\"}) * 0 + 0.008) or (sum by (node) (kube_node_info{node=\"titan-07\"}) * 0 + 0.009000000000000001) or (sum by (node) (kube_node_info{node=\"titan-08\"}) * 0 + 0.01) or (sum by (node) (kube_node_info{node=\"titan-09\"}) * 0 + 0.011) or (sum by (node) (kube_node_info{node=\"titan-10\"}) * 0 + 0.012) or (sum by (node) (kube_node_info{node=\"titan-11\"}) * 0 + 0.013000000000000001) or (sum by (node) (kube_node_info{node=\"titan-20\"}) * 0 + 0.014) or (sum by (node) (kube_node_info{node=\"titan-21\"}) * 0 + 0.015) or (sum by (node) (kube_node_info{node=\"titan-12\"}) * 0 + 0.016) or (sum by (node) (kube_node_info{node=\"titan-13\"}) * 0 + 0.017) or (sum by (node) (kube_node_info{node=\"titan-14\"}) * 0 + 0.018000000000000002) or (sum by (node) (kube_node_info{node=\"titan-15\"}) * 0 + 0.019) or (sum by (node) (kube_node_info{node=\"titan-16\"}) * 0 + 0.02) or (sum by (node) (kube_node_info{node=\"titan-17\"}) * 0 + 0.021) or (sum by (node) (kube_node_info{node=\"titan-18\"}) * 0 + 0.022) or (sum by (node) (kube_node_info{node=\"titan-19\"}) * 0 + 0.023) or (sum by (node) (kube_node_info{node=\"titan-22\"}) * 0 + 0.024) or (sum by (node) (kube_node_info{node=\"titan-23\"}) * 0 + 0.025) or (sum by (node) (kube_node_info{node=\"titan-24\"}) * 0 + 0.026000000000000002)))))"
]
},
{
"dashboard": "Atlas Power",
"panel_title": "UPS Current Load",
"panel_id": 1,
"panel_type": "stat",
"description": "Per-UPS live snapshot: current draw in watts, estimated battery runtime if discharge started now, and charging/discharging status.",
"tags": [
"atlas",
"power",
"climate"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Pyrphoros\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Pyrphoros\"}) / 100) or on() vector(0)",
"max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Pyrphoros\"}) or on() vector(0)",
"max(ananke_ups_on_battery{job=\"ananke-power\",source=\"Pyrphoros\"}) or on() vector(0)",
"max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Statera\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Statera\"}) / 100) or on() vector(0)",
"max(ananke_ups_runtime_seconds{job=\"ananke-power\",source=\"Statera\"}) or on() vector(0)",
"max(ananke_ups_on_battery{job=\"ananke-power\",source=\"Statera\"}) or on() vector(0)"
]
},
{
"dashboard": "Atlas Power",
"panel_title": "UPS History (Power Draw)",
"panel_id": 2,
"panel_type": "timeseries",
"description": "Historical UPS power consumption in watts for titan-db and tethys.",
"tags": [
"atlas",
"power",
"climate"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Pyrphoros\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Pyrphoros\"}) / 100)",
"max((ananke_ups_load_percent{job=\"ananke-power\",source=\"Statera\"} * ananke_ups_power_nominal_watts{job=\"ananke-power\",source=\"Statera\"}) / 100)"
]
},
{
"dashboard": "Atlas Power",
"panel_title": "Current Climate",
"panel_id": 3,
"panel_type": "stat",
"description": "Current tent temperature, humidity, VPD, and dew point. These render once Typhon climate telemetry is online.",
"tags": [
"atlas",
"power",
"climate"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)) or on() vector(0)",
"max(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_vpd_kpa != 0)) or on() vector(0)",
"max(max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)) or on() vector(0)",
"max((243.12 * (ln(clamp_min((max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)), 1) / 100) + (17.62 * (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))) / (243.12 + (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))))) / (17.62 - (ln(clamp_min((max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)), 1) / 100) + (17.62 * (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))) / (243.12 + (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)))))) or on() vector(0)"
]
},
{
"dashboard": "Atlas Power",
"panel_title": "Climate History",
"panel_id": 4,
"panel_type": "timeseries",
"description": "Two-axis chart: tent temperature/humidity/dew point (left axis) and tent VPD in kPa (right axis).",
"tags": [
"atlas",
"power",
"climate"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)",
"max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)",
"max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_vpd_kpa != 0)",
"(243.12 * (ln(clamp_min((max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)), 1) / 100) + (17.62 * (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))) / (243.12 + (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))))) / (17.62 - (ln(clamp_min((max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_relative_humidity_percent != 0)), 1) / 100) + (17.62 * (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0))) / (243.12 + (max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_temperature_celsius != 0)))))"
]
},
{
"dashboard": "Atlas Power",
"panel_title": "Fan Activity",
"panel_id": 5,
"panel_type": "stat",
"description": "Current fan activity levels (0-10): inside outlet, inside inlet, outside inlet, and interior fans.",
"tags": [
"atlas",
"power",
"climate"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"round(max(typhon_fan_speed_level{fan_group=\"outlet\"}) or on() vector(0))",
"round(max(typhon_fan_speed_level{fan_group=\"inside_inlet\"}) or on() vector(0))",
"round(max(typhon_fan_speed_level{fan_group=\"outside_inlet\"}) or on() vector(0))",
"round(max(typhon_fan_speed_level{fan_group=\"interior\"}) or on() vector(0))"
]
},
{
"dashboard": "Atlas Power",
"panel_title": "Fan Intensity History",
"panel_id": 6,
"panel_type": "timeseries",
"description": "Historical fan activity for all four fan groups (0-10 scale).",
"tags": [
"atlas",
"power",
"climate"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{fan_group=\"outlet\"})",
"max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{fan_group=\"inside_inlet\"})",
"max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{fan_group=\"outside_inlet\"})",
"max without (job,instance,pod,service,endpoint,namespace,node,controller_name,controller_id,port_name,fan_group) (typhon_fan_speed_level{fan_group=\"interior\"})"
]
},
{
"dashboard": "Atlas Storage",
"panel_title": "Astreae Usage",
"panel_id": 1,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"storage"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 - (sum(node_filesystem_avail_bytes{mountpoint=\"/mnt/astreae\",fstype!~\"tmpfs|overlay\"}) / sum(node_filesystem_size_bytes{mountpoint=\"/mnt/astreae\",fstype!~\"tmpfs|overlay\"}) * 100)"
]
},
{
"dashboard": "Atlas Storage",
"panel_title": "Asteria Usage",
"panel_id": 2,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"storage"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 - (sum(node_filesystem_avail_bytes{mountpoint=\"/mnt/asteria\",fstype!~\"tmpfs|overlay\"}) / sum(node_filesystem_size_bytes{mountpoint=\"/mnt/asteria\",fstype!~\"tmpfs|overlay\"}) * 100)"
]
},
{
"dashboard": "Atlas Storage",
"panel_title": "Astreae Free",
"panel_id": 3,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"storage"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(node_filesystem_avail_bytes{mountpoint=\"/mnt/astreae\",fstype!~\"tmpfs|overlay\"})"
]
},
{
"dashboard": "Atlas Storage",
"panel_title": "Asteria Free",
"panel_id": 4,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"storage"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(node_filesystem_avail_bytes{mountpoint=\"/mnt/asteria\",fstype!~\"tmpfs|overlay\"})"
]
},
{
"dashboard": "Atlas Storage",
"panel_title": "Astreae Per-Node Usage",
"panel_id": 5,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"storage"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg by (node) ((avg by (instance) ((1 - (node_filesystem_avail_bytes{mountpoint=\"/mnt/astreae\",fstype!~\"tmpfs|overlay\"} / node_filesystem_size_bytes{mountpoint=\"/mnt/astreae\",fstype!~\"tmpfs|overlay\"})) * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))) * on(node) group_left() label_replace(node_uname_info{nodename=~\"titan-1[2-9]|titan-2[2-4]\"}, \"node\", \"$1\", \"nodename\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Storage",
"panel_title": "Asteria Per-Node Usage",
"panel_id": 6,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"storage"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg by (node) ((avg by (instance) ((1 - (node_filesystem_avail_bytes{mountpoint=\"/mnt/asteria\",fstype!~\"tmpfs|overlay\"} / node_filesystem_size_bytes{mountpoint=\"/mnt/asteria\",fstype!~\"tmpfs|overlay\"})) * 100)) * on(instance) group_left(node) label_replace(node_uname_info{nodename=~\"titan-0a|titan-0b|titan-0c|titan-db|titan-jh|titan-04|titan-05|titan-06|titan-07|titan-08|titan-09|titan-10|titan-11|titan-20|titan-21|titan-12|titan-13|titan-14|titan-15|titan-16|titan-17|titan-18|titan-19|titan-22|titan-23|titan-24\"}, \"node\", \"$1\", \"nodename\", \"(.*)\"))) * on(node) group_left() label_replace(node_uname_info{nodename=~\"titan-1[2-9]|titan-2[2-4]\"}, \"node\", \"$1\", \"nodename\", \"(.*)\")"
]
},
{
"dashboard": "Atlas Storage",
"panel_title": "Astreae Usage History",
"panel_id": 7,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"storage"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 - (sum(node_filesystem_avail_bytes{mountpoint=\"/mnt/astreae\",fstype!~\"tmpfs|overlay\"}) / sum(node_filesystem_size_bytes{mountpoint=\"/mnt/astreae\",fstype!~\"tmpfs|overlay\"}) * 100)"
]
},
{
"dashboard": "Atlas Storage",
"panel_title": "Asteria Usage History",
"panel_id": 8,
"panel_type": "timeseries",
"description": "",
"tags": [
"atlas",
"storage"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 - (sum(node_filesystem_avail_bytes{mountpoint=\"/mnt/asteria\",fstype!~\"tmpfs|overlay\"}) / sum(node_filesystem_size_bytes{mountpoint=\"/mnt/asteria\",fstype!~\"tmpfs|overlay\"}) * 100)"
]
},
{
"dashboard": "Atlas Storage",
"panel_title": "Maintenance Sweepers Ready",
"panel_id": 30,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"storage"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"kube_daemonset_status_number_ready{namespace=\"maintenance\",daemonset=\"node-image-sweeper\"} / on(namespace,daemonset) kube_daemonset_status_desired_number_scheduled{namespace=\"maintenance\",daemonset=\"node-image-sweeper\"} * 100"
]
},
{
"dashboard": "Atlas Storage",
"panel_title": "Maintenance Cron Freshness (s)",
"panel_id": 31,
"panel_type": "stat",
"description": "",
"tags": [
"atlas",
"storage"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"time() - max by (cronjob) (kube_cronjob_status_last_successful_time{namespace=\"maintenance\",cronjob=\"image-sweeper\"})"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Current Gate Health (%)",
"panel_id": 156,
"panel_type": "stat",
"description": "Average latest required gate checks passing across selected suites; this is the current quality state.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg((min by (suite) (((100 * (sum by (suite) (((clamp_max(max by (suite, check) ((((sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"})) or (sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",suite=~\"ariadne|atlasbot|bstein_home|data_prepper\",branch!=\"\",branch=~\"${branch:regex}\",check=\"supply_chain\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"})))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((((sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"})) or (sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",suite=~\"ariadne|atlasbot|bstein_home|data_prepper\",branch!=\"\",branch=~\"${branch:regex}\",check=\"supply_chain\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"})))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((((sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube\",status!=\"\"})) or (sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",suite=~\"ariadne|atlasbot|bstein_home|data_prepper\",branch!=\"\",branch=~\"${branch:regex}\",check=\"supply_chain\",status!=\"\"})))) > 0), 1))), 1))) or (min by (suite) (platform_quality:test_category_health_rate:percent_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",category=~\"api|chaos|compatibility|component|contract|e2e|integration|manual|performance|regression|reliability|security|smoke|system|ui|unit\"}))))) or on() vector(0))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "CI Run Success Rate (24h)",
"panel_id": 2,
"panel_type": "stat",
"description": "Percent of selected quality-gate CI runs that completed successfully in 24h; this is run health, not individual test pass rate.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 * ((sum(platform_quality:suite_runs:increase_24h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success\"}) or on() vector(0))) / clamp_min(((sum(platform_quality:suite_runs:increase_24h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\"}) or on() vector(0))), 1)"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "CI Run Success Rate (7d)",
"panel_id": 3,
"panel_type": "stat",
"description": "Percent of selected quality-gate CI runs that completed successfully in 7d; higher means more stable automation.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 * ((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[7d:1h])) or on() vector(0))) / clamp_min(((sum(increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[7d:1h])) or on() vector(0))), 1)"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Failed Runs (24h)",
"panel_id": 4,
"panel_type": "stat",
"description": "Selected quality-gate runs that failed in 24h; zero is good and anything else needs a look.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(sum(platform_quality:suite_runs:increase_24h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success\"}) or on() vector(0))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "CI Runs (24h)",
"panel_id": 5,
"panel_type": "stat",
"description": "Selected quality-gate CI run count in 24h; zero means the dashboard may be stale.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(sum(platform_quality:suite_runs:increase_24h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\"}) or on() vector(0))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Suite Freshness (24h)",
"panel_id": 157,
"panel_type": "stat",
"description": "Percent of selected suites with at least one quality-gate CI run in 24h; 100% means inputs are fresh.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"100 * (sum((sum by (suite) (platform_quality:suite_runs:increase_24h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\"})) > bool 0) or on() vector(0)) / clamp_min(count(((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0))), 1)"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Avg Coverage (%)",
"panel_id": 6,
"panel_type": "stat",
"description": "Average latest line coverage for selected suites; higher means better test protection.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(avg((max by (suite) (platform_quality:suite_coverage_percent:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"}))) or on() vector(0))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Suites with LOC >500",
"panel_id": 7,
"panel_type": "stat",
"description": "Selected suites with oversized source files; zero is good for maintainability.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(sum(((max by (suite) (platform_quality:suite_source_lines_over_500_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})) > bool 0)) or on() vector(0))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Latest Gate Health by Suite",
"panel_id": 8,
"panel_type": "bargauge",
"description": "Current health by suite from required gate checks, capped by category-level test health. Skipped and not-applicable results are healthy; failures and errors lower the value.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort(((min by (suite) (((100 * (sum by (suite) (((clamp_max(max by (suite, check) ((((sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"})) or (sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",suite=~\"ariadne|atlasbot|bstein_home|data_prepper\",branch!=\"\",branch=~\"${branch:regex}\",check=\"supply_chain\",status=~\"ok|passed|success|not_applicable|skipped|na|n/a\"})))) > 0), 1)) unless on(suite, check) (clamp_max(max by (suite, check) ((((sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"})) or (sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",suite=~\"ariadne|atlasbot|bstein_home|data_prepper\",branch!=\"\",branch=~\"${branch:regex}\",check=\"supply_chain\",status!~\"ok|passed|success|not_applicable|skipped|na|n/a\"})))) > 0), 1))))) / clamp_min((sum by (suite) (clamp_max(max by (suite, check) ((((sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|coverage|loc|style|docs_naming|gate_glue|sonarqube\",status!=\"\"})) or (sum by (suite, branch, check, status) (platform_quality:check_status:present_1h{suite=~\"${suite:regex}\",suite=~\"ariadne|atlasbot|bstein_home|data_prepper\",branch!=\"\",branch=~\"${branch:regex}\",check=\"supply_chain\",status!=\"\"})))) > 0), 1))), 1))) or (min by (suite) (platform_quality:test_category_health_rate:percent_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",category=~\"api|chaos|compatibility|component|contract|e2e|integration|manual|performance|regression|reliability|security|smoke|system|ui|unit\"})))) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))) - 1))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "CI Run Success by Suite (24h)",
"panel_id": 9,
"panel_type": "bargauge",
"description": "24h CI run success rate. This is whether automation finished cleanly, so it can stay low after failed or aborted runs even when tests and latest gate checks are green.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort(((100 * (sum by (suite) (platform_quality:suite_runs:increase_24h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success\"})) / clamp_min((sum by (suite) (platform_quality:suite_runs:increase_24h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\"})), 1)) and on(suite) ((sum by (suite) (platform_quality:suite_runs:increase_24h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\"})) > 0)) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))) - 1)))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Coverage by Suite (Latest, gate 95)",
"panel_id": 17,
"panel_type": "bargauge",
"description": "Latest suite coverage; 95%+ is acceptable and 100% is strongest.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort((max by (suite) (platform_quality:suite_coverage_percent:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))) - 1)))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Files <=500 LOC by Suite (Latest)",
"panel_id": 18,
"panel_type": "bargauge",
"description": "Percent of managed LOC-gated files at or under 500 lines. Older suite payloads fall back to 100%/0% until they emit platform_quality_gate_source_files_total.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort(((100 * clamp_min((max by (suite) (platform_quality:suite_source_files_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})) - (max by (suite) (platform_quality:suite_source_lines_over_500_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})), 0) / (max by (suite) (platform_quality:suite_source_files_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"}))) and on(suite) ((max by (suite) (platform_quality:suite_source_files_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})) > 0)) or on(suite) (100 * (1 - clamp_max((max by (suite) (platform_quality:suite_source_lines_over_500_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})), 1))) or on(suite) ((((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))) - 1)))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "CI Run Success by Suite (7d rolling)",
"panel_id": 11,
"panel_type": "state-timeline",
"description": "Seven-day rolling CI run success rate per suite. Each suite gets its own lane, so failed or aborted runs lower the lane color without implying raw test failures.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(100 * sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\",status=~\"ok|passed|success\"}))[7d:1h])) / (sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[7d:1h])))) and on(suite) ((sum by (suite) (increase((max without(instance, job) (platform_quality_gate_runs_total{suite=~\"${suite:regex}\",exported_job=\"platform-quality-ci\"}))[7d:1h]))) > 0)"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Test Category Health History",
"panel_id": 153,
"panel_type": "state-timeline",
"description": "Health by test category from memoized hourly rollups. Use the Suite filter to focus one project; skipped tests are healthy, while failures and errors lower the lane.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"avg by (category) (platform_quality:test_category_health_rate:percent_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",category=~\"api|chaos|compatibility|component|contract|e2e|integration|manual|performance|regression|reliability|security|smoke|system|ui|unit\"})"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Daily Run Volume (Selected Scope)",
"panel_id": 12,
"panel_type": "timeseries",
"description": "Twenty-four-hour rolling quality-gate run counts for the selected suite/branch scope. This is volume, not a pass-rate percentage.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sum(platform_quality:suite_runs:increase_24h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",status=~\"ok|passed|success\"}) or on() vector(0)",
"sum(platform_quality:suite_runs:increase_24h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",status!~\"ok|passed|success\"}) or on() vector(0)"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Coverage History by Suite",
"panel_id": 13,
"panel_type": "state-timeline",
"description": "Latest reported line coverage per suite over time. Coverage is separate from LOC compliance so one signal cannot hide the other.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"max by (suite) (platform_quality:suite_coverage_percent:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Files <=500 LOC History by Suite",
"panel_id": 14,
"panel_type": "state-timeline",
"description": "Percent of LOC-gated source files at or under the 500-line limit. This uses the existing file-count telemetry; longest-file history needs a new publisher metric.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(100 * clamp_min((max by (suite) (platform_quality:suite_source_files_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})) - (max by (suite) (platform_quality:suite_source_lines_over_500_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})), 0) / (max by (suite) (platform_quality:suite_source_files_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"}))) and on(suite) ((max by (suite) (platform_quality:suite_source_files_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})) > 0) or on(suite) (100 * (1 - clamp_max((max by (suite) (platform_quality:suite_source_lines_over_500_total:latest_1h{suite=~\"${suite:regex}\",branch=~\"${branch:regex}\"})), 1)))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Tests Failure Rate",
"panel_id": 130,
"panel_type": "state-timeline",
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_failed_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Coverage Failure Rate",
"panel_id": 131,
"panel_type": "state-timeline",
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_failed_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "LOC Failure Rate",
"panel_id": 132,
"panel_type": "state-timeline",
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_failed_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Style Failure Rate",
"panel_id": 133,
"panel_type": "state-timeline",
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_failed_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Gate Glue Failure Rate",
"panel_id": 134,
"panel_type": "state-timeline",
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_failed_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "SonarQube Failure Rate",
"panel_id": 135,
"panel_type": "state-timeline",
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_failed_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Supply Chain Failure Rate",
"panel_id": 136,
"panel_type": "state-timeline",
"description": "Latest bad-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are failing in the freshness window; this is not an event-count spike chart.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_failed_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Tests Healthy Rate",
"panel_id": 138,
"panel_type": "state-timeline",
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_healthy_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"tests|unit|build\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Coverage Healthy Rate",
"panel_id": 139,
"panel_type": "state-timeline",
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_healthy_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"coverage\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "LOC Healthy Rate",
"panel_id": 140,
"panel_type": "state-timeline",
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_healthy_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"loc|smell\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Style Healthy Rate",
"panel_id": 141,
"panel_type": "state-timeline",
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_healthy_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"docs|naming|hygiene|lint|docs_naming|style\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Gate Glue Healthy Rate",
"panel_id": 142,
"panel_type": "state-timeline",
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_healthy_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"gate|glue|gate_glue\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "SonarQube Healthy Rate",
"panel_id": 143,
"panel_type": "state-timeline",
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_healthy_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"sonarqube|sonar\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Supply Chain Healthy Rate",
"panel_id": 144,
"panel_type": "state-timeline",
"description": "Latest acceptable-state percentage for this check family, evaluated over time. Higher means more selected suites/checks are healthy in the freshness window; gaps mean there was no check evidence.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(((100 * (sum by (suite) (platform_quality:check_healthy_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\"})) / clamp_min((sum by (suite) (platform_quality:check_seen_flag:present_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",check=~\"ironbank|supply_chain|image_compliance|artifact_security\"})), 1))) or on(suite) ((0 * ((count by (suite) (platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}) >= bool 0)))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Problematic Tests Over Time (Top failures)",
"panel_id": 145,
"panel_type": "state-timeline",
"description": "Current outlier tests by rolling 24h failure count. A test needs at least two recent failures to appear, then falls off once it quiets down.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(sum by (suite, test) (sum_over_time(platform_quality:test_case_status:count_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",test!=\"\",test!=\"__no_test_cases__\",status=\"failed\"}[24h:1h]))) and on (suite, test) topk(12, (sum by (suite, test) (sum_over_time(platform_quality:test_case_status:count_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",test!=\"\",test!=\"__no_test_cases__\",status=\"failed\"}[24h:1h] @ end()))) >= 2)"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Most Problematic Test by Suite (7d)",
"panel_id": 147,
"panel_type": "bargauge",
"description": "Worst test per suite summed across 7d. This catches repeat offenders while keeping dashboard loads bounded; current hourly top list is quiet.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort_desc(topk by (suite) (1, (sum by (suite, test) (sum_over_time(platform_quality:test_case_status:count_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",test!=\"\",test!=\"__no_test_cases__\",status=\"failed\"}[7d:1h])))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Selected Test Pass/Fail History",
"panel_id": 146,
"panel_type": "timeseries",
"description": "Stacked hourly outcome volume for the selected suite/branch/test scope. This uses vmalert rollups only, avoiding expensive raw long-range per-test scans.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(sum(platform_quality:test_case_status:count_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",test!=\"\",test=~\"${test:regex}\",test!=\"__no_test_cases__\",status=\"passed\"}) or on() vector(0))",
"(sum(platform_quality:test_case_status:count_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",test!=\"\",test=~\"${test:regex}\",test!=\"__no_test_cases__\",status=\"failed\"}) or on() vector(0))",
"(sum(platform_quality:test_case_status:count_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",test!=\"\",test=~\"${test:regex}\",test!=\"__no_test_cases__\",status=\"skipped\"}) or on() vector(0))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Selected Test Pass Rate History",
"panel_id": 152,
"panel_type": "state-timeline",
"description": "Average pass rate per suite for the selected test filter, using memoized hourly test-case pass-rate rollups instead of raw historical scans.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"avg by (suite) (platform_quality:test_case_pass_rate:percent_1h{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",test!=\"\",test=~\"${test:regex}\",test!=\"__no_test_cases__\"})"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Tests Metrics Present by Suite",
"panel_id": 27,
"panel_type": "bargauge",
"description": "Whether suite-level test counts are present; 100% means the suite is reporting.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort((100 * (((label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\")) and on(suite) count by (suite) ({__name__=~\".*_quality_gate_tests_total\",exported_job=\"platform-quality-ci\"})))) or on(suite) (0 * (label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\"))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Checks Metrics Present by Suite",
"panel_id": 28,
"panel_type": "bargauge",
"description": "Whether gate check metrics are present; 100% means health panels have inputs.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort((100 * (((label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\")) and on(suite) count by (suite) ({__name__=~\".*_quality_gate_checks_total\",exported_job=\"platform-quality-ci\"})))) or on(suite) (0 * (label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\"))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Coverage Metrics Present by Suite",
"panel_id": 29,
"panel_type": "bargauge",
"description": "Whether coverage metrics are present; 100% means coverage panels are reliable.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort((100 * (((label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\")) and on(suite) count by (suite) (platform_quality_gate_workspace_line_coverage_percent{exported_job=\"platform-quality-ci\"})))) or on(suite) (0 * (label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\"))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "LOC Compliance Metrics Present by Suite",
"panel_id": 30,
"panel_type": "bargauge",
"description": "Whether LOC metrics are present; 100% means size panels are reliable.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort((100 * (((label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\")) and on(suite) count by (suite) (platform_quality_gate_source_lines_over_500_total{exported_job=\"platform-quality-ci\"}) and on(suite) count by (suite) (platform_quality_gate_source_files_total{exported_job=\"platform-quality-ci\"})))) or on(suite) (0 * (label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\"))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Test-Case Metrics Present by Suite",
"panel_id": 148,
"panel_type": "bargauge",
"description": "Whether per-test metrics are present; 100% enables drilldowns.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort((100 * (((label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\")) and on(suite) count by (suite) (platform_quality_gate_test_case_result{exported_job=\"platform-quality-ci\"})))) or on(suite) (0 * (label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\"))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Real Test Cases Present by Suite",
"panel_id": 151,
"panel_type": "bargauge",
"description": "Whether real test names are present; 100% means not just placeholder telemetry.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort((100 * (((label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\")) and on(suite) count by (suite) (platform_quality_gate_test_case_result{exported_job=\"platform-quality-ci\",test!=\"__no_test_cases__\"})))) or on(suite) (0 * (label_replace(vector(1), \"suite\", \"ariadne\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"metis\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"ananke\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"atlasbot\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"pegasus\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"soteria\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"titan_iac\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"bstein_home\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"data_prepper\", \"__name__\", \".*\") or label_replace(vector(1), \"suite\", \"lesavka\", \"__name__\", \".*\"))))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Primary Branch Clean by Suite (7d)",
"panel_id": 150,
"panel_type": "bargauge",
"description": "Percent clean of non-primary branch evidence; 100% means only main/master is reporting.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort((100 * (((count by (suite) (max_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}[7d:1h]))) > bool 0) unless on(suite) ((count by (suite) (max_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\",branch!~\"main|master|origin/main|origin/master|unknown\"}[7d:1h]))) > bool 0))) or on(suite) (0 * ((count by (suite) (max_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}[7d:1h]))) > bool 0)))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Recent Branch Evidence by Suite (7d)",
"panel_id": 149,
"panel_type": "bargauge",
"description": "Branches with recent CI evidence; unexpected branches can mean drift or stale work.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"sort_desc(count by (suite, branch) (max_over_time(platform_quality_gate_build_info{suite=~\"${suite:regex}\",branch!=\"\",branch=~\"${branch:regex}\",exported_job=\"platform-quality-ci\"}[7d:1h])))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "SonarQube API Up",
"panel_id": 31,
"panel_type": "stat",
"description": "Whether the SonarQube exporter can reach SonarQube; 1 is good.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(max(sonarqube_up) or on() vector(0))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Sonar Projects (Selected)",
"panel_id": 32,
"panel_type": "stat",
"description": "Selected SonarQube project count; zero means Sonar is not tracking that suite.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(count(max by (project_key) (sonarqube_project_quality_gate_pass{project_key=~\"${suite:regex}\"})) or on() vector(0))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Sonar Gate Fetch Errors",
"panel_id": 33,
"panel_type": "stat",
"description": "Sonar exporter fetch errors; zero is good because stale Sonar data misleads.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"(max(sonarqube_quality_gate_fetch_errors_total) or on() vector(0))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Sonar Gate Status Mix (Selected)",
"panel_id": 34,
"panel_type": "piechart",
"description": "Mix of Sonar gate states; OK is good and non-OK needs cleanup.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"count by (status) (max by (project_key, status) (sonarqube_project_quality_gate_pass{project_key=~\"${suite:regex}\"}))"
]
},
{
"dashboard": "Atlas Testing",
"panel_title": "Sonar Gate Health by Project",
"panel_id": 35,
"panel_type": "state-timeline",
"description": "SonarQube gate status over time by project. OK projects render as full healthy lanes; non-OK projects drop to red without disappearing.",
"tags": [
"atlas",
"testing",
"quality-gate",
"ci"
],
"datasource_uid": "atlas-vm",
"datasource_type": "prometheus",
"exprs": [
"platform_quality:sonar_gate_health_percent:latest_1h{project_key=~\"${suite:regex}\"}"
]
}
]