Alerting Webhooks
Haga fan out de alertas a Slack, Discord, Teams, PagerDuty o cualquier webhook genérico. Auto-triggers atados a slow queries, thresholds de mongostat, change watchers, completions de DataMask, y eventos de licencia.
Qué es
Un tab de workspace donde registra webhooks de salida y reglas. Cada webhook tiene una URL de destino, un template de body (Slack / Discord / Teams / generic), y un header secreto opcional. Reglas atan un pattern de trigger a uno o más webhooks — cuando una señal monitoreada cruza un threshold el engine dispara el webhook con un payload JSON.
Cuándo usar
Conecte el chat del equipo DBA a NoSqlStudio para que un spike de slow-query pingue #db-oncall en el momento que sucede, una completion de job DataMask postee un tick verde en #compliance, o una expiración de licencia dispare un incidente PagerDuty 7 días antes del plazo.
Cómo abrirlo
- En el app desktop del NoSqlStudio, abra el menú Tools → Alerting, o presione Ctrl+Alt+Shift+A.
- Un tab de workspace abre con dos tabs arriba: Webhooks (lista + CRUD) y Rules (pattern + threshold + picker de webhook).
- Haga clic en New Webhook, llene nombre + URL de destino + template de body + headers opcionales + scope. Haga clic en Test fire para confirmar reachability.
Construyendo una regla
- Abra el tab Rules. Haga clic en New Rule. Elija un pattern de trigger en el dropdown — slow query (p99 arriba del threshold), métrica mongostat cruzada, change watcher disparado, DataMask completado, DB Copy terminado, evento de licencia, o cualquier combinación.
- Defina el threshold (para triggers numéricos) y el cooldown (para que una señal ruidosa no inunde el canal).
- Elija qué webhooks disparar. Puede fan out a múltiples destinos desde una regla.
- Haga clic en Simulate. El engine dispara un evento sintético y despacha el webhook para que pueda verificar formateo y routing sin esperar la condición real.
Auto-triggers conectados hoy
Esos signals ya están plumbed en el engine de rules — sin extra glue:
- Slow query (Profiler) — p99 arriba del threshold configurado en una ventana móvil.
- mongostat — cruces de métrica a nivel de servidor (ej.: spike de opcounters, longitud de lock queue, page faults).
- Change Watcher — cualquier evento que combine con un filter que definió.
- Job DataMask — start / finish / abort con outcome y policy.
- DB Copy / DB Sync — completion con conteos de row y duración.
- Licencia — activación / desactivación / expiración acercándose.
- Audit log — patterns anómalos de línea (ej.: fallos repetidos).
Limitaciones (v1)
- Webhooks son disparados del main process desktop — solo funcionan mientras el app NoSqlStudio está corriendo en la workstation DBA. Para alerting server-side use la REST API + su scheduler existente.
- Sin retry built-in en fallo de webhook más allá del timeout de 10s del AbortController. Use webhook genérico + su propio retry sidecar si necesita garantías de entrega.
- Persistido en userData/Alerting/webhooks.json — haga backup como cualquier otro config; no sincronizado entre máquinas automáticamente.