monitoring: alertar sobre la cuota y la papelera de MEGA
El incidente del 2026-07-25 (MEGA lleno -> dos CronJobs de backup caídos) solo se detectó por el síntoma. La causa llevaba meses creciendo sin que nada la mirase. - backup-system/mega-quota-exporter: Deployment que sondea `rclone about` y `rclone size` cada 15 min y los sirve a Prometheus vía ServiceMonitor. mega_trash_bytes (usado - visible) es la métrica que habría cazado esto. - monitoring: dos reglas de Grafana, cuota > 80% y papelera > 2GB. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -246,3 +246,93 @@ data:
|
||||
expression: B
|
||||
conditions:
|
||||
- evaluator: {params: [0], type: gt}
|
||||
|
||||
# Las dos reglas siguientes leen las métricas de
|
||||
# backup-system/mega-quota-exporter (sondea MEGA cada 15 min).
|
||||
# El 2026-07-25 la cuota de MEGA se llenó y tumbó dos CronJobs de
|
||||
# backup; no había ninguna alerta que lo viera venir.
|
||||
- uid: homelab-mega-quota-high
|
||||
title: "Cuota MEGA > 80%"
|
||||
condition: C
|
||||
for: 30m
|
||||
noDataState: NoData
|
||||
execErrState: Error
|
||||
annotations:
|
||||
summary: "☁️ Cuota de MEGA al {{ humanizePercentage $values.B.Value }}\nSi llega al 100% fallan los backups a MEGA."
|
||||
description: "El uso de la cuenta de MEGA supera el 80% de los 20GB. Revisar retenciones y papelera (mega_trash_bytes)."
|
||||
labels:
|
||||
severity: warning
|
||||
isPaused: false
|
||||
data:
|
||||
- refId: A
|
||||
relativeTimeRange: {from: 3600, to: 0}
|
||||
datasourceUid: prometheus
|
||||
model:
|
||||
editorMode: code
|
||||
expr: "mega_quota_bytes_used / mega_quota_bytes_total"
|
||||
instant: true
|
||||
refId: A
|
||||
- refId: B
|
||||
relativeTimeRange: {from: 0, to: 0}
|
||||
datasourceUid: "-100"
|
||||
model:
|
||||
type: reduce
|
||||
refId: B
|
||||
expression: A
|
||||
reducer: last
|
||||
settings:
|
||||
mode: ""
|
||||
- refId: C
|
||||
relativeTimeRange: {from: 0, to: 0}
|
||||
datasourceUid: "-100"
|
||||
model:
|
||||
type: threshold
|
||||
refId: C
|
||||
expression: B
|
||||
conditions:
|
||||
- evaluator: {params: [0.8], type: gt}
|
||||
|
||||
# Causa raíz del incidente del 2026-07-25: la papelera de MEGA cuenta
|
||||
# cuota y las rotaciones la llenaron durante meses sin que se notara.
|
||||
# Con --mega-hard-delete debería quedarse pegada a 0; si pasa de 2GB
|
||||
# es que algún borrado se está yendo a la papelera otra vez.
|
||||
- uid: homelab-mega-trash-growing
|
||||
title: "Papelera de MEGA creciendo"
|
||||
condition: C
|
||||
for: 1h
|
||||
noDataState: NoData
|
||||
execErrState: Error
|
||||
annotations:
|
||||
summary: "🗑️ Papelera de MEGA: {{ humanize1024 $values.B.Value }}B\nAlgún borrado no está usando --mega-hard-delete."
|
||||
description: "mega_trash_bytes (usado - visible) supera los 2GB. La papelera de MEGA consume cuota; revisar los scripts de backup-system."
|
||||
labels:
|
||||
severity: warning
|
||||
isPaused: false
|
||||
data:
|
||||
- refId: A
|
||||
relativeTimeRange: {from: 3600, to: 0}
|
||||
datasourceUid: prometheus
|
||||
model:
|
||||
editorMode: code
|
||||
expr: "mega_trash_bytes"
|
||||
instant: true
|
||||
refId: A
|
||||
- refId: B
|
||||
relativeTimeRange: {from: 0, to: 0}
|
||||
datasourceUid: "-100"
|
||||
model:
|
||||
type: reduce
|
||||
refId: B
|
||||
expression: A
|
||||
reducer: last
|
||||
settings:
|
||||
mode: ""
|
||||
- refId: C
|
||||
relativeTimeRange: {from: 0, to: 0}
|
||||
datasourceUid: "-100"
|
||||
model:
|
||||
type: threshold
|
||||
refId: C
|
||||
expression: B
|
||||
conditions:
|
||||
- evaluator: {params: [2147483648], type: gt}
|
||||
|
||||
Reference in New Issue
Block a user