Alerting Webhooks
Faça fan out de alertas para Slack, Discord, Teams, PagerDuty ou qualquer webhook genérico. Auto-triggers ligados a slow queries, thresholds de mongostat, change watchers, completions de DataMask, e eventos de licença.
O que é
Uma tab de workspace onde você registra webhooks de saída e regras. Cada webhook tem uma URL de destino, um template de body (Slack / Discord / Teams / generic), e um header secreto opcional. Regras ligam um pattern de trigger a um ou mais webhooks — quando um sinal monitorado cruza um threshold o engine dispara o webhook com um payload JSON.
Quando usar
Conecte o chat do time de DBA ao NoSqlStudio para que um spike de slow-query pingue #db-oncall no momento em que acontece, uma completion de job DataMask poste um tick verde em #compliance, ou uma expiração de licença dispare um incidente PagerDuty 7 dias antes do prazo.
Como abrir
- No app desktop do NoSqlStudio, abra o menu Tools → Alerting, ou pressione Ctrl+Alt+Shift+A.
- Uma tab de workspace abre com duas tabs no topo: Webhooks (lista + CRUD) e Rules (pattern + threshold + picker de webhook).
- Clique em New Webhook, preencha nome + URL de destino + template de body + headers opcionais + scope. Clique em Test fire para confirmar reachability.
Construindo uma regra
- Abra a tab Rules. Clique em New Rule. Escolha um pattern de trigger no dropdown — slow query (p99 acima do threshold), métrica mongostat cruzada, change watcher disparado, DataMask completado, DB Copy terminado, evento de licença, ou qualquer combinação.
- Defina o threshold (para triggers numéricos) e o cooldown (para que um sinal barulhento não inunde o canal).
- Escolha quais webhooks disparar. Você pode fan out para múltiplos destinos a partir de uma regra.
- Clique em Simulate. O engine dispara um evento sintético e despacha o webhook para que você possa verificar formatação e roteamento sem esperar a condição real.
Auto-triggers conectados hoje
Esses sinais já estão plumbed no engine de rules — sem extra glue:
- Slow query (Profiler) — p99 acima do threshold configurado numa janela móvel.
- mongostat — cruzamentos de métrica em nível de servidor (ex.: spike de opcounters, comprimento de lock queue, page faults).
- Change Watcher — qualquer evento que combine com um filter que você definiu.
- Job DataMask — start / finish / abort com outcome e policy.
- DB Copy / DB Sync — completion com contagens de row e duração.
- Licença — ativação / desativação / expiração se aproximando.
- Audit log — patterns anômalos de linha (ex.: falhas repetidas).
Limitações (v1)
- Webhooks são disparados do main process desktop — só funcionam enquanto o app NoSqlStudio está rodando na workstation DBA. Para alerting server-side use a REST API + seu scheduler existente.
- Sem retry built-in em falha de webhook além do timeout de 10s do AbortController. Use webhook genérico + seu próprio retry sidecar se você precisa de garantias de entrega.
- Persistido em userData/Alerting/webhooks.json — faça backup como qualquer outro config; não sincronizado entre máquinas automaticamente.