123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- // Copyright 2017 The Prometheus Authors
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- // Package xfs provides access to statistics exposed by the XFS filesystem.
- package xfs
- // Stats contains XFS filesystem runtime statistics, parsed from
- // /proc/fs/xfs/stat.
- //
- // The names and meanings of each statistic were taken from
- // http://xfs.org/index.php/Runtime_Stats and xfs_stats.h in the Linux
- // kernel source. Most counters are uint32s (same data types used in
- // xfs_stats.h), but some of the "extended precision stats" are uint64s.
- type Stats struct {
- // The name of the filesystem used to source these statistics.
- // If empty, this indicates aggregated statistics for all XFS
- // filesystems on the host.
- Name string
- ExtentAllocation ExtentAllocationStats
- AllocationBTree BTreeStats
- BlockMapping BlockMappingStats
- BlockMapBTree BTreeStats
- DirectoryOperation DirectoryOperationStats
- Transaction TransactionStats
- InodeOperation InodeOperationStats
- LogOperation LogOperationStats
- ReadWrite ReadWriteStats
- AttributeOperation AttributeOperationStats
- InodeClustering InodeClusteringStats
- Vnode VnodeStats
- Buffer BufferStats
- ExtendedPrecision ExtendedPrecisionStats
- }
- // ExtentAllocationStats contains statistics regarding XFS extent allocations.
- type ExtentAllocationStats struct {
- ExtentsAllocated uint32
- BlocksAllocated uint32
- ExtentsFreed uint32
- BlocksFreed uint32
- }
- // BTreeStats contains statistics regarding an XFS internal B-tree.
- type BTreeStats struct {
- Lookups uint32
- Compares uint32
- RecordsInserted uint32
- RecordsDeleted uint32
- }
- // BlockMappingStats contains statistics regarding XFS block maps.
- type BlockMappingStats struct {
- Reads uint32
- Writes uint32
- Unmaps uint32
- ExtentListInsertions uint32
- ExtentListDeletions uint32
- ExtentListLookups uint32
- ExtentListCompares uint32
- }
- // DirectoryOperationStats contains statistics regarding XFS directory entries.
- type DirectoryOperationStats struct {
- Lookups uint32
- Creates uint32
- Removes uint32
- Getdents uint32
- }
- // TransactionStats contains statistics regarding XFS metadata transactions.
- type TransactionStats struct {
- Sync uint32
- Async uint32
- Empty uint32
- }
- // InodeOperationStats contains statistics regarding XFS inode operations.
- type InodeOperationStats struct {
- Attempts uint32
- Found uint32
- Recycle uint32
- Missed uint32
- Duplicate uint32
- Reclaims uint32
- AttributeChange uint32
- }
- // LogOperationStats contains statistics regarding the XFS log buffer.
- type LogOperationStats struct {
- Writes uint32
- Blocks uint32
- NoInternalBuffers uint32
- Force uint32
- ForceSleep uint32
- }
- // ReadWriteStats contains statistics regarding the number of read and write
- // system calls for XFS filesystems.
- type ReadWriteStats struct {
- Read uint32
- Write uint32
- }
- // AttributeOperationStats contains statistics regarding manipulation of
- // XFS extended file attributes.
- type AttributeOperationStats struct {
- Get uint32
- Set uint32
- Remove uint32
- List uint32
- }
- // InodeClusteringStats contains statistics regarding XFS inode clustering
- // operations.
- type InodeClusteringStats struct {
- Iflush uint32
- Flush uint32
- FlushInode uint32
- }
- // VnodeStats contains statistics regarding XFS vnode operations.
- type VnodeStats struct {
- Active uint32
- Allocate uint32
- Get uint32
- Hold uint32
- Release uint32
- Reclaim uint32
- Remove uint32
- Free uint32
- }
- // BufferStats contains statistics regarding XFS read/write I/O buffers.
- type BufferStats struct {
- Get uint32
- Create uint32
- GetLocked uint32
- GetLockedWaited uint32
- BusyLocked uint32
- MissLocked uint32
- PageRetries uint32
- PageFound uint32
- GetRead uint32
- }
- // ExtendedPrecisionStats contains high precision counters used to track the
- // total number of bytes read, written, or flushed, during XFS operations.
- type ExtendedPrecisionStats struct {
- FlushBytes uint64
- WriteBytes uint64
- ReadBytes uint64
- }
|