hyperv: fix Windows Server 2016 compatibility (#1925)

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
This commit is contained in:
Jan-Otto Kröpke
2025-03-14 19:28:48 +01:00
committed by GitHub
parent d58f8c59c6
commit bc1b40c679
4 changed files with 34 additions and 24 deletions

View File

@@ -148,7 +148,7 @@ func (c *Collector) Close() error {
return nil
}
func (c *Collector) Build(_ *slog.Logger, _ *mi.Session) error {
func (c *Collector) Build(logger *slog.Logger, _ *mi.Session) error {
c.collectorFns = make([]func(ch chan<- prometheus.Metric) error, 0, len(c.config.CollectorsEnabled))
c.closeFns = make([]func(), 0, len(c.config.CollectorsEnabled))
@@ -224,9 +224,10 @@ func (c *Collector) Build(_ *slog.Logger, _ *mi.Session) error {
close: c.perfDataCollectorVirtualNetworkAdapterDropReasons.Close,
},
subCollectorVirtualSMB: {
build: c.buildVirtualSMB,
collect: c.collectVirtualSMB,
close: c.perfDataCollectorVirtualSMB.Close,
build: c.buildVirtualSMB,
collect: c.collectVirtualSMB,
close: c.perfDataCollectorVirtualSMB.Close,
minBuildNumber: osversion.LTSC2022,
},
subCollectorVirtualStorageDevice: {
build: c.buildVirtualStorageDevice,
@@ -253,7 +254,10 @@ func (c *Collector) Build(_ *slog.Logger, _ *mi.Session) error {
}
if buildNumber < subCollectors[name].minBuildNumber {
errs = append(errs, fmt.Errorf("collector %s requires Windows Server 2022 or newer", name))
logger.Warn(fmt.Sprintf(
"collector %s requires windows build version %d. Current build version: %d",
name, subCollectors[name].minBuildNumber, buildNumber,
), slog.String("collector", name))
continue
}