diff --git a/metric/system/diskio/diskstat_windows.go b/metric/system/diskio/diskstat_windows.go index b52425b6d..c4ce6b9d5 100644 --- a/metric/system/diskio/diskstat_windows.go +++ b/metric/system/diskio/diskstat_windows.go @@ -24,6 +24,8 @@ import ( "errors" "github.com/shirou/gopsutil/v4/disk" + + "github.com/elastic/elastic-agent-libs/logp" ) // NewDiskIOStat :init DiskIOStat object. @@ -47,6 +49,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 62a8cf277..d511253ce 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.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 742e44c2e..5e4460275 100644 --- a/metric/system/process/process_common.go +++ b/metric/system/process/process_common.go @@ -203,7 +203,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.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 c25b9eede..dfc3b76c3 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.Errorf("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.go b/report/setup.go index e148046b2..7b2f19451 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) diff --git a/report/setup_other.go b/report/setup_other.go index 54a22c9ea..1fb7e45d4 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 }