mirror of
https://github.com/immich-app/yucca.git
synced 2026-09-30 13:33:00 +08:00
feat(o11y): scope alerts to project=yucca, CNPG dashboard, title convention (#508)
This commit is contained in:
+10
-1
@@ -10,7 +10,10 @@ the alert rules.
|
||||
## The set
|
||||
|
||||
Every series at o11y carries `cluster` (`father` k8s / `spice` ceph / `netops`
|
||||
fabric tier / `luke` staging), `site`, `env`. Each dashboard uses a
|
||||
fabric tier / `luke` staging), `site`, `env`, and `project="yucca"`. Dashboard
|
||||
titles follow o11y's `Component / Subarea` convention (`Yucca / Overview`,
|
||||
`Ceph / Health`, `Kubernetes / Views / Global`, `Logs / michael`, …); the
|
||||
`yucca` folder is what distinguishes our copies from o11y's own. Each dashboard uses a
|
||||
`$datasource` variable — no datasource UIDs are baked in. Dashboards with logs
|
||||
panels additionally use a `$logs_datasource` variable (the VictoriaLogs grafana
|
||||
datasource); log lines carry the same `cluster`/`site`/`env` fields, stamped by
|
||||
@@ -80,6 +83,7 @@ one). Provenance and pinned versions live in the script; each dashboard's
|
||||
| `yucca-cilium.json`, `yucca-cilium-operator.json`, `yucca-hubble.json` | cilium/cilium (pinned to the deployed version; hubble http panels pruned — only dns/drop/tcp/flow/icmp metric sets are enabled) |
|
||||
| `yucca-node-exporter.json` | rfmoz/grafana-dashboards node-exporter-full |
|
||||
| `yucca-flux.json`, `yucca-flux-controllers.json` | fluxcd/flux2-monitoring-example |
|
||||
| `yucca-cnpg.json` | cloudnative-pg/grafana-dashboards, plus an appended Backups row (Barman Cloud: base-backup/PITR ages, WAL archive queue) mirroring the `yucca-database` alert group |
|
||||
| `yucca-vmagent.json` | VictoriaMetrics official vmagent board |
|
||||
|
||||
Per-user metric inventory (used by the two user dashboards): michael counts
|
||||
@@ -148,6 +152,11 @@ reason every dashboard's `$datasource` variable carries the
|
||||
|
||||
Conventions:
|
||||
|
||||
- **`project="yucca"` on every selector**: the fleet datasource serves every
|
||||
tenant's series (harbor, o11y itself, …), so each rule query is scoped to
|
||||
the project label our vmagents stamp on all yucca-owned data — without it,
|
||||
generic selectors (flux, cert-manager, k8s) fire on other tenants'
|
||||
clusters.
|
||||
- **Severity**: rules carry a `severity` label (`critical` | `warning`) for
|
||||
o11y's notification policy to route on. Every rule carries a `description`
|
||||
annotation that names the cluster/host, so a notification is actionable
|
||||
|
||||
@@ -42,8 +42,10 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
absent(last_over_time(rgw_repository_size_bytes[10m])) and on()
|
||||
count(count_over_time(rgw_repository_size_bytes[24h])) > 0
|
||||
absent(last_over_time(rgw_repository_size_bytes{project="yucca"}[10m]))
|
||||
and on()
|
||||
count(count_over_time(rgw_repository_size_bytes{project="yucca"}[24h]))
|
||||
> 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -92,11 +94,12 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
count(count by (user_id) ((time() -
|
||||
last_over_time(user_last_successful_backup[10m])) > 172800)) /
|
||||
count(count by (user_id)
|
||||
(last_over_time(user_last_successful_backup[10m]))) > 0.25 and
|
||||
on() count(count by (user_id)
|
||||
(last_over_time(user_last_successful_backup[10m]))) >= 10
|
||||
last_over_time(user_last_successful_backup{project="yucca"}[10m]))
|
||||
> 172800)) / count(count by (user_id)
|
||||
(last_over_time(user_last_successful_backup{project="yucca"}[10m])))
|
||||
> 0.25 and on() count(count by (user_id)
|
||||
(last_over_time(user_last_successful_backup{project="yucca"}[10m])))
|
||||
>= 10
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
|
||||
@@ -39,7 +39,7 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
kube_daemonset_status_number_unavailable{namespace="kube-system",
|
||||
daemonset="cilium"} > 0
|
||||
daemonset="cilium", project="yucca"} > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -86,7 +86,8 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
max by (cluster, pod, neighbor)
|
||||
(cilium_bgp_control_plane_session_state) == bool 0
|
||||
(cilium_bgp_control_plane_session_state{project="yucca"}) ==
|
||||
bool 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
|
||||
+11
-11
@@ -40,7 +40,7 @@ spec:
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
to: 0
|
||||
datasourceUid: VictoriaMetrics
|
||||
datasourceUid: VictoriaMetricsFleet
|
||||
model:
|
||||
refId: A
|
||||
instant: true
|
||||
@@ -50,7 +50,7 @@ spec:
|
||||
expr: >-
|
||||
max by (cluster)
|
||||
(last_over_time(cnpg_collector_pg_wal_archive_status{value="ready",
|
||||
cluster=~"father|luke"}[5m])) > 2
|
||||
cluster=~"father|luke", project="yucca"}[5m])) > 2
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -89,7 +89,7 @@ spec:
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
to: 0
|
||||
datasourceUid: VictoriaMetrics
|
||||
datasourceUid: VictoriaMetricsFleet
|
||||
model:
|
||||
refId: A
|
||||
instant: true
|
||||
@@ -98,9 +98,9 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
max by (cluster)
|
||||
(last_over_time(cnpg_collector_last_failed_backup_timestamp{cluster=~"father|luke"}[5m]))
|
||||
(last_over_time(cnpg_collector_last_failed_backup_timestamp{cluster=~"father|luke", project="yucca"}[5m]))
|
||||
- max by (cluster)
|
||||
(last_over_time(cnpg_collector_last_available_backup_timestamp{cluster=~"father|luke"}[5m]))
|
||||
(last_over_time(cnpg_collector_last_available_backup_timestamp{cluster=~"father|luke", project="yucca"}[5m]))
|
||||
> 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
@@ -138,7 +138,7 @@ spec:
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
to: 0
|
||||
datasourceUid: VictoriaMetrics
|
||||
datasourceUid: VictoriaMetricsFleet
|
||||
model:
|
||||
refId: A
|
||||
instant: true
|
||||
@@ -147,9 +147,9 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
(time() - max by (cluster)
|
||||
(last_over_time(cnpg_collector_last_available_backup_timestamp{cluster=~"father|luke"}[5m]))
|
||||
(last_over_time(cnpg_collector_last_available_backup_timestamp{cluster=~"father|luke", project="yucca"}[5m]))
|
||||
> 93600) and max by (cluster)
|
||||
(last_over_time(cnpg_collector_last_available_backup_timestamp{cluster=~"father|luke"}[5m]))
|
||||
(last_over_time(cnpg_collector_last_available_backup_timestamp{cluster=~"father|luke", project="yucca"}[5m]))
|
||||
> 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
@@ -187,7 +187,7 @@ spec:
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
to: 0
|
||||
datasourceUid: VictoriaMetrics
|
||||
datasourceUid: VictoriaMetricsFleet
|
||||
model:
|
||||
refId: A
|
||||
instant: true
|
||||
@@ -195,8 +195,8 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
absent(last_over_time(cnpg_collector_up[10m])) and on()
|
||||
count(count_over_time(cnpg_collector_up[24h])) > 0
|
||||
absent(last_over_time(cnpg_collector_up{project="yucca"}[10m])) and on()
|
||||
count(count_over_time(cnpg_collector_up{project="yucca"}[24h])) > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
|
||||
+14
-13
@@ -53,7 +53,7 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
last_over_time(junos_bgp_session_up{cluster="netops",
|
||||
group!="cilium-nodes"}[5m]) == bool 0
|
||||
group!="cilium-nodes", project="yucca"}[5m]) == bool 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -96,7 +96,7 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
sum(last_over_time(junos_bgp_session_up{cluster="netops",
|
||||
group!="cilium-nodes"}[5m])) == bool 0
|
||||
group!="cilium-nodes", project="yucca"}[5m])) == bool 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -139,7 +139,7 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
last_over_time(junos_bgp_session_up{cluster="netops",
|
||||
group="cilium-nodes"}[5m]) == bool 0
|
||||
group="cilium-nodes", project="yucca"}[5m]) == bool 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -182,8 +182,8 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
sum by (target)
|
||||
(last_over_time(junos_alarms_red_count{cluster="netops"}[5m])) >
|
||||
0
|
||||
(last_over_time(junos_alarms_red_count{cluster="netops",
|
||||
project="yucca"}[5m])) > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -225,8 +225,8 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
sum by (target)
|
||||
(last_over_time(junos_alarms_yellow_count{cluster="netops"}[5m]))
|
||||
> 0
|
||||
(last_over_time(junos_alarms_yellow_count{cluster="netops",
|
||||
project="yucca"}[5m])) > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -270,9 +270,9 @@ spec:
|
||||
expr: >-
|
||||
sum by (target, name) (
|
||||
rate(junos_interface_receive_errors{cluster="netops",
|
||||
name=~"ae.+|et-.+|xe-.+"}[10m]) +
|
||||
name=~"ae.+|et-.+|xe-.+", project="yucca"}[10m]) +
|
||||
rate(junos_interface_transmit_errors{cluster="netops",
|
||||
name=~"ae.+|et-.+|xe-.+"}[10m])) > 0.01
|
||||
name=~"ae.+|et-.+|xe-.+", project="yucca"}[10m])) > 0.01
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -314,7 +314,8 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
last_over_time(up{cluster="netops", job="junos"}[5m]) == bool 0
|
||||
last_over_time(up{cluster="netops", job="junos",
|
||||
project="yucca"}[5m]) == bool 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -358,9 +359,9 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
absent(sflow_ifinoctets{cluster="netops"}) and on()
|
||||
count(count_over_time(sflow_ifinoctets{cluster="netops"}[24h]))
|
||||
> 0
|
||||
absent(sflow_ifinoctets{cluster="netops", project="yucca"}) and
|
||||
on() count(count_over_time(sflow_ifinoctets{cluster="netops",
|
||||
project="yucca"}[24h])) > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
|
||||
+19
-15
@@ -47,7 +47,7 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
count by (cluster, customresource_kind, exported_namespace,
|
||||
name) (gotk_resource_info{ready="False"}) > 0
|
||||
name) (gotk_resource_info{ready="False", project="yucca"}) > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -90,8 +90,8 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
sum by (cluster, pod) (rate(
|
||||
controller_runtime_reconcile_errors_total{namespace="flux-system"}[10m]))
|
||||
> 0.02
|
||||
controller_runtime_reconcile_errors_total{namespace="flux-system",
|
||||
project="yucca"}[10m])) > 0.02
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -137,8 +137,9 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
((time() + 14 * 86400) - min by (cluster, exported_namespace,
|
||||
name) (certmanager_certificate_expiration_timestamp_seconds)) >
|
||||
0
|
||||
name)
|
||||
(certmanager_certificate_expiration_timestamp_seconds{project="yucca"}))
|
||||
> 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -181,7 +182,8 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
max by (cluster, exported_namespace, name)
|
||||
(certmanager_certificate_ready_status{condition="False"}) == 1
|
||||
(certmanager_certificate_ready_status{condition="False",
|
||||
project="yucca"}) == 1
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -223,7 +225,7 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
kube_node_status_condition{cluster=~"father|luke",
|
||||
condition="Ready", status="true"} == bool 0
|
||||
condition="Ready", status="true", project="yucca"} == bool 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -265,8 +267,8 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
increase(kube_pod_container_status_restarts_total{cluster=~"father|luke"}[30m])
|
||||
> 4
|
||||
increase(kube_pod_container_status_restarts_total{cluster=~"father|luke",
|
||||
project="yucca"}[30m]) > 4
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -309,9 +311,10 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
(1 -
|
||||
kubelet_volume_stats_available_bytes{cluster=~"father|luke"} /
|
||||
kubelet_volume_stats_capacity_bytes{cluster=~"father|luke"}) >
|
||||
0.9
|
||||
kubelet_volume_stats_available_bytes{cluster=~"father|luke",
|
||||
project="yucca"} /
|
||||
kubelet_volume_stats_capacity_bytes{cluster=~"father|luke",
|
||||
project="yucca"}) > 0.9
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -355,9 +358,10 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
(1 -
|
||||
kubelet_volume_stats_available_bytes{cluster=~"father|luke"} /
|
||||
kubelet_volume_stats_capacity_bytes{cluster=~"father|luke"}) >
|
||||
0.95
|
||||
kubelet_volume_stats_available_bytes{cluster=~"father|luke",
|
||||
project="yucca"} /
|
||||
kubelet_volume_stats_capacity_bytes{cluster=~"father|luke",
|
||||
project="yucca"}) > 0.95
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
|
||||
+16
-12
@@ -40,8 +40,9 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
sum by (cluster) (rate({__name__="http.server.request.errors",
|
||||
status=~"5.."}[5m])) / sum by (cluster)
|
||||
(rate({__name__="http.server.request.count"}[5m])) > 0.05
|
||||
status=~"5..", project="yucca"}[5m])) / sum by (cluster)
|
||||
(rate({__name__="http.server.request.count",
|
||||
project="yucca"}[5m])) > 0.05
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -84,8 +85,9 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
sum by (cluster) (rate({__name__="http.server.request.errors",
|
||||
status=~"5.."}[5m])) / sum by (cluster)
|
||||
(rate({__name__="http.server.request.count"}[5m])) > 0.2
|
||||
status=~"5..", project="yucca"}[5m])) / sum by (cluster)
|
||||
(rate({__name__="http.server.request.count",
|
||||
project="yucca"}[5m])) > 0.2
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -127,8 +129,8 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
min by (cluster, backend) ({__name__="s3.backend.healthy"}) ==
|
||||
bool 0
|
||||
min by (cluster, backend) ({__name__="s3.backend.healthy",
|
||||
project="yucca"}) == bool 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -170,7 +172,7 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
sum by (cluster) (max by (cluster, backend)
|
||||
({__name__="s3.backend.healthy"})) == bool 0
|
||||
({__name__="s3.backend.healthy", project="yucca"})) == bool 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -213,7 +215,8 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
sum by (cluster, operation)
|
||||
(rate({__name__="storage.backend.errors"}[5m])) > 0.1
|
||||
(rate({__name__="storage.backend.errors", project="yucca"}[5m]))
|
||||
> 0.1
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -256,8 +259,8 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
sum by (cluster)
|
||||
(increase({__name__="storage.cluster.unknown"}[10m])) > 0
|
||||
sum by (cluster) (increase({__name__="storage.cluster.unknown",
|
||||
project="yucca"}[10m])) > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -300,7 +303,8 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
histogram_quantile(0.99, sum by (cluster, le)
|
||||
(rate({__name__="http.server.request.ttfb_bucket"}[10m]))) > 10
|
||||
(rate({__name__="http.server.request.ttfb_bucket",
|
||||
project="yucca"}[10m]))) > 10
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -342,7 +346,7 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
kube_deployment_status_replicas_available{namespace="yucca",
|
||||
deployment="yucca-michael"} == bool 0
|
||||
deployment="yucca-michael", project="yucca"} == bool 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
|
||||
@@ -42,8 +42,10 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
absent(last_over_time(up{cluster="father"}[5m])) and on()
|
||||
count(count_over_time(up{cluster="father"}[24h])) > 0
|
||||
absent(last_over_time(up{cluster="father",
|
||||
project="yucca"}[5m])) and on()
|
||||
count(count_over_time(up{cluster="father",
|
||||
project="yucca"}[24h])) > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -84,8 +86,9 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
absent(last_over_time(up{cluster="luke"}[5m])) and on()
|
||||
count(count_over_time(up{cluster="luke"}[24h])) > 0
|
||||
absent(last_over_time(up{cluster="luke", project="yucca"}[5m]))
|
||||
and on() count(count_over_time(up{cluster="luke",
|
||||
project="yucca"}[24h])) > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -126,8 +129,10 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
absent(last_over_time(up{cluster="netops"}[5m])) and on()
|
||||
count(count_over_time(up{cluster="netops"}[24h])) > 0
|
||||
absent(last_over_time(up{cluster="netops",
|
||||
project="yucca"}[5m])) and on()
|
||||
count(count_over_time(up{cluster="netops",
|
||||
project="yucca"}[24h])) > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -169,8 +174,9 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
absent(last_over_time(up{cluster="spice"}[5m])) and on()
|
||||
count(count_over_time(up{cluster="spice"}[24h])) > 0
|
||||
absent(last_over_time(up{cluster="spice", project="yucca"}[5m]))
|
||||
and on() count(count_over_time(up{cluster="spice",
|
||||
project="yucca"}[24h])) > 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
|
||||
@@ -37,8 +37,9 @@ spec:
|
||||
intervalMs: 300000
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
sum by (cluster) (rate(api_request_count{status=~"5.."}[5m])) /
|
||||
sum by (cluster) (rate(api_request_count[5m])) > 0.05
|
||||
sum by (cluster) (rate(api_request_count{status=~"5..",
|
||||
project="yucca"}[5m])) / sum by (cluster)
|
||||
(rate(api_request_count{project="yucca"}[5m])) > 0.05
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
@@ -85,8 +86,8 @@ spec:
|
||||
maxDataPoints: 43200
|
||||
expr: >-
|
||||
kube_deployment_status_replicas_available{namespace="yucca",
|
||||
deployment=~"yucca-api|yucca-admin-api|yucca-web|yucca-meta|yucca-metrics-worker"}
|
||||
== bool 0
|
||||
deployment=~"yucca-api|yucca-admin-api|yucca-web|yucca-meta|yucca-metrics-worker",
|
||||
project="yucca"} == bool 0
|
||||
- refId: B
|
||||
relativeTimeRange:
|
||||
from: 600
|
||||
|
||||
@@ -26,13 +26,16 @@ exclusions:
|
||||
# units upstream ships; re-import would revert any local fix-ups.
|
||||
panel-units-rule:
|
||||
entries:
|
||||
- dashboard: "Yucca: Hubble"
|
||||
- dashboard: "Cilium / Hubble"
|
||||
reason: imported upstream dashboard; graph panels predate fieldConfig units
|
||||
- dashboard: "Yucca: Cilium operator"
|
||||
- dashboard: "Cilium / Operator"
|
||||
reason: imported upstream dashboard; graph panels predate fieldConfig units
|
||||
target-promql-rule:
|
||||
entries:
|
||||
- dashboard: "Yucca: Michael (restic gateway)"
|
||||
- dashboard: "Yucca / Michael"
|
||||
panel: Top source addresses (selected range)
|
||||
targetIdx: "0"
|
||||
reason: LogsQL stats query against $logs_datasource, not PromQL
|
||||
- dashboard: "CloudNativePG"
|
||||
targetIdx: "4"
|
||||
reason: grafana server-side math expression target (__expr__), not PromQL
|
||||
|
||||
@@ -1050,7 +1050,7 @@
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Yucca: Cilium operator",
|
||||
"title": "Cilium / Operator",
|
||||
"uid": "yucca-cilium-operator",
|
||||
"version": 2,
|
||||
"description": "Imported from https://raw.githubusercontent.com/cilium/cilium/v1.19.5/install/kubernetes/cilium/files/cilium-operator/dashboards/cilium-operator-dashboard.json by o11y/scripts/import-upstream.py; local edits are overwritten on re-import."
|
||||
|
||||
@@ -11047,7 +11047,7 @@
|
||||
]
|
||||
},
|
||||
"timezone": "utc",
|
||||
"title": "Yucca: Cilium agent",
|
||||
"title": "Cilium / Agent",
|
||||
"uid": "yucca-cilium",
|
||||
"version": 1,
|
||||
"weekStart": ""
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"uid": "yucca-fabric-htz-fsn1",
|
||||
"title": "Fabric: htz-fsn1 overview",
|
||||
"title": "Fabric / htz-fsn1",
|
||||
"timezone": "browser",
|
||||
"refresh": "5s",
|
||||
"time": {
|
||||
@@ -33,7 +33,9 @@
|
||||
},
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -85,7 +87,9 @@
|
||||
},
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -137,7 +141,9 @@
|
||||
},
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -189,7 +195,9 @@
|
||||
},
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -246,7 +254,9 @@
|
||||
},
|
||||
"options": {
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"]
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
]
|
||||
},
|
||||
"colorMode": "background"
|
||||
},
|
||||
@@ -294,7 +304,9 @@
|
||||
},
|
||||
"options": {
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"]
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
]
|
||||
},
|
||||
"colorMode": "background"
|
||||
},
|
||||
@@ -342,7 +354,9 @@
|
||||
},
|
||||
"options": {
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"]
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
]
|
||||
},
|
||||
"colorMode": "background"
|
||||
},
|
||||
@@ -390,7 +404,9 @@
|
||||
},
|
||||
"options": {
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"]
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
]
|
||||
},
|
||||
"colorMode": "background"
|
||||
},
|
||||
@@ -434,7 +450,9 @@
|
||||
},
|
||||
"options": {
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"]
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
]
|
||||
},
|
||||
"colorMode": "background"
|
||||
},
|
||||
@@ -477,7 +495,9 @@
|
||||
},
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -545,7 +565,9 @@
|
||||
},
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -597,7 +619,9 @@
|
||||
},
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -649,7 +673,9 @@
|
||||
},
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -696,6 +722,10 @@
|
||||
}
|
||||
]
|
||||
},
|
||||
"tags": ["fabric", "netops", "prod"],
|
||||
"tags": [
|
||||
"fabric",
|
||||
"netops",
|
||||
"prod"
|
||||
],
|
||||
"graphTooltip": 1
|
||||
}
|
||||
}
|
||||
@@ -86,7 +86,9 @@
|
||||
"id": 2,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -165,7 +167,9 @@
|
||||
"id": 3,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -252,7 +256,9 @@
|
||||
"id": 4,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -331,7 +337,9 @@
|
||||
"id": 5,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -423,7 +431,9 @@
|
||||
"id": 7,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -503,7 +513,9 @@
|
||||
"id": 8,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -582,7 +594,9 @@
|
||||
"id": 9,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -671,7 +685,9 @@
|
||||
"id": 10,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -763,7 +779,9 @@
|
||||
"id": 12,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -842,7 +860,9 @@
|
||||
"id": 13,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -871,7 +891,11 @@
|
||||
"preload": false,
|
||||
"refresh": "30s",
|
||||
"schemaVersion": 39,
|
||||
"tags": ["father", "kubernetes", "prod"],
|
||||
"tags": [
|
||||
"father",
|
||||
"kubernetes",
|
||||
"prod"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
@@ -891,8 +915,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -912,8 +940,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -933,8 +965,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -973,7 +1009,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Father: Kubernetes",
|
||||
"title": "Kubernetes / Yucca Platform",
|
||||
"uid": "yucca-father-kubernetes",
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
@@ -1739,7 +1739,7 @@
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Yucca: Flux controllers",
|
||||
"title": "Flux / Control Plane",
|
||||
"uid": "yucca-flux-controllers",
|
||||
"version": 2,
|
||||
"weekStart": "",
|
||||
|
||||
@@ -1395,7 +1395,7 @@
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Yucca: Flux cluster",
|
||||
"title": "Flux / Cluster",
|
||||
"uid": "yucca-flux",
|
||||
"version": 4,
|
||||
"weekStart": "",
|
||||
|
||||
@@ -2886,7 +2886,7 @@
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Yucca: Hubble",
|
||||
"title": "Cilium / Hubble",
|
||||
"uid": "yucca-hubble",
|
||||
"version": 24,
|
||||
"description": "Imported from https://raw.githubusercontent.com/cilium/cilium/v1.19.5/install/kubernetes/cilium/files/hubble/dashboards/hubble-dashboard.json by o11y/scripts/import-upstream.py; local edits are overwritten on re-import."
|
||||
|
||||
@@ -1349,7 +1349,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: K8s / API server",
|
||||
"title": "Kubernetes / System / API Server",
|
||||
"uid": "yucca-k8s-apiserver",
|
||||
"version": 21,
|
||||
"weekStart": ""
|
||||
|
||||
@@ -1521,7 +1521,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: K8s / CoreDNS",
|
||||
"title": "Kubernetes / System / CoreDNS",
|
||||
"uid": "yucca-k8s-coredns",
|
||||
"version": 22,
|
||||
"weekStart": ""
|
||||
|
||||
@@ -3007,7 +3007,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: K8s / Global",
|
||||
"title": "Kubernetes / Views / Global",
|
||||
"uid": "yucca-k8s-global",
|
||||
"version": 45,
|
||||
"weekStart": ""
|
||||
|
||||
@@ -2902,7 +2902,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: K8s / Namespaces",
|
||||
"title": "Kubernetes / Views / Namespaces",
|
||||
"uid": "yucca-k8s-namespaces",
|
||||
"version": 46,
|
||||
"weekStart": ""
|
||||
|
||||
@@ -3869,7 +3869,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: K8s / Nodes",
|
||||
"title": "Kubernetes / Views / Nodes",
|
||||
"uid": "yucca-k8s-nodes",
|
||||
"version": 40,
|
||||
"weekStart": ""
|
||||
|
||||
@@ -2875,7 +2875,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: K8s / Pods",
|
||||
"title": "Kubernetes / Views / Pods",
|
||||
"uid": "yucca-k8s-pods",
|
||||
"version": 39,
|
||||
"weekStart": ""
|
||||
|
||||
@@ -1090,7 +1090,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca logs: yucca-admin-api",
|
||||
"title": "Logs / yucca-admin-api",
|
||||
"uid": "yucca-logs-admin-api",
|
||||
"version": 1
|
||||
}
|
||||
@@ -963,7 +963,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca logs: meta",
|
||||
"title": "Logs / meta",
|
||||
"uid": "yucca-logs-meta",
|
||||
"version": 1
|
||||
}
|
||||
@@ -1213,7 +1213,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca logs: metrics-worker",
|
||||
"title": "Logs / metrics-worker",
|
||||
"uid": "yucca-logs-metrics-worker",
|
||||
"version": 1
|
||||
}
|
||||
@@ -1155,7 +1155,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca logs: michael",
|
||||
"title": "Logs / michael",
|
||||
"uid": "yucca-logs-michael",
|
||||
"version": 1
|
||||
}
|
||||
@@ -782,7 +782,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca logs: web",
|
||||
"title": "Logs / web",
|
||||
"uid": "yucca-logs-web",
|
||||
"version": 1
|
||||
}
|
||||
@@ -1090,7 +1090,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca logs: yucca-api",
|
||||
"title": "Logs / yucca-api",
|
||||
"uid": "yucca-logs-yucca-api",
|
||||
"version": 1
|
||||
}
|
||||
@@ -2741,8 +2741,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -2762,8 +2766,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -2783,8 +2791,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -2823,7 +2835,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: Michael (restic gateway)",
|
||||
"title": "Yucca / Michael",
|
||||
"uid": "yucca-michael",
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
@@ -15379,7 +15379,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "browser",
|
||||
"title": "Yucca: Node exporter",
|
||||
"title": "Node Exporter / Full",
|
||||
"uid": "yucca-node-exporter",
|
||||
"version": 102,
|
||||
"weekStart": "",
|
||||
|
||||
@@ -2803,7 +2803,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: Product overview",
|
||||
"title": "Yucca / Overview",
|
||||
"uid": "yucca-overview",
|
||||
"version": 3
|
||||
}
|
||||
@@ -68,7 +68,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -124,7 +126,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -179,7 +183,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -234,7 +240,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -290,7 +298,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -346,7 +356,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -433,7 +445,9 @@
|
||||
"id": 9,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -521,7 +535,9 @@
|
||||
"id": 10,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -600,7 +616,9 @@
|
||||
"id": 11,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -680,7 +698,9 @@
|
||||
"id": 12,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -773,7 +793,9 @@
|
||||
"id": 14,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -860,7 +882,9 @@
|
||||
"id": 15,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -947,7 +971,9 @@
|
||||
"id": 16,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1035,7 +1061,9 @@
|
||||
"id": 17,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1059,7 +1087,7 @@
|
||||
],
|
||||
"title": "Net stored bytes (michael estimate)",
|
||||
"type": "timeseries",
|
||||
"description": "Uploads minus deletions as counted by michael, cumulative since each replica started — resets on deploy. The RGW panels above are authoritative."
|
||||
"description": "Uploads minus deletions as counted by michael, cumulative since each replica started \u2014 resets on deploy. The RGW panels above are authoritative."
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
@@ -1115,7 +1143,9 @@
|
||||
"id": 18,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1195,7 +1225,9 @@
|
||||
"id": 19,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1296,7 +1328,9 @@
|
||||
"id": 27,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1376,7 +1410,9 @@
|
||||
"id": 28,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1456,7 +1492,9 @@
|
||||
"id": 29,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1536,7 +1574,9 @@
|
||||
"id": 30,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1560,7 +1600,7 @@
|
||||
],
|
||||
"title": "Average time to first byte by repository",
|
||||
"type": "timeseries",
|
||||
"description": "Mean time to first response byte — michael plus RGW latency, without the client's download time. Diverging from duration above means a slow client, not a slow backend."
|
||||
"description": "Mean time to first response byte \u2014 michael plus RGW latency, without the client's download time. Diverging from duration above means a slow client, not a slow backend."
|
||||
},
|
||||
{
|
||||
"collapsed": false,
|
||||
@@ -1629,7 +1669,9 @@
|
||||
"id": 21,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1709,7 +1751,9 @@
|
||||
"id": 22,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1831,7 +1875,11 @@
|
||||
"preload": false,
|
||||
"refresh": "30s",
|
||||
"schemaVersion": 39,
|
||||
"tags": ["yucca", "users", "prod"],
|
||||
"tags": [
|
||||
"yucca",
|
||||
"users",
|
||||
"prod"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
@@ -1861,8 +1909,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1882,8 +1934,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1903,8 +1959,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1958,7 +2018,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: Per-user drill-down",
|
||||
"title": "Yucca / Per User",
|
||||
"uid": "yucca-per-user",
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,14 @@
|
||||
{
|
||||
"uid": "yucca-spice-blockdb-bluefs",
|
||||
"title": "Ceph block.db / BlueFS Headroom",
|
||||
"title": "Ceph / block.db + BlueFS",
|
||||
"description": "Per-OSD block.db utilization, spillover, and the derived sizing constant for the spice cluster. Filtered to device_class=hdd throughout. Provisioned by ansible (ceph_deploy); edit the file in the repo, not in Grafana.",
|
||||
"tags": ["spice", "ceph", "bluestore", "bluefs", "prod"],
|
||||
"tags": [
|
||||
"spice",
|
||||
"ceph",
|
||||
"bluestore",
|
||||
"bluefs",
|
||||
"prod"
|
||||
],
|
||||
"timezone": "",
|
||||
"editable": true,
|
||||
"graphTooltip": 1,
|
||||
@@ -39,8 +45,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -60,8 +70,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -81,8 +95,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -177,7 +195,9 @@
|
||||
],
|
||||
"options": {
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -237,7 +257,9 @@
|
||||
],
|
||||
"options": {
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -297,7 +319,9 @@
|
||||
],
|
||||
"options": {
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -361,7 +385,9 @@
|
||||
],
|
||||
"options": {
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -638,7 +664,9 @@
|
||||
],
|
||||
"options": {
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -1297,4 +1325,4 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -97,7 +97,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -160,7 +162,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -219,7 +223,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -281,7 +287,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -349,7 +357,9 @@
|
||||
"minVizWidth": 75,
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -406,7 +416,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -492,7 +504,9 @@
|
||||
"id": 9,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -612,7 +626,9 @@
|
||||
"id": 10,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -720,7 +736,9 @@
|
||||
"id": 12,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -807,7 +825,9 @@
|
||||
"id": 13,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -894,7 +914,9 @@
|
||||
"id": 14,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -987,7 +1009,9 @@
|
||||
"id": 16,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1092,7 +1116,9 @@
|
||||
"id": 17,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1121,7 +1147,11 @@
|
||||
"preload": false,
|
||||
"refresh": "30s",
|
||||
"schemaVersion": 39,
|
||||
"tags": ["spice", "ceph", "prod"],
|
||||
"tags": [
|
||||
"spice",
|
||||
"ceph",
|
||||
"prod"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
@@ -1141,8 +1171,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1162,8 +1196,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1183,8 +1221,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1223,7 +1265,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Spice: Ceph health",
|
||||
"title": "Ceph / Health",
|
||||
"uid": "yucca-spice-ceph-health",
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
@@ -76,7 +76,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -132,7 +134,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -196,7 +200,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -252,7 +258,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -307,7 +315,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -362,7 +372,9 @@
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -450,7 +462,9 @@
|
||||
"id": 9,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -529,7 +543,9 @@
|
||||
"id": 10,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -610,7 +626,9 @@
|
||||
"id": 11,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -689,7 +707,9 @@
|
||||
"id": 12,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -781,7 +801,9 @@
|
||||
"id": 14,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -868,7 +890,9 @@
|
||||
"id": 15,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -955,7 +979,9 @@
|
||||
"id": 16,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1034,7 +1060,9 @@
|
||||
"id": 17,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1063,7 +1091,11 @@
|
||||
"preload": false,
|
||||
"refresh": "30s",
|
||||
"schemaVersion": 39,
|
||||
"tags": ["spice", "nodes", "prod"],
|
||||
"tags": [
|
||||
"spice",
|
||||
"nodes",
|
||||
"prod"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
@@ -1083,8 +1115,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1104,8 +1140,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1125,8 +1165,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1165,7 +1209,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Spice: Node fleet",
|
||||
"title": "Ceph / Nodes",
|
||||
"uid": "yucca-spice-nodes",
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
@@ -882,8 +882,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -903,8 +907,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -924,8 +932,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -968,7 +980,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Ceph Recovery / Backfill Throughput",
|
||||
"title": "Ceph / Recovery + Backfill",
|
||||
"uid": "yucca-spice-recovery-backfill",
|
||||
"weekStart": ""
|
||||
}
|
||||
}
|
||||
@@ -71,7 +71,9 @@
|
||||
"minVizWidth": 75,
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -140,7 +142,9 @@
|
||||
"orientation": "horizontal",
|
||||
"percentChangeColorMode": "standard",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -210,7 +214,9 @@
|
||||
"orientation": "horizontal",
|
||||
"percentChangeColorMode": "standard",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -321,7 +327,9 @@
|
||||
"orientation": "horizontal",
|
||||
"percentChangeColorMode": "standard",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -437,7 +445,9 @@
|
||||
"id": 11,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -561,7 +571,9 @@
|
||||
"id": 12,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -700,7 +712,9 @@
|
||||
"orientation": "vertical",
|
||||
"percentChangeColorMode": "standard",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -809,7 +823,9 @@
|
||||
"orientation": "vertical",
|
||||
"percentChangeColorMode": "standard",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -916,16 +932,23 @@
|
||||
},
|
||||
"id": 23,
|
||||
"options": {
|
||||
"displayLabels": ["name", "percent"],
|
||||
"displayLabels": [
|
||||
"name",
|
||||
"percent"
|
||||
],
|
||||
"legend": {
|
||||
"displayMode": "list",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
"values": ["value"]
|
||||
"values": [
|
||||
"value"
|
||||
]
|
||||
},
|
||||
"pieType": "donut",
|
||||
"reduceOptions": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"fields": "",
|
||||
"values": false
|
||||
},
|
||||
@@ -1048,7 +1071,9 @@
|
||||
"id": 31,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1149,7 +1174,9 @@
|
||||
"id": 32,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1257,7 +1284,9 @@
|
||||
"id": 33,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1349,7 +1378,9 @@
|
||||
"id": 34,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1465,7 +1496,9 @@
|
||||
"id": 35,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1578,7 +1611,9 @@
|
||||
"id": 41,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1670,7 +1705,9 @@
|
||||
"id": 42,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1762,7 +1799,9 @@
|
||||
"id": 43,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1870,7 +1909,9 @@
|
||||
"id": 44,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1962,7 +2003,9 @@
|
||||
"id": 45,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -2081,7 +2124,9 @@
|
||||
"id": 51,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -2182,7 +2227,9 @@
|
||||
"id": 52,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -2283,7 +2330,9 @@
|
||||
"id": 53,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -2376,7 +2425,9 @@
|
||||
"id": 54,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -2477,7 +2528,9 @@
|
||||
"id": 55,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -2591,7 +2644,9 @@
|
||||
"id": 56,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -2707,7 +2762,9 @@
|
||||
"id": 57,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -2747,7 +2804,12 @@
|
||||
"preload": false,
|
||||
"refresh": "30s",
|
||||
"schemaVersion": 42,
|
||||
"tags": ["ceph", "rgw", "s3", "spice"],
|
||||
"tags": [
|
||||
"ceph",
|
||||
"rgw",
|
||||
"s3",
|
||||
"spice"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
@@ -2767,8 +2829,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -2788,8 +2854,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -2809,8 +2879,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -2866,7 +2940,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "RGW Bucket Capacity & Performance",
|
||||
"title": "Ceph / RGW Capacity",
|
||||
"uid": "yucca-spice-rgw-capacity",
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
@@ -86,7 +86,9 @@
|
||||
"id": 2,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -166,7 +168,9 @@
|
||||
"id": 3,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -258,7 +262,9 @@
|
||||
"id": 5,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -338,7 +344,9 @@
|
||||
"id": 6,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -417,7 +425,9 @@
|
||||
"id": 7,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -496,7 +506,9 @@
|
||||
"id": 8,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -589,7 +601,9 @@
|
||||
"id": 10,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -668,7 +682,9 @@
|
||||
"id": 11,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -697,7 +713,11 @@
|
||||
"preload": false,
|
||||
"refresh": "30s",
|
||||
"schemaVersion": 39,
|
||||
"tags": ["yucca", "o11y", "pipeline"],
|
||||
"tags": [
|
||||
"yucca",
|
||||
"o11y",
|
||||
"pipeline"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
@@ -721,7 +741,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: Telemetry pipeline",
|
||||
"title": "Telemetry / Pipeline",
|
||||
"uid": "yucca-telemetry-pipeline",
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
@@ -80,7 +80,9 @@
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"reducer": [
|
||||
"sum"
|
||||
],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": true,
|
||||
@@ -177,7 +179,9 @@
|
||||
"id": 3,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -199,7 +203,7 @@
|
||||
"legendFormat": "{{customerId}}"
|
||||
}
|
||||
],
|
||||
"title": "Stored bytes — top 10 users",
|
||||
"title": "Stored bytes \u2014 top 10 users",
|
||||
"type": "timeseries"
|
||||
},
|
||||
{
|
||||
@@ -250,7 +254,9 @@
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"reducer": [
|
||||
"sum"
|
||||
],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": true,
|
||||
@@ -346,7 +352,9 @@
|
||||
"id": 5,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -438,7 +446,9 @@
|
||||
"id": 7,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -517,7 +527,9 @@
|
||||
"id": 8,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -590,7 +602,9 @@
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"reducer": [
|
||||
"sum"
|
||||
],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": true,
|
||||
@@ -680,7 +694,9 @@
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"reducer": [
|
||||
"sum"
|
||||
],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": true,
|
||||
@@ -776,7 +792,9 @@
|
||||
"id": 11,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -856,7 +874,9 @@
|
||||
"id": 12,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -936,7 +956,9 @@
|
||||
"id": 16,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1016,7 +1038,9 @@
|
||||
"id": 17,
|
||||
"options": {
|
||||
"legend": {
|
||||
"calcs": ["lastNotNull"],
|
||||
"calcs": [
|
||||
"lastNotNull"
|
||||
],
|
||||
"displayMode": "table",
|
||||
"placement": "bottom",
|
||||
"showLegend": true,
|
||||
@@ -1103,7 +1127,9 @@
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"reducer": [
|
||||
"sum"
|
||||
],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": true,
|
||||
@@ -1144,7 +1170,7 @@
|
||||
],
|
||||
"title": "Stalest successful backups (bottom 15)",
|
||||
"type": "table",
|
||||
"description": "Users whose newest successful backup is oldest — likely broken or abandoned setups."
|
||||
"description": "Users whose newest successful backup is oldest \u2014 likely broken or abandoned setups."
|
||||
},
|
||||
{
|
||||
"datasource": {
|
||||
@@ -1194,7 +1220,9 @@
|
||||
"footer": {
|
||||
"countRows": false,
|
||||
"fields": "",
|
||||
"reducer": ["sum"],
|
||||
"reducer": [
|
||||
"sum"
|
||||
],
|
||||
"show": false
|
||||
},
|
||||
"showHeader": true,
|
||||
@@ -1240,7 +1268,11 @@
|
||||
"preload": false,
|
||||
"refresh": "30s",
|
||||
"schemaVersion": 39,
|
||||
"tags": ["yucca", "users", "prod"],
|
||||
"tags": [
|
||||
"yucca",
|
||||
"users",
|
||||
"prod"
|
||||
],
|
||||
"templating": {
|
||||
"list": [
|
||||
{
|
||||
@@ -1260,8 +1292,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1281,8 +1317,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1302,8 +1342,12 @@
|
||||
"allValue": ".*",
|
||||
"current": {
|
||||
"selected": true,
|
||||
"text": ["All"],
|
||||
"value": ["$__all"]
|
||||
"text": [
|
||||
"All"
|
||||
],
|
||||
"value": [
|
||||
"$__all"
|
||||
]
|
||||
},
|
||||
"datasource": {
|
||||
"uid": "$datasource"
|
||||
@@ -1342,7 +1386,7 @@
|
||||
},
|
||||
"timepicker": {},
|
||||
"timezone": "",
|
||||
"title": "Yucca: Top users",
|
||||
"title": "Yucca / Top Users",
|
||||
"uid": "yucca-top-users",
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
@@ -9016,7 +9016,7 @@
|
||||
]
|
||||
},
|
||||
"timezone": "",
|
||||
"title": "Yucca: vmagent",
|
||||
"title": "VictoriaMetrics / vmagent",
|
||||
"uid": "yucca-vmagent",
|
||||
"version": 1
|
||||
}
|
||||
|
||||
+189
-15
@@ -22,22 +22,25 @@ CILIUM = f"https://raw.githubusercontent.com/cilium/cilium/{CILIUM_VERSION}/inst
|
||||
# uid -> (url, title, inject cluster var+matchers, anchor metric for the
|
||||
# cluster variable, extra tags, drop panels whose exprs match)
|
||||
IMPORTS = {
|
||||
"yucca-k8s-global": (f"{DOTDC}/k8s-views-global.json", "Yucca: K8s / Global", False, None, ["kubernetes"], None),
|
||||
"yucca-k8s-namespaces": (f"{DOTDC}/k8s-views-namespaces.json", "Yucca: K8s / Namespaces", False, None, ["kubernetes"], None),
|
||||
"yucca-k8s-nodes": (f"{DOTDC}/k8s-views-nodes.json", "Yucca: K8s / Nodes", False, None, ["kubernetes"], None),
|
||||
"yucca-k8s-pods": (f"{DOTDC}/k8s-views-pods.json", "Yucca: K8s / Pods", False, None, ["kubernetes"], None),
|
||||
"yucca-k8s-apiserver": (f"{DOTDC}/k8s-system-api-server.json", "Yucca: K8s / API server", False, None, ["kubernetes"], None),
|
||||
"yucca-k8s-coredns": (f"{DOTDC}/k8s-system-coredns.json", "Yucca: K8s / CoreDNS", False, None, ["kubernetes"], None),
|
||||
"yucca-cilium": (f"{CILIUM}/cilium-agent/dashboards/cilium-dashboard.json", "Yucca: Cilium agent", True, "cilium_version", ["cilium"], None),
|
||||
"yucca-cilium-operator": (f"{CILIUM}/cilium-operator/dashboards/cilium-operator-dashboard.json", "Yucca: Cilium operator", True, "cilium_operator_process_cpu_seconds_total", ["cilium"], None),
|
||||
"yucca-hubble": (f"{CILIUM}/hubble/dashboards/hubble-dashboard.json", "Yucca: Hubble", True, "hubble_flows_processed_total", ["cilium"], re.compile(r"hubble_http_")),
|
||||
"yucca-node-exporter": ("https://raw.githubusercontent.com/rfmoz/grafana-dashboards/master/prometheus/node-exporter-full.json", "Yucca: Node exporter", True, "node_uname_info", ["nodes"], None),
|
||||
"yucca-flux": ("https://raw.githubusercontent.com/fluxcd/flux2-monitoring-example/main/monitoring/configs/dashboards/cluster.json", "Yucca: Flux cluster", True, "gotk_reconcile_duration_seconds_count", ["flux"], None),
|
||||
"yucca-flux-controllers": ("https://raw.githubusercontent.com/fluxcd/flux2-monitoring-example/main/monitoring/configs/dashboards/control-plane.json", "Yucca: Flux controllers", True, "gotk_reconcile_duration_seconds_count", ["flux"], None),
|
||||
"yucca-vmagent": ("https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/vmagent.json", "Yucca: vmagent", True, 'vm_app_version{version=~"^vmagent.*"}', ["telemetry"], None),
|
||||
"yucca-k8s-global": (f"{DOTDC}/k8s-views-global.json", "Kubernetes / Views / Global", False, None, ["kubernetes"], None),
|
||||
"yucca-k8s-namespaces": (f"{DOTDC}/k8s-views-namespaces.json", "Kubernetes / Views / Namespaces", False, None, ["kubernetes"], None),
|
||||
"yucca-k8s-nodes": (f"{DOTDC}/k8s-views-nodes.json", "Kubernetes / Views / Nodes", False, None, ["kubernetes"], None),
|
||||
"yucca-k8s-pods": (f"{DOTDC}/k8s-views-pods.json", "Kubernetes / Views / Pods", False, None, ["kubernetes"], None),
|
||||
"yucca-k8s-apiserver": (f"{DOTDC}/k8s-system-api-server.json", "Kubernetes / System / API Server", False, None, ["kubernetes"], None),
|
||||
"yucca-k8s-coredns": (f"{DOTDC}/k8s-system-coredns.json", "Kubernetes / System / CoreDNS", False, None, ["kubernetes"], None),
|
||||
"yucca-cilium": (f"{CILIUM}/cilium-agent/dashboards/cilium-dashboard.json", "Cilium / Agent", True, "cilium_version", ["cilium"], None),
|
||||
"yucca-cilium-operator": (f"{CILIUM}/cilium-operator/dashboards/cilium-operator-dashboard.json", "Cilium / Operator", True, "cilium_operator_process_cpu_seconds_total", ["cilium"], None),
|
||||
"yucca-hubble": (f"{CILIUM}/hubble/dashboards/hubble-dashboard.json", "Cilium / Hubble", True, "hubble_flows_processed_total", ["cilium"], re.compile(r"hubble_http_")),
|
||||
"yucca-node-exporter": ("https://raw.githubusercontent.com/rfmoz/grafana-dashboards/master/prometheus/node-exporter-full.json", "Node Exporter / Full", True, "node_uname_info", ["nodes"], None),
|
||||
"yucca-flux": ("https://raw.githubusercontent.com/fluxcd/flux2-monitoring-example/main/monitoring/configs/dashboards/cluster.json", "Flux / Cluster", True, "gotk_reconcile_duration_seconds_count", ["flux"], None),
|
||||
"yucca-flux-controllers": ("https://raw.githubusercontent.com/fluxcd/flux2-monitoring-example/main/monitoring/configs/dashboards/control-plane.json", "Flux / Control Plane", True, "gotk_reconcile_duration_seconds_count", ["flux"], None),
|
||||
"yucca-cnpg": ("https://raw.githubusercontent.com/cloudnative-pg/grafana-dashboards/main/charts/cluster/grafana-dashboard.json", "CloudNativePG", True, "cnpg_collector_up", ["postgres"], None),
|
||||
"yucca-vmagent": ("https://raw.githubusercontent.com/VictoriaMetrics/VictoriaMetrics/master/dashboards/vmagent.json", "VictoriaMetrics / vmagent", True, 'vm_app_version{version=~"^vmagent.*"}', ["telemetry"], None),
|
||||
}
|
||||
|
||||
CLUSTER_VAR_OVERRIDE = {}
|
||||
# The CNPG dashboard already uses `$cluster` for the CNPG Cluster resource, so
|
||||
# the infra-cluster variable gets a different name there.
|
||||
CLUSTER_VAR_OVERRIDE = {"yucca-cnpg": "k8s_cluster"}
|
||||
|
||||
|
||||
def query_var(d, name, query, regex=""):
|
||||
@@ -50,11 +53,182 @@ def query_var(d, name, query, regex=""):
|
||||
raise KeyError(name)
|
||||
|
||||
|
||||
def tweak_cnpg(d):
|
||||
"""Our vmagent overwrites the `cluster` label with the infra cluster name
|
||||
(verified live: father's cnpg series carry no exported_cluster), so the
|
||||
upstream vars that regex CNPG cluster names out of series strings resolve
|
||||
to father/luke and match nothing. Re-derive them from pod names, then
|
||||
append a Backups row for the Barman Cloud plugin signals the yucca-database
|
||||
alert group (o11y/alerts/database.yaml) fires on."""
|
||||
query_var(d, "namespace", 'label_values(cnpg_collector_up{cluster=~"$k8s_cluster"}, namespace)')
|
||||
query_var(
|
||||
d,
|
||||
"cluster",
|
||||
'label_values(cnpg_collector_up{cluster=~"$k8s_cluster", namespace=~"$namespace"}, pod)',
|
||||
regex="/(?<value>.+)-[0-9]+$/",
|
||||
)
|
||||
query_var(
|
||||
d,
|
||||
"instances",
|
||||
'label_values(cnpg_collector_up{cluster=~"$k8s_cluster", namespace=~"$namespace", pod=~"$cluster-[0-9]+"}, pod)',
|
||||
)
|
||||
|
||||
sel = 'cluster=~"$k8s_cluster", namespace=~"$namespace", pod=~"$cluster-[0-9]+"'
|
||||
y = max((p["gridPos"]["y"] + p["gridPos"]["h"]) for p in d["panels"] if "gridPos" in p)
|
||||
ids = 9000
|
||||
|
||||
def ds():
|
||||
return {"uid": "$datasource"}
|
||||
|
||||
def stat(title, expr, x, w, thresholds, unit="s", description=None):
|
||||
nonlocal ids
|
||||
ids += 1
|
||||
p = {
|
||||
"datasource": ds(),
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {"mode": "thresholds"},
|
||||
"mappings": [],
|
||||
"thresholds": {"mode": "absolute", "steps": thresholds},
|
||||
"unit": unit,
|
||||
},
|
||||
"overrides": [],
|
||||
},
|
||||
"gridPos": {"h": 5, "w": w, "x": x, "y": y + 1},
|
||||
"id": ids,
|
||||
"options": {
|
||||
"colorMode": "value",
|
||||
"graphMode": "area",
|
||||
"justifyMode": "auto",
|
||||
"orientation": "auto",
|
||||
"reduceOptions": {"calcs": ["lastNotNull"], "fields": "", "values": False},
|
||||
"textMode": "auto",
|
||||
"wideLayout": True,
|
||||
},
|
||||
"targets": [{"datasource": ds(), "refId": "A", "expr": expr}],
|
||||
"title": title,
|
||||
"type": "stat",
|
||||
}
|
||||
if description:
|
||||
p["description"] = description
|
||||
return p
|
||||
|
||||
def ts(title, targets, x, w, unit="short"):
|
||||
nonlocal ids
|
||||
ids += 1
|
||||
return {
|
||||
"datasource": ds(),
|
||||
"fieldConfig": {
|
||||
"defaults": {
|
||||
"color": {"mode": "palette-classic"},
|
||||
"custom": {
|
||||
"axisCenteredZero": False,
|
||||
"axisPlacement": "auto",
|
||||
"drawStyle": "line",
|
||||
"fillOpacity": 10,
|
||||
"gradientMode": "none",
|
||||
"lineInterpolation": "linear",
|
||||
"lineWidth": 2,
|
||||
"pointSize": 5,
|
||||
"scaleDistribution": {"type": "linear"},
|
||||
"showPoints": "never",
|
||||
"spanNulls": True,
|
||||
"stacking": {"group": "A", "mode": "none"},
|
||||
"thresholdsStyle": {"mode": "off"},
|
||||
},
|
||||
"mappings": [],
|
||||
"thresholds": {"mode": "absolute", "steps": [{"color": "green", "value": 0}]},
|
||||
"unit": unit,
|
||||
},
|
||||
"overrides": [],
|
||||
},
|
||||
"gridPos": {"h": 8, "w": w, "x": x, "y": y + 6},
|
||||
"id": ids,
|
||||
"options": {
|
||||
"legend": {"calcs": ["lastNotNull"], "displayMode": "table", "placement": "bottom", "showLegend": True},
|
||||
"tooltip": {"mode": "multi", "sort": "desc"},
|
||||
},
|
||||
"targets": targets,
|
||||
"title": title,
|
||||
"type": "timeseries",
|
||||
}
|
||||
|
||||
def tgt(expr, ref="A", legend=None):
|
||||
t = {"datasource": ds(), "refId": ref, "expr": expr}
|
||||
if legend:
|
||||
t["legendFormat"] = legend
|
||||
return t
|
||||
|
||||
ids += 1
|
||||
d["panels"].append(
|
||||
{"collapsed": False, "gridPos": {"h": 1, "w": 24, "x": 0, "y": y}, "id": ids, "panels": [], "title": "Backups (Barman Cloud)", "type": "row"}
|
||||
)
|
||||
d["panels"].append(
|
||||
stat(
|
||||
"Last base backup age",
|
||||
f"time() - max(cnpg_collector_last_available_backup_timestamp{{{sel}}})",
|
||||
0,
|
||||
6,
|
||||
[{"color": "green", "value": 0}, {"color": "yellow", "value": 93600}, {"color": "red", "value": 172800}],
|
||||
description="Schedule is daily; a value of ~forever means no base backup has ever succeeded.",
|
||||
)
|
||||
)
|
||||
d["panels"].append(
|
||||
stat(
|
||||
"PITR window (first recoverability point age)",
|
||||
f"time() - max(cnpg_collector_first_recoverability_point{{{sel}}})",
|
||||
6,
|
||||
6,
|
||||
[{"color": "red", "value": 0}, {"color": "yellow", "value": 86400}, {"color": "green", "value": 604800}],
|
||||
)
|
||||
)
|
||||
d["panels"].append(
|
||||
stat(
|
||||
"Last failed backup age",
|
||||
f"time() - max(cnpg_collector_last_failed_backup_timestamp{{{sel}}})",
|
||||
12,
|
||||
6,
|
||||
[{"color": "red", "value": 0}, {"color": "green", "value": 93600}],
|
||||
description="Red while the most recent failure is fresher than the daily schedule.",
|
||||
)
|
||||
)
|
||||
d["panels"].append(
|
||||
stat(
|
||||
"WAL segments awaiting archive",
|
||||
f'max(cnpg_collector_pg_wal_archive_status{{value="ready", {sel}}})',
|
||||
18,
|
||||
6,
|
||||
[{"color": "green", "value": 0}, {"color": "yellow", "value": 1}, {"color": "red", "value": 3}],
|
||||
unit="short",
|
||||
description="Sustained queue = WAL archiving to RGW is broken and the PITR window stops advancing.",
|
||||
)
|
||||
)
|
||||
d["panels"].append(
|
||||
ts(
|
||||
"WAL archive status",
|
||||
[tgt(f"sum by (value) (cnpg_collector_pg_wal_archive_status{{{sel}}})", "A", "{{value}}")],
|
||||
0,
|
||||
12,
|
||||
)
|
||||
)
|
||||
d["panels"].append(
|
||||
ts(
|
||||
"WAL generation",
|
||||
[
|
||||
tgt(f"sum(rate(cnpg_collector_wal_bytes{{{sel}}}[$__rate_interval]))", "A", "bytes/s"),
|
||||
],
|
||||
12,
|
||||
12,
|
||||
unit="Bps",
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def tweak_flux_control_plane(d):
|
||||
query_var(d, "namespace", 'label_values(workqueue_work_duration_seconds_count{cluster=~"$cluster"}, namespace)')
|
||||
|
||||
|
||||
TWEAKS = {"yucca-flux-controllers": tweak_flux_control_plane}
|
||||
TWEAKS = {"yucca-cnpg": tweak_cnpg, "yucca-flux-controllers": tweak_flux_control_plane}
|
||||
|
||||
|
||||
def inject_cluster(expr, var):
|
||||
|
||||
Reference in New Issue
Block a user