> Как понять, что сервис в продакшн работает корректно (Go)

Уровень: senior · Роль: backend · Язык: Go · Категория: Технические вопросы

Компании: VK

Стек: Go

> Пример ответа

Чтобы убедиться, что сервис в продакшене работает корректно, нужно опираться на три ключевых аспекта: метрики, логи и мониторинг здоровья.

  1. Метрики (Metrics): В Go стандартный подход - экспортировать метрики через Prometheus (например, с помощью библиотеки prometheus/client_golang). Ключевые метрики:

    • RED-метрики: Rate (количество запросов в секунду), Errors (количество ошибок, например, HTTP 5xx), Duration (латентность, p50/p95/p99).
    • Saturation: загрузка CPU, память, количество горутин, размер очередей (если есть).
    • Business-метрики: например, количество обработанных заказов, если сервис их создает.
  2. Логи (Logging): Используйте структурированное логирование (например, logrus или zap). В продакшене критичны уровни ERROR и WARN. Настройте централизованный сбор логов (ELK, Loki) и алерты на частые ошибки (например, паника, превышение таймаутов).

  3. Health Checks: Реализуйте эндпоинты /health (проверка зависимостей: БД, Redis, внешние API) и /ready (готовность принимать трафик). В Go это можно сделать через net/http с возвратом 200 или 503.

  4. Трассировка (Tracing): Для распределенных систем используйте OpenTelemetry - это поможет понять, где именно возникает задержка (например, в вызове БД или внешнего сервиса).

  5. Алерты: Настройте оповещения на основе метрик (например, если p99 latency > 500ms или error rate > 1% за 5 минут). Инструменты: Prometheus + Alertmanager, Grafana.

Пример простого health check в Go:

GO
http.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) {
if db.Ping() != nil {
w.WriteHeader(http.StatusServiceUnavailable)
return
}
w.WriteHeader(http.StatusOK)
})

Итог: корректность работы - это не только отсутствие ошибок, но и соответствие SLA по скорости и доступности. Регулярно смотрите дашборды и реагируйте на алерты.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью