Эксплуатация SLOzy
Раздел описывает операционные аспекты работы с SLOzy: мониторинг, производительность, резервное копирование и восстановление.
Темы
| Раздел | Описание |
|---|---|
| Мониторинг | Health checks, Prometheus метрики, алерты, cache statistics, WebSocket |
| Производительность | Кэширование запросов, пул соединений, rate limiting, оптимизация |
| Резервное копирование | pg_dump, golang-migrate, K8s CronJob |
Основные эндпоинты
bash
# Health check
GET /health → {"status":"healthy","time":"..."}
GET /ready → {"status":"ready","time":"..."}
# Prometheus метрики
GET /metrics → http_requests_total, slo_status, cache_hits, etc.Логирование
SLOzy использует rs/zerolog с форматом JSON в production:
json
{"level":"info","time":"2026-06-11T12:00:00Z","message":"Server started","port":8080}
{"level":"error","time":"2026-06-11T12:00:01Z","error":"connection refused","message":"Failed to connect to PostgreSQL"}Уровень логирования: LOG_LEVEL=info в production, LOG_LEVEL=debug для отладки.
Graceful shutdown
При получении SIGTERM/SIGINT сервис:
- Останавливает приём новых запросов
- Завершает активные соединения (таймаут 30s)
- Закрывает пул соединений с PostgreSQL
- Останавливает фоновые воркеры
Сбор метрик
SLOzy экспортирует метрики в Prometheus формате:
http_requests_total— количество HTTP запросов (code, method, path)http_request_duration_seconds— гистограмма времени ответаslo_status— статус SLO (ok/warning/critical)cache_hits/cache_misses— эффективность кэшаwebsocket_connections_total— статистика WebSocketup— доступность сервиса