MCPcopy
hub / github.com/google/cadvisor / FsStats

Function FsStats

container/docker/fs.go:32–92  ·  view source on GitHub ↗
(
	stats *info.ContainerStats,
	machineInfoFactory info.MachineInfoFactory,
	metrics container.MetricSet,
	storageDriver StorageDriver,
	fsHandler common.FsHandler,
	globalFsInfo fs.FsInfo,
	poolName string,
	rootfsStorageDir string,
	zfsParent string,
)

Source from the content-addressed store, hash-verified

30)
31
32func FsStats(
33 stats *info.ContainerStats,
34 machineInfoFactory info.MachineInfoFactory,
35 metrics container.MetricSet,
36 storageDriver StorageDriver,
37 fsHandler common.FsHandler,
38 globalFsInfo fs.FsInfo,
39 poolName string,
40 rootfsStorageDir string,
41 zfsParent string,
42) error {
43 mi, err := machineInfoFactory.GetMachineInfo()
44 if err != nil {
45 return err
46 }
47
48 if metrics.Has(container.DiskIOMetrics) {
49 common.AssignDeviceNamesToDiskStats((*common.MachineInfoNamer)(mi), stats.DiskIo)
50 }
51
52 if metrics.Has(container.DiskUsageMetrics) {
53 var device string
54 switch storageDriver {
55 case DevicemapperStorageDriver:
56 device = poolName
57 case AufsStorageDriver, OverlayStorageDriver, Overlay2StorageDriver, VfsStorageDriver:
58 deviceInfo, err := globalFsInfo.GetDirFsDevice(rootfsStorageDir)
59 if err != nil {
60 return fmt.Errorf("unable to determine device info for dir: %v: %v", rootfsStorageDir, err)
61 }
62 device = deviceInfo.Device
63 case ZfsStorageDriver:
64 device = zfsParent
65 default:
66 return nil
67 }
68
69 for _, fs := range mi.Filesystems {
70 if fs.Device == device {
71 usage := fsHandler.Usage()
72 fsStat := info.FsStats{
73 Device: device,
74 Type: fs.Type,
75 Limit: fs.Capacity,
76 BaseUsage: usage.BaseUsageBytes,
77 Usage: usage.TotalUsageBytes,
78 Inodes: usage.InodeUsage,
79 }
80 fileSystems, err := globalFsInfo.GetGlobalFsInfo()
81 if err != nil {
82 return fmt.Errorf("unable to obtain diskstats for filesystem %s: %v", fsStat.Device, err)
83 }
84 addDiskStats(fileSystems, &fs, &fsStat)
85 stats.Filesystem = append(stats.Filesystem, fsStat)
86 break
87 }
88 }
89 }

Callers 2

GetStatsMethod · 0.92
GetStatsMethod · 0.70

Calls 8

addDiskStatsFunction · 0.85
HasMethod · 0.80
ErrorfMethod · 0.80
GetMachineInfoMethod · 0.65
GetDirFsDeviceMethod · 0.65
UsageMethod · 0.65
GetGlobalFsInfoMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…