NewFilesystemCollector returns a new Collector exposing filesystems stats.
()
| 56 | |
| 57 | // NewFilesystemCollector returns a new Collector exposing filesystems stats. |
| 58 | func NewFilesystemCollector() (Collector, error) { |
| 59 | subsystem := "filesystem" |
| 60 | mountPointPattern := regexp.MustCompile(ignoredMountPoints) |
| 61 | filesystemsTypesPattern := regexp.MustCompile(ignoredFSTypes) |
| 62 | |
| 63 | sizeDesc := prometheus.NewDesc( |
| 64 | prometheus.BuildFQName(namespace, subsystem, "size_bytes"), |
| 65 | "Filesystem size in bytes.", |
| 66 | filesystemLabelNames, nil, |
| 67 | ) |
| 68 | |
| 69 | freeDesc := prometheus.NewDesc( |
| 70 | prometheus.BuildFQName(namespace, subsystem, "free_bytes"), |
| 71 | "Filesystem free space in bytes.", |
| 72 | filesystemLabelNames, nil, |
| 73 | ) |
| 74 | |
| 75 | availDesc := prometheus.NewDesc( |
| 76 | prometheus.BuildFQName(namespace, subsystem, "avail_bytes"), |
| 77 | "Filesystem space available to non-root users in bytes.", |
| 78 | filesystemLabelNames, nil, |
| 79 | ) |
| 80 | |
| 81 | filesDesc := prometheus.NewDesc( |
| 82 | prometheus.BuildFQName(namespace, subsystem, "files"), |
| 83 | "Filesystem total file nodes.", |
| 84 | filesystemLabelNames, nil, |
| 85 | ) |
| 86 | |
| 87 | filesFreeDesc := prometheus.NewDesc( |
| 88 | prometheus.BuildFQName(namespace, subsystem, "files_free"), |
| 89 | "Filesystem total free file nodes.", |
| 90 | filesystemLabelNames, nil, |
| 91 | ) |
| 92 | |
| 93 | roDesc := prometheus.NewDesc( |
| 94 | prometheus.BuildFQName(namespace, subsystem, "readonly"), |
| 95 | "Filesystem read-only status.", |
| 96 | filesystemLabelNames, nil, |
| 97 | ) |
| 98 | |
| 99 | deviceErrorDesc := prometheus.NewDesc( |
| 100 | prometheus.BuildFQName(namespace, subsystem, "device_error"), |
| 101 | "Whether an error occurred while getting statistics for the given device.", |
| 102 | filesystemLabelNames, nil, |
| 103 | ) |
| 104 | |
| 105 | return &filesystemCollector{ |
| 106 | ignoredMountPointsPattern: mountPointPattern, |
| 107 | ignoredFSTypesPattern: filesystemsTypesPattern, |
| 108 | sizeDesc: sizeDesc, |
| 109 | freeDesc: freeDesc, |
| 110 | availDesc: availDesc, |
| 111 | filesDesc: filesDesc, |
| 112 | filesFreeDesc: filesFreeDesc, |
| 113 | roDesc: roDesc, |
| 114 | deviceErrorDesc: deviceErrorDesc, |
| 115 | }, nil |