From 95f250ed399821c2e779f01d41f98dcb1ac8640e Mon Sep 17 00:00:00 2001 From: Ben Reedy Date: Tue, 11 Jul 2023 06:17:46 +1000 Subject: [PATCH] feat: Update NPS collector for go-kit logging Signed-off-by: Ben Reedy --- collector/init.go | 6 +++--- collector/nps.go | 19 +++++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/collector/init.go b/collector/init.go index e40a0f52..a35f4cc1 100644 --- a/collector/init.go +++ b/collector/init.go @@ -276,9 +276,9 @@ var collectors = []collectorInit{ perfCounterFunc: nil, }, { - name: "nps", - builder: newNPSCollector, - perfCounterNames: nil, + name: "nps", + builder: newNPSCollector, + perfCounterFunc: nil, }, { name: "os", diff --git a/collector/nps.go b/collector/nps.go index dfd7e214..cd913c68 100644 --- a/collector/nps.go +++ b/collector/nps.go @@ -1,7 +1,10 @@ package collector import ( - "github.com/prometheus-community/windows_exporter/log" + "fmt" + + "github.com/go-kit/log" + "github.com/go-kit/log/level" "github.com/prometheus/client_golang/prometheus" "github.com/yusufpapurcu/wmi" ) @@ -9,6 +12,8 @@ import ( // A npsCollector is a Prometheus collector for WMI Win32_PerfRawData_IAS_NPSAuthenticationServer and Win32_PerfRawData_IAS_NPSAccountingServer metrics type npsCollector struct { + logger log.Logger + AccessAccepts *prometheus.Desc AccessChallenges *prometheus.Desc AccessRejects *prometheus.Desc @@ -37,9 +42,11 @@ type npsCollector struct { AccountingUnknownType *prometheus.Desc } -func newNPSCollector() (Collector, error) { +func newNPSCollector(logger log.Logger) (Collector, error) { const subsystem = "nps" + logger = log.With(logger, "collector", subsystem) return &npsCollector{ + logger: logger, AccessAccepts: prometheus.NewDesc( prometheus.BuildFQName(Namespace, subsystem, "access_accepts"), "(AccessAccepts)", @@ -198,11 +205,11 @@ func newNPSCollector() (Collector, error) { // to the provided prometheus Metric channel. func (c *npsCollector) Collect(ctx *ScrapeContext, ch chan<- prometheus.Metric) error { if desc, err := c.CollectAccept(ch); err != nil { - log.Error("failed collecting NPS accept data:", desc, err) + _ = level.Error(c.logger).Log("msg", fmt.Sprintf("failed collecting NPS accept data: %s %v", desc, err)) return err } if desc, err := c.CollectAccounting(ch); err != nil { - log.Error("failed collecting NPS accounting data:", desc, err) + _ = level.Error(c.logger).Log("msg", fmt.Sprintf("failed collecting NPS accounting data: %s %v", desc, err)) return err } return nil @@ -249,7 +256,7 @@ type Win32_PerfRawData_IAS_NPSAccountingServer struct { // to the provided prometheus Metric channel. func (c *npsCollector) CollectAccept(ch chan<- prometheus.Metric) (*prometheus.Desc, error) { var dst []Win32_PerfRawData_IAS_NPSAuthenticationServer - q := queryAll(&dst) + q := queryAll(&dst, c.logger) if err := wmi.Query(q, &dst); err != nil { return nil, err } @@ -337,7 +344,7 @@ func (c *npsCollector) CollectAccept(ch chan<- prometheus.Metric) (*prometheus.D func (c *npsCollector) CollectAccounting(ch chan<- prometheus.Metric) (*prometheus.Desc, error) { var dst []Win32_PerfRawData_IAS_NPSAccountingServer - q := queryAll(&dst) + q := queryAll(&dst, c.logger) if err := wmi.Query(q, &dst); err != nil { return nil, err }