mirror of
https://github.com/bolucat/Archive.git
synced 2025-10-06 00:27:31 +08:00
33 lines
878 B
Go
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
|
|
}
|