Sobes.tech
Back to questions
Junior — Middle
89

Каким образом можно передать метрики из приложения в Grafana для визуализации и мониторинга?

Companies where asked
IDT

Answer from AI

sobes.tech AI

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

Основные шаги:

  1. В приложении на Go подключают клиентскую библиотеку Prometheus (prometheus/client_golang).
  2. Определяют и регистрируют метрики (счётчики, гистограммы, гейджи).
  3. Запускают HTTP-сервер с эндпоинтом /metrics, который отдаёт текущие значения метрик в формате, понятном Prometheus.
  4. В Prometheus настраивают сбор метрик с этого эндпоинта.
  5. Grafana подключается к Prometheus как к источнику данных и визуализирует метрики.

Пример кода на Go:

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

var (
    opsProcessed = prometheus.NewCounter(prometheus.CounterOpts{
        Name: "myapp_processed_ops_total",
        Help: "The total number of processed events",
    })
)

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

func main() {
    http.Handle("/metrics", promhttp.Handler())
    go func() {
        for {
            opsProcessed.Inc() // увеличиваем счётчик
            time.Sleep(time.Second)
        }
    }()
    http.ListenAndServe(":2112", nil)
}

Таким образом, метрики становятся доступны для сбора Prometheus и последующего отображения в Grafana.