From fb5d196c2e9a7e26a56360a77493cc9593013696 Mon Sep 17 00:00:00 2001 From: kruskall <99559985+kruskall@users.noreply.github.com> Date: Wed, 6 Aug 2025 02:15:07 +0200 Subject: [PATCH 1/4] feat: replace global logging func with local logger drop remaining usage of global logging funcs --- metric/system/diskio/diskstat_windows.go | 5 ++- .../system/diskio/diskstat_windows_helper.go | 4 +- metric/system/process/process_common.go | 2 +- report/report.go | 38 ++++++++++--------- report/setup_other.go | 2 +- 5 files changed, 27 insertions(+), 24 deletions(-) diff --git a/metric/system/diskio/diskstat_windows.go b/metric/system/diskio/diskstat_windows.go index b52425b6dc..d50476ef52 100644 --- a/metric/system/diskio/diskstat_windows.go +++ b/metric/system/diskio/diskstat_windows.go @@ -23,6 +23,7 @@ package diskio import ( "errors" + "github.com/elastic/elastic-agent-libs/logp" "github.com/shirou/gopsutil/v4/disk" ) @@ -47,6 +48,6 @@ func (stat *IOStat) CalcIOStatistics(counter disk.IOCountersStat) (IOMetric, err func (stat *IOStat) CloseSampling() {} // IOCounters should map functionality to disk package for linux os. -func IOCounters(names ...string) (map[string]disk.IOCountersStat, error) { - return ioCounters(names...) +func IOCounters(logger *logp.Logger, names ...string) (map[string]disk.IOCountersStat, error) { + return ioCounters(logger, names...) } diff --git a/metric/system/diskio/diskstat_windows_helper.go b/metric/system/diskio/diskstat_windows_helper.go index 62a8cf2774..74f0f9f618 100644 --- a/metric/system/diskio/diskstat_windows_helper.go +++ b/metric/system/diskio/diskstat_windows_helper.go @@ -51,7 +51,7 @@ type logicalDrive struct { } // ioCounters gets the diskio counters and maps them to the list of counterstat objects. -func ioCounters(names ...string) (map[string]disk.IOCountersStat, error) { +func ioCounters(logger *logp.Logger, names ...string) (map[string]disk.IOCountersStat, error) { if err := enablePerformanceCounters(); err != nil { return nil, err } @@ -72,7 +72,7 @@ func ioCounters(names ...string) (map[string]disk.IOCountersStat, error) { var counter diskPerformance err = ioCounter(drive.UNCPath, &counter) if err != nil { - logp.Err("Could not return any performance counter values for %s .Error: %v", drive.UNCPath, err) + logger.Error("Could not return any performance counter values for %s .Error: %v", drive.UNCPath, err) continue } ret[drive.Name] = disk.IOCountersStat{ diff --git a/metric/system/process/process_common.go b/metric/system/process/process_common.go index 40d594bc41..04f7082962 100644 --- a/metric/system/process/process_common.go +++ b/metric/system/process/process_common.go @@ -201,7 +201,7 @@ func (procStats *Stats) Init() error { if procStats.EnableCgroups { cgReader, err := cgroup.NewReaderOptions(procStats.CgroupOpts) if errors.Is(err, cgroup.ErrCgroupsMissing) { - logp.Warn("cgroup data collection will be disabled: %v", err) + procStats.logger.Warn("cgroup data collection will be disabled: %v", err) procStats.EnableCgroups = false } else if err != nil { return fmt.Errorf("error initializing cgroup reader: %w", err) diff --git a/report/report.go b/report/report.go index c25b9eede8..0754763552 100644 --- a/report/report.go +++ b/report/report.go @@ -128,26 +128,28 @@ func InstanceCPUReporter(logger *logp.Logger, processStats *process.Stats) func( } } -func ReportSystemLoadAverage(_ monitoring.Mode, V monitoring.Visitor) { - V.OnRegistryStart() - defer V.OnRegistryFinished() +func ReportSystemLoadAverage(logger *logp.Logger) func(monitoring.Mode, monitoring.Visitor) { + return func(_ monitoring.Mode, V monitoring.Visitor) { + V.OnRegistryStart() + defer V.OnRegistryFinished() - load, err := cpu.Load() - if err != nil { - logp.Err("Error retrieving load average: %v", err) - return + load, err := cpu.Load() + if err != nil { + logger.Error("Error retrieving load average: %v", err) + return + } + avgs := load.Averages() + monitoring.ReportFloat(V, "1", avgs.OneMinute) + monitoring.ReportFloat(V, "5", avgs.FiveMinute) + monitoring.ReportFloat(V, "15", avgs.FifteenMinute) + + normAvgs := load.NormalizedAverages() + monitoring.ReportNamespace(V, "norm", func() { + monitoring.ReportFloat(V, "1", normAvgs.OneMinute) + monitoring.ReportFloat(V, "5", normAvgs.FiveMinute) + monitoring.ReportFloat(V, "15", normAvgs.FifteenMinute) + }) } - avgs := load.Averages() - monitoring.ReportFloat(V, "1", avgs.OneMinute) - monitoring.ReportFloat(V, "5", avgs.FiveMinute) - monitoring.ReportFloat(V, "15", avgs.FifteenMinute) - - normAvgs := load.NormalizedAverages() - monitoring.ReportNamespace(V, "norm", func() { - monitoring.ReportFloat(V, "1", normAvgs.OneMinute) - monitoring.ReportFloat(V, "5", normAvgs.FiveMinute) - monitoring.ReportFloat(V, "15", normAvgs.FifteenMinute) - }) } func ReportSystemCPUUsage(_ monitoring.Mode, V monitoring.Visitor) { diff --git a/report/setup_other.go b/report/setup_other.go index 54a22c9ea4..1fb7e45d49 100644 --- a/report/setup_other.go +++ b/report/setup_other.go @@ -29,6 +29,6 @@ import ( ) func SetupMetrics(logger *logp.Logger, name, version, ephemeralID string, systemMetrics *monitoring.Registry, processMetrics *monitoring.Registry) error { - logp.Warn("Metrics not implemented for this OS.") + logger.Warn("Metrics not implemented for this OS.") return nil } From e60cf5f46de0aa3fd7d1d33a4a02a9687a976fa9 Mon Sep 17 00:00:00 2001 From: kruskall <99559985+kruskall@users.noreply.github.com> Date: Wed, 6 Aug 2025 02:16:39 +0200 Subject: [PATCH 2/4] lint: update method call --- report/setup.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/report/setup.go b/report/setup.go index e148046b21..7b2f194516 100644 --- a/report/setup.go +++ b/report/setup.go @@ -113,7 +113,7 @@ func setupPlatformSpecificMetrics(logger *logp.Logger, processStats *process.Sta if isWindows() { SetupWindowsHandlesMetrics(logger, systemMetrics) } else { - monitoring.NewFunc(systemMetrics, "load", ReportSystemLoadAverage, monitoring.Report) + monitoring.NewFunc(systemMetrics, "load", ReportSystemLoadAverage(logger), monitoring.Report) } SetupLinuxBSDFDMetrics(logger, processMetrics, processStats) From a0c568c0a7e0440b8d133162d40e1ad73c328eb9 Mon Sep 17 00:00:00 2001 From: kruskall <99559985+kruskall@users.noreply.github.com> Date: Wed, 6 Aug 2025 02:19:50 +0200 Subject: [PATCH 3/4] Update diskstat_windows.go --- metric/system/diskio/diskstat_windows.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/metric/system/diskio/diskstat_windows.go b/metric/system/diskio/diskstat_windows.go index d50476ef52..c4ce6b9d5c 100644 --- a/metric/system/diskio/diskstat_windows.go +++ b/metric/system/diskio/diskstat_windows.go @@ -23,8 +23,9 @@ package diskio import ( "errors" - "github.com/elastic/elastic-agent-libs/logp" "github.com/shirou/gopsutil/v4/disk" + + "github.com/elastic/elastic-agent-libs/logp" ) // NewDiskIOStat :init DiskIOStat object. From 8ae5f1d6d8751473ca937fcad78dd4052f366699 Mon Sep 17 00:00:00 2001 From: kruskall <99559985+kruskall@users.noreply.github.com> Date: Wed, 6 Aug 2025 14:18:54 +0200 Subject: [PATCH 4/4] Apply suggestions from code review Co-authored-by: Khushi Jain --- metric/system/diskio/diskstat_windows_helper.go | 2 +- metric/system/process/process_common.go | 2 +- report/report.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/metric/system/diskio/diskstat_windows_helper.go b/metric/system/diskio/diskstat_windows_helper.go index 74f0f9f618..d511253ce4 100644 --- a/metric/system/diskio/diskstat_windows_helper.go +++ b/metric/system/diskio/diskstat_windows_helper.go @@ -72,7 +72,7 @@ func ioCounters(logger *logp.Logger, names ...string) (map[string]disk.IOCounter var counter diskPerformance err = ioCounter(drive.UNCPath, &counter) if err != nil { - logger.Error("Could not return any performance counter values for %s .Error: %v", drive.UNCPath, err) + logger.Errorf("Could not return any performance counter values for %s .Error: %v", drive.UNCPath, err) continue } ret[drive.Name] = disk.IOCountersStat{ diff --git a/metric/system/process/process_common.go b/metric/system/process/process_common.go index 04f7082962..3c197ce963 100644 --- a/metric/system/process/process_common.go +++ b/metric/system/process/process_common.go @@ -201,7 +201,7 @@ func (procStats *Stats) Init() error { if procStats.EnableCgroups { cgReader, err := cgroup.NewReaderOptions(procStats.CgroupOpts) if errors.Is(err, cgroup.ErrCgroupsMissing) { - procStats.logger.Warn("cgroup data collection will be disabled: %v", err) + procStats.logger.Warnf("cgroup data collection will be disabled: %v", err) procStats.EnableCgroups = false } else if err != nil { return fmt.Errorf("error initializing cgroup reader: %w", err) diff --git a/report/report.go b/report/report.go index 0754763552..dfc3b76c3a 100644 --- a/report/report.go +++ b/report/report.go @@ -135,7 +135,7 @@ func ReportSystemLoadAverage(logger *logp.Logger) func(monitoring.Mode, monitori load, err := cpu.Load() if err != nil { - logger.Error("Error retrieving load average: %v", err) + logger.Errorf("Error retrieving load average: %v", err) return } avgs := load.Averages()