mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-10-31 16:13:45 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			164 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			164 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // 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
 | |
| }
 | 
