Fix logging race in systemd_linux.go

The same variable was used for timing every parallel operation.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
This commit is contained in:
Bryan Boreham 2025-07-26 18:15:02 +01:00
parent 05c68e2040
commit 058adc0e5d

View file

@ -228,7 +228,7 @@ func (c *systemdCollector) Update(ch chan<- prometheus.Metric) error {
wg.Add(1)
go func() {
defer wg.Done()
begin = time.Now()
begin := time.Now()
c.collectUnitStatusMetrics(conn, ch, units)
c.logger.Debug("collectUnitStatusMetrics took", "duration_seconds", time.Since(begin).Seconds())
}()
@ -237,7 +237,7 @@ func (c *systemdCollector) Update(ch chan<- prometheus.Metric) error {
wg.Add(1)
go func() {
defer wg.Done()
begin = time.Now()
begin := time.Now()
c.collectUnitStartTimeMetrics(conn, ch, units)
c.logger.Debug("collectUnitStartTimeMetrics took", "duration_seconds", time.Since(begin).Seconds())
}()
@ -247,7 +247,7 @@ func (c *systemdCollector) Update(ch chan<- prometheus.Metric) error {
wg.Add(1)
go func() {
defer wg.Done()
begin = time.Now()
begin := time.Now()
c.collectUnitTasksMetrics(conn, ch, units)
c.logger.Debug("collectUnitTasksMetrics took", "duration_seconds", time.Since(begin).Seconds())
}()
@ -257,7 +257,7 @@ func (c *systemdCollector) Update(ch chan<- prometheus.Metric) error {
wg.Add(1)
go func() {
defer wg.Done()
begin = time.Now()
begin := time.Now()
c.collectTimers(conn, ch, units)
c.logger.Debug("collectTimers took", "duration_seconds", time.Since(begin).Seconds())
}()
@ -266,13 +266,13 @@ func (c *systemdCollector) Update(ch chan<- prometheus.Metric) error {
wg.Add(1)
go func() {
defer wg.Done()
begin = time.Now()
begin := time.Now()
c.collectSockets(conn, ch, units)
c.logger.Debug("collectSockets took", "duration_seconds", time.Since(begin).Seconds())
}()
if systemdVersion >= minSystemdVersionSystemState {
begin = time.Now()
begin := time.Now()
err = c.collectSystemState(conn, ch)
c.logger.Debug("collectSystemState took", "duration_seconds", time.Since(begin).Seconds())
}