mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +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
 | 
						|
}
 |