groups: - name: garage rules: - alert: GarageNodeDown expr: up{job="garage"} == 0 for: 2m labels: severity: critical annotations: summary: Garage node {{ $labels.instance }} is down - alert: GarageNoQuorum expr: (count(up{job="garage"} == 1) < 2) for: 2m labels: severity: critical annotations: summary: Garage cluster lost quorum (<2 nodes up) - alert: GarageResyncErrors expr: block_resync_errored_blocks > 0 for: 10m labels: severity: warning annotations: summary: Garage resync errors on {{ $labels.instance }} - alert: GarageNodeUnstable expr: cluster_layout_node_connected == 0 for: 5m labels: severity: warning annotations: summary: Garage RPC health of some node is down - name: tproxy rules: - alert: TProxyDown expr: up{job="tproxy"} == 0 for: 2m labels: severity: critical annotations: summary: tproxy-server (vps03) is down or unreachable - alert: TProxyBackendErrors expr: increase(tproxy_backend_dial_failures_total[5m]) > 0 for: 10m labels: severity: warning annotations: summary: tproxy-server backend dial failures (MTProxy unreachable) - name: vinograd rules: - alert: VinogradRostelecomDown expr: probe_success{job="vinograd_wan"} == 0 for: 2m labels: severity: critical annotations: summary: Vinograd WAN (Ростелеком) {{ $labels.instance }} is down or unreachable