Files
han-app/VM3_signoz/Signoz/docs/MVP_DASHBOARDS_ALERTS.md
T

90 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SigNoz MVP: dashboards и alerts
Документ фиксирует versioned-спецификацию первых панелей. Создавайте их через
SigNoz Query Builder и экспортируйте полученный Dashboard V2 JSON обратно в
репозиторий после проверки реальных имён attributes на production-like данных.
Обязательные фильтры каждой панели:
```text
service.namespace = han-chat
deployment.environment = production-like
```
Добавьте переменные `deployment.environment`, `service.name` и
`service.version`. Идентификаторы пользователей, запросов, SMS и сессий
переменными dashboard не являются.
Для Prometheus-scraped SMS/Keycloak metrics имя источника находится в bounded
datapoint label `service_name`; для OTLP signals используется resource
attribute `service.name`.
## Dashboard: HAN API RED
1. **Request rate** — rate/sum `han_http_requests_total`, group by
`http.route`, `http.request.method`.
2. **Error rate** — доля `han_http_requests_total` с
`http.response.status_class=5xx`.
3. **Latency p50/p95/p99**`han_http_request_duration_seconds`, group by
route template.
4. **Rate-limit decisions** — rate `han_rate_limit_decisions_total`, group by
`scope`, `outcome`.
5. **Bootstrap outcomes** — rate `han_auth_bootstrap_total`, group by
`outcome`.
6. **Slow/error traces** — link в Traces с `service.name=api-backend`.
## Dashboard: HAN SMS
1. **Send outcomes** — rate `sms_send_total`, group by `provider`,
`send_status`.
2. **Provider p95 latency**`sms_provider_request_duration_seconds`.
3. **Uncertain outcomes** — rate `sms_uncertain_total`.
4. **Callback result/lag**`sms_callback_total`,
`sms_callback_lag_seconds`.
5. **Oldest pending**`sms_pending_oldest_age_seconds`.
6. **Journal rows/settings**`sms_journal_rows`, `sms_settings_valid`.
7. **Worker traces**`service.name=sms-worker`, span `sms.process`.
## Dashboard: Collector health
Используйте autocomplete Metrics Explorer для фактических `otelcol_*` имён
версии Collector `0.117.0`:
1. accepted и refused spans/metric points/log records;
2. exporter sent/failed;
3. sending queue capacity/size;
4. tail-sampling sampled/dropped/late spans;
5. process RSS/CPU;
6. Prometheus scrape failures для `sms-service`, `sms-worker`, `keycloak`;
7. отсутствие данных по каждому обязательному `service.name`.
## Первые alerts
Alerts создаются после 24 часов baseline. Все правила получают owner, severity
и ссылку на `SIGNOZ_RUNBOOK.md`.
- **API 5xx:** доля 5xx > 5% в течение 5 минут.
- **API latency:** p95 выше 750 ms 10 минут; до разделения route-классов это
warning, не page.
- **SMS uncertain:** рост `sms_uncertain_total` дольше 5 минут.
- **SMS pending stale:** `sms_pending_oldest_age_seconds > 300` 5 минут.
- **SMS settings invalid:** `sms_settings_valid < 1` 5 минут.
- **Collector refused/dropped:** значение > 0 дольше 5 минут.
- **Collector queue:** заполнение > 80% 10 минут.
- **No telemetry:** обязательный production-like сервис отсутствует 10 минут
при ожидаемом трафике.
Не создавайте SLO по sampled traces. Availability/error budget рассчитываются
по metrics. Multi-window burn alerts добавляются после двух недель baseline.
## Acceptance
Dashboard считается введённым в эксплуатацию, когда:
1. панели показывают свежие данные после synthetic request;
2. фильтр release отделяет текущий rollout от предыдущего;
3. route содержит template, а не UUID/raw URI;
4. ни одна metric series не содержит user/session/request/trace identifiers;
5. alert проверен контролируемым synthetic failure;
6. экспортированный Dashboard V2 JSON сохранён рядом с этим документом.