process: Use registry collector for V1 data (#1814)

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
This commit is contained in:
Jan-Otto Kröpke
2024-12-21 22:58:47 +01:00
committed by GitHub
parent 39c929eefe
commit a9f8b3b722
158 changed files with 7793 additions and 7748 deletions

View File

@@ -16,6 +16,7 @@
package mssql
import (
"context"
"errors"
"fmt"
"log/slog"
@@ -26,7 +27,7 @@ import (
"github.com/alecthomas/kingpin/v2"
"github.com/prometheus-community/windows_exporter/internal/mi"
"github.com/prometheus-community/windows_exporter/internal/perfdata"
"github.com/prometheus-community/windows_exporter/internal/pdh"
"github.com/prometheus-community/windows_exporter/internal/types"
"github.com/prometheus/client_golang/prometheus"
"golang.org/x/sys/windows/registry"
@@ -273,7 +274,7 @@ func (c *Collector) Build(logger *slog.Logger, _ *mi.Session) error {
// to the provided prometheus Metric channel.
func (c *Collector) Collect(ch chan<- prometheus.Metric) error {
if len(c.mssqlInstances) == 0 {
return fmt.Errorf("no SQL instances found: %w", perfdata.ErrNoData)
return fmt.Errorf("no SQL instances found: %w", pdh.ErrNoData)
}
errCh := make(chan error, len(c.collectorFns))
@@ -368,26 +369,32 @@ func (c *Collector) mssqlGetPerfObjectName(sqlInstance string, collector string)
func (c *Collector) collect(
ch chan<- prometheus.Metric,
collector string,
perfDataCollectors map[string]*perfdata.Collector,
collectFn func(ch chan<- prometheus.Metric, sqlInstance string, perfDataCollector *perfdata.Collector) error,
perfDataCollectors map[string]*pdh.Collector,
collectFn func(ch chan<- prometheus.Metric, sqlInstance string, perfDataCollector *pdh.Collector) error,
) error {
errs := make([]error, 0, len(perfDataCollectors))
ctx := context.Background()
for sqlInstance, perfDataCollector := range perfDataCollectors {
begin := time.Now()
success := 1.0
err := collectFn(ch, sqlInstance, perfDataCollector)
duration := time.Since(begin)
if err != nil && !errors.Is(err, perfdata.ErrNoData) {
if err != nil && !errors.Is(err, pdh.ErrNoData) {
errs = append(errs, err)
success = 0.0
c.logger.Debug(fmt.Sprintf("mssql class collector %s for instance %s failed after %s", collector, sqlInstance, duration),
c.logger.LogAttrs(ctx, slog.LevelDebug, fmt.Sprintf("mssql class collector %s for instance %s failed after %s", collector, sqlInstance, duration),
slog.Any("err", err),
)
} else {
c.logger.Debug(fmt.Sprintf("mssql class collector %s for instance %s succeeded after %s", collector, sqlInstance, duration))
c.logger.LogAttrs(ctx, slog.LevelDebug, fmt.Sprintf("mssql class collector %s for instance %s succeeded after %s", collector, sqlInstance, duration))
}
if collector == "" {
continue
}
ch <- prometheus.MustNewConstMetric(