50 lines
1.7 KiB
Markdown
50 lines
1.7 KiB
Markdown
# Мониторинг и алертинг
|
|
|
|
---
|
|
|
|
## Базовый мониторинг (нужен всегда)
|
|
|
|
### Health endpoints
|
|
```python
|
|
GET /health → {"status": "healthy", "version": "1.0.0", "db": "connected"}
|
|
GET /api/v1/health → {"status": "healthy", "api_version": "v1"}
|
|
```
|
|
|
|
### Метрики
|
|
Собираются через middleware и хранятся в БД:
|
|
- Время ответа (p50/p95/p99)
|
|
- Количество запросов (всего, по endpoint'ам)
|
|
- Количество ошибок (4xx, 5xx)
|
|
- Статус внешних сервисов (БД, Redis, AI провайдеры)
|
|
|
|
---
|
|
|
|
## Production мониторинг
|
|
|
|
### Prometheus + Grafana (рекомендовано)
|
|
|
|
| Компонент | Метрики |
|
|
|-----------|---------|
|
|
| Application | Время ответа, ошибки, request rate |
|
|
| Database | Connection pool, query time |
|
|
| Redis | Memory, hits/misses |
|
|
| Celery | Task queue length, execution time |
|
|
| System | CPU, RAM, disk, network |
|
|
|
|
### Алерты
|
|
|
|
| Условие | Действие |
|
|
|---------|----------|
|
|
| error rate > 1% | Уведомление в Telegram/Slack |
|
|
| API response p95 > 1s | Уведомление |
|
|
| DB connection pool > 80% | Предупреждение |
|
|
| Service down | PagerDuty / звонок |
|
|
|
|
---
|
|
|
|
## [ASK]
|
|
|
|
- Нужен ли мониторинг на старте? (базовый — да, Prometheus — перед production)
|
|
- Отправлять ли алерты? (да, если есть кто-то кто на них реагирует)
|
|
- Какой канал для алертов? (Telegram — простой, PagerDuty — профессиональный)
|