33 lines
986 B
Go
33 lines
986 B
Go
package metrics
|
|
|
|
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)
|
|
}
|
|
}
|