Files
Archive/echo/internal/metrics/node.go
2024-05-30 20:33:31 +02:00

33 lines
878 B
Go

package metrics
import (
"fmt"
"github.com/Ehco1996/ehco/internal/config"
"github.com/alecthomas/kingpin/v2"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/common/promlog"
"github.com/prometheus/node_exporter/collector"
)
func RegisterNodeExporterMetrics(cfg *config.Config) error {
level := &promlog.AllowedLevel{}
// mute node_exporter logger
if err := level.Set("error"); err != nil {
return err
}
logger := promlog.New(&promlog.Config{Level: level})
// node_exporter relay on `kingpin` to enable default node collector
// see https://github.com/prometheus/node_exporter/pull/2463
if _, err := kingpin.CommandLine.Parse([]string{}); err != nil {
return err
}
nc, err := collector.NewNodeCollector(logger)
if err != nil {
return fmt.Errorf("couldn't create collector: %s", err)
}
prometheus.MustRegister(nc)
return nil
}