Как мониторишь приложение

«Как мониторишь приложение» — вопрос из категории DevOps, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для мониторинга приложений на Go обычно использую комбинацию инструментов:

  1. Prometheus + Grafana для сбора и визуализации метрик:
import "github.com/prometheus/client_golang/prometheus"
var requestCounter = prometheus.NewCounterVec(
    prometheus.CounterOpts{
        Name: "http_requests_total",
        Help: "Total HTTP requests",
    },
    []string{"method", "path", "status"},
)
  1. Sentry для трейсинга ошибок

  2. OpenTelemetry для распределенного трейсинга

  3. Логирование через zap или logrus с structured logging:

log.WithFields(log.Fields{
    "event": "request",
    "status": status,
}).Info("Request processed")

Ключевые метрики: latency, error rate, goroutines count, memory usage. Для продакшн-мониторинга добавляю health checks, readiness/liveness пробы и алерты в Grafana.