From 3dc656b6a2fab33d06960cce396b9831caae5134 Mon Sep 17 00:00:00 2001 From: Sergey Petrov Date: Mon, 31 Mar 2025 14:28:11 +0500 Subject: [PATCH] Refactoring. --- writer/cmd/main.go | 19 +------------------ writer/internal/metrics/metrics.go | 26 +++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/writer/cmd/main.go b/writer/cmd/main.go index fc35960..edf2e58 100644 --- a/writer/cmd/main.go +++ b/writer/cmd/main.go @@ -3,11 +3,6 @@ package main import ( "fmt" "git.insit.tech/psa/rtsp_reader-writer/writer/internal/metrics" - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/collectors" - "github.com/prometheus/client_golang/prometheus/promhttp" - "log" - "net/http" "time" "git.insit.tech/psa/rtsp_reader-writer/writer/internal/config" @@ -17,14 +12,7 @@ import ( ) func main() { - // Регистрируем стандартные метрики - appRegistry := prometheus.NewRegistry() - appRegistry.MustRegister(collectors.NewGoCollector()) - appRegistry.MustRegister(collectors.NewProcessCollector(collectors.ProcessCollectorOpts{})) - appRegistry.MustRegister(metrics.ActiveCameras) - - //// Эндпоинт для метрик - http.Handle("/metrics", promhttp.HandlerFor(appRegistry, promhttp.HandlerOpts{})) + go metrics.Metrics() config.LogsDirectory = log2.DirCreator(config.Local, "logs") logger.Log = log2.MainLogging( @@ -32,10 +20,5 @@ func main() { rtsp.StartWriter() - // Запуск сервера на порту 9110 - err := http.ListenAndServe(":9110", nil) - if err != nil { - log.Println(err) - } select {} } diff --git a/writer/internal/metrics/metrics.go b/writer/internal/metrics/metrics.go index 56f9f33..2500307 100644 --- a/writer/internal/metrics/metrics.go +++ b/writer/internal/metrics/metrics.go @@ -1,8 +1,32 @@ package metrics -import "github.com/prometheus/client_golang/prometheus" +import ( + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/collectors" + "github.com/prometheus/client_golang/prometheus/promhttp" + "log" + "net/http" +) var ActiveCameras = prometheus.NewGauge(prometheus.GaugeOpts{ Name: "active_rtsp_cameras_total", Help: "Количество активных rtsp потоков (работающих горутин) для камер.", }) + +// Metrics establish metrics for an application. +func Metrics() { + // Register standart metrics. + appRegistry := prometheus.NewRegistry() + appRegistry.MustRegister(collectors.NewGoCollector()) + appRegistry.MustRegister(collectors.NewProcessCollector(collectors.ProcessCollectorOpts{})) + appRegistry.MustRegister(ActiveCameras) + + //// Endpoint for metrics. + http.Handle("/metrics", promhttp.HandlerFor(appRegistry, promhttp.HandlerOpts{})) + + // Start server. + err := http.ListenAndServe(":9110", nil) + if err != nil { + log.Println(err) + } +}