Назад к вопросам
Junior — Middle
88
Каким образом можно передать метрики из приложения в Grafana для визуализации и мониторинга?
Компании, где спрашивали
IDT
Ответ от нейросети
sobes.tech AI
Для передачи метрик из приложения на Go в Grafana обычно используют систему мониторинга Prometheus, которая хорошо интегрируется с Grafana.
Основные шаги:
- В приложении на Go подключают клиентскую библиотеку Prometheus (prometheus/client_golang).
- Определяют и регистрируют метрики (счётчики, гистограммы, гейджи).
- Запускают HTTP-сервер с эндпоинтом
/metrics, который отдаёт текущие значения метрик в формате, понятном Prometheus. - В Prometheus настраивают сбор метрик с этого эндпоинта.
- 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.