performancecounter: fix panic with counter names having brackets (#1822)

Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
This commit is contained in:
Jan-Otto Kröpke
2024-12-27 22:12:23 +01:00
committed by GitHub
parent 78386557d4
commit 81ea4c6223
3 changed files with 48 additions and 28 deletions

View File

@@ -93,11 +93,19 @@ func (c *Collector) Close() error {
}
func (c *Collector) Build(_ *slog.Logger, _ *mi.Session) error {
var err error
var (
err error
errs []error
)
c.perfDataCollectorCPU, err = pdh.NewCollector[perfDataCounterValuesCPU]("VM Processor", pdh.InstancesTotal)
if err != nil {
return fmt.Errorf("failed to create VM Processor collector: %w", err)
errs = append(errs, fmt.Errorf("failed to create VM Processor collector: %w", err))
}
c.perfDataCollectorMemory, err = pdh.NewCollector[perfDataCounterValuesMemory]("VM Memory", nil)
if err != nil {
errs = append(errs, fmt.Errorf("failed to create VM Memory collector: %w", err))
}
c.cpuLimitMHz = prometheus.NewDesc(
@@ -143,11 +151,6 @@ func (c *Collector) Build(_ *slog.Logger, _ *mi.Session) error {
nil,
)
c.perfDataCollectorMemory, err = pdh.NewCollector[perfDataCounterValuesMemory]("VM Memory", nil)
if err != nil {
return fmt.Errorf("failed to create VM Memory collector: %w", err)
}
c.memActive = prometheus.NewDesc(
prometheus.BuildFQName(types.Namespace, Name, "mem_active_bytes"),
"The estimated amount of memory the virtual machine is actively using.",
@@ -221,7 +224,7 @@ func (c *Collector) Build(_ *slog.Logger, _ *mi.Session) error {
nil,
)
return nil
return errors.Join(errs...)
}
// Collect sends the metric values for each metric