mscluster: Add virtual disk metrics sub-collector (#2296)

Signed-off-by: Dominik Eisenberg <d.business@outlook.de>
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
Signed-off-by: EisenbergD <dominik.eisenberg@beiersdorf.com>
Co-authored-by: Jan-Otto Kröpke <mail@jkroepke.de>
Co-authored-by: EisenbergD <dominik.eisenberg@beiersdorf.com>
This commit is contained in:
Dominik Eisenberg
2026-02-08 21:01:53 +01:00
committed by GitHub
parent 78395afc67
commit 56c29a6280
4 changed files with 201 additions and 3 deletions

View File

@@ -39,6 +39,7 @@ const (
subCollectorResource = "resource"
subCollectorResourceGroup = "resourcegroup"
subCollectorSharedVolumes = "shared_volumes"
subCollectorVirtualDisk = "virtualdisk"
)
type Config struct {
@@ -54,6 +55,7 @@ var ConfigDefaults = Config{
subCollectorResource,
subCollectorResourceGroup,
subCollectorSharedVolumes,
subCollectorVirtualDisk,
},
}
@@ -65,6 +67,7 @@ type Collector struct {
collectorResource
collectorResourceGroup
collectorSharedVolumes
collectorVirtualDisk
config Config
miSession *mi.Session
@@ -165,6 +168,12 @@ func (c *Collector) Build(_ *slog.Logger, miSession *mi.Session) error {
}
}
if slices.Contains(c.config.CollectorsEnabled, subCollectorVirtualDisk) {
if err := c.buildVirtualDisk(); err != nil {
errs = append(errs, fmt.Errorf("failed to build virtualdisk collector: %w", err))
}
}
return errors.Join(errs...)
}
@@ -243,6 +252,12 @@ func (c *Collector) Collect(ch chan<- prometheus.Metric) error {
errCh <- fmt.Errorf("failed to collect shared_volumes metrics: %w", err)
}
}
if slices.Contains(c.config.CollectorsEnabled, subCollectorVirtualDisk) {
if err := c.collectVirtualDisk(ch); err != nil {
errCh <- fmt.Errorf("failed to collect virtualdisk metrics: %w", err)
}
}
}()
wg.Wait()