Sobes.tech
Назад к вопросам
Senior
3

Ты сам что-нибудь описывал для observability — метрики, алерты?

Компании, где спрашивали
VK Live

Ответ от нейросети

sobes.tech AI

Для observability в проектах на Go я описывал метрики с помощью библиотеки Prometheus client_golang. Обычно создавал счётчики (Counters) для подсчёта событий, гистограммы (Histograms) для измерения времени выполнения и Gauge для текущих значений.

Пример создания и регистрации метрики:

var httpRequestsTotal = prometheus.NewCounterVec(
    prometheus.CounterOpts{
        Name: "http_requests_total",
        Help: "Количество HTTP запросов",
    },
    []string{"method", "endpoint"},
)

func init() {
    prometheus.MustRegister(httpRequestsTotal)
}

func handler(w http.ResponseWriter, r *http.Request) {
    httpRequestsTotal.WithLabelValues(r.Method, r.URL.Path).Inc()
    // обработка запроса
}

Для алертов обычно настраивал правила в Prometheus Alertmanager, например, если количество ошибок превышает порог за определённый период. Это позволяет оперативно реагировать на проблемы в сервисе.