Работал ли с библиотеками для Prometheus

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

Ответ

Да, работал. В Go есть официальная библиотека prometheus/client_golang для интеграции с Prometheus. Она позволяет создавать и экспортировать метрики (counter, gauge, histogram, summary) через HTTP endpoint. Пример:

import (
    "net/http"
    "github.com/prometheus/client_golang/prometheus"
    "github.com/prometheus/client_golang/prometheus/promhttp"
)

var (
    requests = prometheus.NewCounter(
        prometheus.CounterOpts{
            Name: "http_requests_total",
            Help: "Total HTTP requests",
        },
    )
)

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

func main() {
    http.Handle("/metrics", promhttp.Handler())
    http.ListenAndServe(":8080", nil)
}

Ключевые моменты:

  • Метрики регистрируются через MustRegister
  • /metrics endpoint отдает данные в формате Prometheus
  • Поддерживаются разные типы метрик (Counter, Gauge, Histogram)
  • Можно добавлять labels для многомерных метрик