// Fetch fetches filesystem metrics for all mounted filesystems and returns // a single event containing aggregated data. func (m *MetricSet) Fetch() (common.MapStr, error) { fss, err := system.GetFileSystemList() if err != nil { return nil, errors.Wrap(err, "filesystem list") } // These values are optional and could also be calculated by Kibana var totalFiles, totalSize, totalSizeFree, totalSizeUsed uint64 for _, fs := range fss { fsStat, err := system.GetFileSystemStat(fs) if err != nil { debugf("error fetching filesystem stats for '%s': %v", fs.DirName, err) continue } totalFiles += fsStat.Files totalSize += fsStat.Total totalSizeFree += fsStat.Free totalSizeUsed += fsStat.Used } return common.MapStr{ "total_size": common.MapStr{ "free": totalSizeFree, "used": totalSizeUsed, "total": totalSize, }, "count": len(fss), "total_files": totalFiles, }, nil }
// Fetch fetches filesystem metrics for all mounted filesystems and returns // an event for each mount point. func (m *MetricSet) Fetch() ([]common.MapStr, error) { fss, err := system.GetFileSystemList() if err != nil { return nil, errors.Wrap(err, "filesystem list") } filesSystems := make([]common.MapStr, 0, len(fss)) for _, fs := range fss { fsStat, err := system.GetFileSystemStat(fs) if err != nil { debugf("error getting filesystem stats for '%s': %v", fs.DirName, err) continue } system.AddFileSystemUsedPercentage(fsStat) filesSystems = append(filesSystems, system.GetFilesystemEvent(fsStat)) } return filesSystems, nil }