Назад к вопросам
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, например, если количество ошибок превышает порог за определённый период. Это позволяет оперативно реагировать на проблемы в сервисе.