printer collector: Use ENUM pattern for printer status (#1500)

This commit is contained in:
Jan-Otto Kröpke
2024-07-23 13:02:09 +02:00
committed by GitHub
parent e2e1141973
commit 64c8423e61
2 changed files with 16 additions and 11 deletions

View File

@@ -158,17 +158,21 @@ func (c *collector) collectPrinterStatus(ch chan<- prometheus.Metric) error {
continue continue
} }
printerStatus, ok := printerStatusMap[printer.PrinterStatus] for printerStatus, printerStatusName := range printerStatusMap {
if !ok { isCurrentStatus := 0.0
printerStatus = "Unknown" if printerStatus == printer.PrinterStatus {
isCurrentStatus = 1.0
}
ch <- prometheus.MustNewConstMetric(
c.printerStatus,
prometheus.GaugeValue,
isCurrentStatus,
printer.Name,
printerStatusName,
)
} }
ch <- prometheus.MustNewConstMetric(
c.printerStatus,
prometheus.GaugeValue,
1,
printer.Name,
printerStatus,
)
ch <- prometheus.MustNewConstMetric( ch <- prometheus.MustNewConstMetric(
c.printerJobCount, c.printerJobCount,
prometheus.CounterValue, prometheus.CounterValue,

View File

@@ -9,12 +9,13 @@ import (
"runtime" "runtime"
"strings" "strings"
"github.com/prometheus-community/windows_exporter/pkg/types"
"github.com/alecthomas/kingpin/v2" "github.com/alecthomas/kingpin/v2"
"github.com/go-kit/log" "github.com/go-kit/log"
"github.com/go-kit/log/level" "github.com/go-kit/log/level"
"github.com/go-ole/go-ole" "github.com/go-ole/go-ole"
"github.com/go-ole/go-ole/oleutil" "github.com/go-ole/go-ole/oleutil"
"github.com/prometheus-community/windows_exporter/pkg/types"
"github.com/prometheus/client_golang/prometheus" "github.com/prometheus/client_golang/prometheus"
) )