Skip to content

Эксплуатация 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 сервис:

  1. Останавливает приём новых запросов
  2. Завершает активные соединения (таймаут 30s)
  3. Закрывает пул соединений с PostgreSQL
  4. Останавливает фоновые воркеры

Сбор метрик

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 — статистика WebSocket
  • up — доступность сервиса