有奖捉虫:办公协同&微信生态&物联网文档专题 HOT

监控指标概述

Goosefs 监控指标记录了客户端、集群、Master 节点、 Worker 节点、进程的运行状态。
1. 按照统计维度,监控指标可以分成以下四大类:
Gauge:记录一个事件的瞬时数值,该数值可增可减,一般用来反映系统运行状态。
Meter:统计事件频率,即固定时间周期内事件的发生次数,如每分钟、每5分钟,每15分钟内的请求数。
Counter:统计事件发生的总次数,与 Gauge 不同的点在于该数值只增不减,一般用来记录访问请求次数等数据。
Timer:统计事件的频率和分布情况,该指标可以认为 Histogram 指标和 Meter 指标的结合,Histogram 指标用于统计耗时分布,Meter 指标用于统计 QPS;如果需要同时统计频率和耗时的时候可以使用该指标。
注意
更多监控指标分类可参见 Metrics Library 文档。GooseFS 目前提供的监控指标只有上述4种类型。
2. 按照数据采集来源,监控指标可以分为以下两大类:
集群状态指标:集群状态指标包括了 Cluster、Master 和 Worker 维度的监控数据,这些监控指标可以反应整个集群及集群下的每个节点的运行状态。这类指标的记录格式如下:
Master.[metricName].[tag1].[tag2]...
[Worker_ip].[metricName].[tag1].[tag2]...
进程处理指标:进程处理指标用于详细记录集群中的请求次数、延迟、CPU 消耗、RPC 调用次数等信息,这类指标可以推送到第三方监控工具中展示。这类指标的记录格式如下:
[processType].[metricName].[tag1].[tag2]...[hostName]

Cluster 监控指标

GooseFS 集群化部署时,客户端和 Worker 节点会周期性地通过心跳将监控指标发送到 Master 节点,可以通过 goosefs.master.worker.heartbeat.interval 和 goosefs.user.metrics.heartbeat.interval 分别设置 Worker 节点和客户端监控指标的心跳周期。

Cluster 级别的监控指标列表如下:
指标名称
指标类型
指标描述
Cluster.BytesReadDomain
COUNTER
GooseFS集群Worker节点的总DomainSocket读流量数值。
Cluster.BytesReadDomainThroughput
GAUGE
GooseFS集群Worker节点的总DomainSocket读带宽数值。
Cluster.BytesReadLocal
COUNTER
GooseFS集群客户端节点的总本地短路读流量数值。
Cluster.BytesReadLocalThroughput
GAUGE
GooseFS集群客户端节点的总本地短路读吞吐数值。
Cluster.BytesReadPerUfs
COUNTER
GooseFS集群Worker节点从某个指定的底层存储读数据的流量数值。
Cluster.BytesReadRemote
COUNTER
GooseFS集群Worker节点的总Remote读流量数值,该数值等于只包含GooseFS集群的缓存读流量和从底层存储读流量,不包含短路读流量及DomainSocket读流量。
Cluster.BytesReadRemoteThroughput
GAUGE
GooseFS集群Worker节点的总Remote读带宽数值,该数值等于只包含GooseFS集群的缓存读带宽和从底层存储读带宽,不包含短路读带宽及DomainSocket读带宽。
Cluster.BytesReadUfsAll
COUNTER
GooseFS集群Worker节点从所有底层存储读数据的流量数值。
Cluster.BytesReadUfsThroughput
GAUGE
GooseFS集群Worker节点从所有底层存储读数据的吞吐数值。
Cluster.BytesWrittenDomain
COUNTER
GooseFS集群Worker节点的总DomainSocket写流量数值。
Cluster.BytesWrittenDomainThroughput
GAUGE
GooseFS集群Worker节点的总DomainSocket写带宽数值。
Cluster.BytesWrittenLocal
COUNTER
GooseFS集群Worker节点的总本地短路写流量数值。
Cluster.BytesWrittenLocalThroughput
GAUGE
GooseFS集群Worker节点的总本地短路写吞吐数值。
Cluster.BytesWrittenPerUfs
COUNTER
GooseFS集群Worker节点往某个指定的底层存储写数据的流量数值。
Cluster.BytesWrittenRemote
COUNTER
GooseFS集群Worker节点的总Remote写流量数值,该数值等于只包含GooseFS集群的写缓存流量和往底层存储写数据流量,不包含短路写流量及DomainSocket写流量。
Cluster.BytesWrittenRemoteThroughput
GAUGE
GooseFS集群Worker节点的总Remote写吞吐数值,该数值等于只包含GooseFS集群的写缓存吞吐和往底层存储写数据吞吐,不包含短路写吞吐及DomainSocket写吞吐。
Cluster.BytesWrittenUfsAll
COUNTER
GooseFS集群Worker节点从所有底层存储写数据的流量数值。
Cluster.BytesWrittenUfsThroughput
GAUGE
GooseFS集群Worker节点从所有底层存储写数据的吞吐数值。
Cluster.CapacityFree
GAUGE
GooseFS集群Worker节点的总可用缓存容量数值。
Cluster.CapacityTotal
GAUGE
GooseFS集群Worker节点的总缓存容量数值。
Cluster.CapacityUsed
GAUGE
GooseFS集群Worker节点的总已用缓存容量数值。
Cluster.RootUfsCapacityFree
GAUGE
GooseFS集群远端存储的总可用容量数值。
Cluster.RootUfsCapacityTotal
GAUGE
GooseFS集群远端存储的总容量数值。
Cluster.RootUfsCapacityUsed
GAUGE
GooseFS集群远端存储的总已用容量数值。
Cluster.Workers
GAUGE
GooseFS集群的总Worker节点数量。

Master 监控指标

Master 监控指标有两大类,其一是默认指标,Master 运行过程中会默认记录这些指标;其二是动态监控指标。默认的 Master 监控指标如下:
指标名称
指标类型
指标描述
Master.CompleteFileOps
COUNTER
CompleteFile操作的总请求次数。
Master.CreateDirectoryOps
COUNTER
CreateDirectory操作的总请求次数。
Master.CreateFileOps
COUNTER
CreateFile操作的总请求次数。
Master.DeletePathOps
COUNTER
Delete操作的总请求次数。
Master.DirectoriesCreated
COUNTER
CreateDirectory操作的总成功请求次数。
Master.EdgeCacheEvictions
GAUGE
已清理的元数据EdgeCache。EdgeCache负责管理元数据从(parentId,childName)到childId的映射。
Master.EdgeCacheHits
GAUGE
已命中的元数据EdgeCache。 EdgeCache负责管理元数据从(parentId,childName)到childId的映射。
Master.EdgeCacheLoadTimes
GAUGE
元数据EdgeCache的加载次数。 EdgeCache负责管理元数据从(parentId,childName)到childId的映射。
Master.EdgeCacheMisses
GAUGE
未命中的元数据EdgeCache。EdgeCache负责管理元数据从(parentId,childName)到childId的映射。
Master.EdgeCacheSize
GAUGE
元数据EdgeCache的总大小。 EdgeCache负责管理元数据从(parentId,childName)到childId的映射。
Master.EdgeLockPoolSize
GAUGE
Master节点EdgeLockPool的大小。
Master.FileBlockInfosGot
COUNTER
GetFileBlockInfo操作的总请求次数
Master.FileInfosGot
COUNTER
GetFileInfo操作的总成功请求次数。
Master.FilesCompleted
COUNTER
CompleteFile的总成功请求次数。
Master.FilesCreated
COUNTER
CreateFile的总成功请求次数。
Master.FilesFreed
COUNTER
FreeFile的总成功请求次数。
Master.FilesPersisted
COUNTER
已持久化到底层存储的总文件数。
Master.FilesPinned
GAUGE
当前已锁定的缓存文件数。
Master.FreeFileOps
COUNTER
FreeFile操作的总请求次数。
Master.GetFileBlockInfoOps
COUNTER
GetFileBlockInfo的总请求次数。
Master.GetFileInfoOps
COUNTER
GetFileInfo的总请求次数。
Master.GetNewBlockOps
COUNTER
GetNewBlock的总请求次数。
Master.InodeCacheEvictions
GAUGE
元数据缓存中inodes的总淘汰次数。
Master.InodeCacheHits
GAUGE
元数据缓存中inodes的总命中次数。
Master.InodeCacheLoadTimes
GAUGE
元数据缓存中inodes的总加载次数。
Master.InodeCacheMisses
GAUGE
元数据缓存中inodes的总Miss次数。
Master.InodeCacheSize
GAUGE
已缓存的Inodes总数。
Master.InodeLockPoolSize
GAUGE
Master inode 的lock pool大小。
Master.JournalFlushFailure
COUNTER
journal flush 的总失败次数。
Master.JournalFlushTimer
TIMER
journal flush 的计时器统计次数。
Master.JournalGainPrimacyTimer
TIMER
journal gain primacy 的计时器统计次数。
Master.LastBackupEntriesCount
GAUGE
元数据备份的元数据日志中所记录的元数据条目总数。该参数用于记录元数据的备份情况,并在需要时作为恢复节点的参考。
Master.LastBackupRestoreCount
GAUGE
元数据恢复时记录的元数据条目总数。该参数用于记录元数据的恢复情况。
Master.LastBackupRestoreTimeMs
GAUGE
元数据恢复的处理时长。
Master.LastBackupTimeMs
GAUGE
元数据备份的处理时长。
Master.ListingCacheSize
GAUGE
Master节点的listing cache大小。
Master.MountOps
COUNTER
Mount操作的总请求次数。
Master.NewBlocksGot
COUNTER
GetNewBlock操作的总成功请求次数。
Master.PathsDeleted
COUNTER
Delete操作的总成功请求次数。
Master.PathsMounted
COUNTER
Mount操作的总成功请求次数。
Master.PathsRenamed
COUNTER
Rename操作的总成功请求次数。
Master.PathsUnmounted
COUNTER
Unmount操作的总成功请求次数。
Master.RenamePathOps
COUNTER
Rename操作的总请求次数。
Master.SetAclOps
COUNTER
SetAcl操作的总请求次数。
Master.SetAttributeOps
COUNTER
SetAttribute的总请求次数。
Master.TotalPaths
GAUGE
GooseFS命名空间中的总文件和目录数量。
Master.UfsJournalCatchupTimer
TIMER
GooseFS底层存储的journal catchup计时统计次数。
Master.UfsJournalFailureRecoverTimer
TIMER
GooseFS底层存储的journal failure recover计时统计次数。
Master.UfsJournalInitialReplayTimeMs
GAUGE
GooseFS底层存储的journal initial replay处理时长。
Master.UnmountOps
COUNTER
Unmount操作的总请求次数。
动态指标如下:
指标名称
指标类型
指标描述
Master.CapacityTotalTier
GAUGE
GooseFS各缓存层级的容量大小。
Master.CapacityUsedTier
GAUGE
GooseFS各缓存层级的已用容量大小。
Master.CapacityFreeTier
GAUGE
GooseFS各缓存层级的可用容量大小。
Master.UfsSessionCount-Ufs:
COUNTER
GooseFS 当前已打开的 UFS 会话数量。
Master.PerUfsOp.UFS:
TIMER
GooseFS 主 Master 节点对 UFS 的所有操作数量。

Worker 监控指标

Worker 监控指标有两大类,其一是默认指标,Worker 运行过程中会默认记录这些指标;其二是动态监控指标。默认的 Worker 监控指标如下:
指标名称
指标类型
指标描述
Worker.AsyncCacheDuplicateRequests
COUNTER
指定Worker节点收到的重复异步缓存请求的总数。
Worker.AsyncCacheFailedBlocks
COUNTER
指定Worker节点异步缓存失败的block数量。
Worker.AsyncCacheRemoteBlocks
COUNTER
需要从远端资源中异步缓存的block数量。
Worker.AsyncCacheRequests
COUNTER
指定Worker节点收到的异步缓存请求总数。
Worker.AsyncCacheSucceededBlocks
COUNTER
指定Worker节点收到的成功的异步缓存请求总数。
Worker.AsyncCacheUfsBlocks
COUNTER
需要从本地资源中异步缓存的block数量。
Worker.BlockRemoverBlocksToRemovedCount
COUNTER
指定Worker节点被asynchronous block remover清理的block数量。
Worker.BlockRemoverRemovingBlocksSize
GAUGE
指定Worker节点正在被asynchronous block remover清理的block数量。
Worker.BlockRemoverTryRemoveBlocksSize
GAUGE
指定Worker节点已经被asynchronous block remover清理的block数量。
Worker.BlockRemoverTryRemoveCount
COUNTER
指定Worker节点即将被asynchronous block remover清理的block数量。
Worker.BlocksAccessed
COUNTER
指定Worker节点所有数据块被访问的总次数。
Worker.BlocksCached
GAUGE
指定Worker节点中缓存的数据块总数。
Worker.BlocksCancelled
COUNTER
指定Worker节点中释放的临时数据块总数。
Worker.BlocksDeleted
COUNTER
指定Worker节点中被外部请求删除的数据块总数。
Worker.BlocksEvicted
COUNTER
指定Worker节点中淘汰的数据块总数。
Worker.BlocksLost
COUNTER
指定Worker节点中丢失的数据块总数,包含。
Worker.BlocksPromoted
COUNTER
指定Worker节点中数据块转移到不同缓存层的次数。
Worker.BytesReadDomain
COUNTER
指定Worker节点中被domain read的总读流量。
Worker.BytesReadDomainThroughput
METER
指定Worker节点中被domain read的总读带宽。
Worker.BytesReadPerUfs
COUNTER
指定Worker节点从底层存储中读取文件的流量数值。
Worker.BytesReadRemote
COUNTER
指定Worker节点的Remote读流量数值,该数值等于只包含该节点的读缓存流量和从底层存储读数据流量,不包含短路读流量及DomainSocket的读流量。
Worker.BytesReadRemoteThroughput
METER
指定Worker节点的Remote读吞吐数值,该数值等于只包含该节点的读缓存吞吐和从底层存储读数据吞吐,不包含短路读吞吐及DomainSocket的读吞吐。
Worker.BytesReadUfsThroughput
METER
指定Worker节点从所有底层存储中读数据吞吐数值。
Worker.BytesWrittenDomain
COUNTER
指定Worker节点中,通过Domain socket方式写入GooseFS的写流量数值。
Worker.BytesWrittenDomainThroughput
METER
指定Worker节点中,通过Domain socket方式写入GooseFS的写吞吐数值。
Worker.BytesWrittenPerUfs
COUNTER
指定Worker节点往指定底层存储中写数据吞吐数值。
Worker.BytesWrittenRemote
COUNTER
指定Worker节点的Remote写流量数值,该数值等于只包含该节点的写缓存流量和往底层存储写数据流量,不包含短路写流量及DomainSocket的写流量。
Worker.BytesWrittenRemoteThroughput
METER
指定Worker节点的Remote写吞吐数值,该数值等于只包含该节点的写缓存吞吐和往底层存储写数据吞吐,不包含短路写吞吐及DomainSocket的写吞吐。
Worker.BytesWrittenUfsThroughput
METER
指定Worker节点往所有底层存储中写数据吞吐数值。
Worker.CapacityFree
GAUGE
指定Worker节点上的可用缓存容量数值。
Worker.CapacityTotal
GAUGE
指定Worker节点上的总缓存容量数值。
Worker.CapacityUsed
GAUGE
指定Worker节点上的已用缓存容量数值。
动态监控指标如下:
指标名称
指标类型
指标描述
Worker.UfsSessionCount-Ufs
GAUGE
指定Worker节点上已打开的UFS会话数量。

客户端监控指标

客户端监控指标会通过指定的用户 ID 或者客户端的 IP 维度汇聚,如果已经在 GooseFS 中注册好用户 ID,则会优先按照用户 ID 维度汇聚。用户 ID 可以通过 goosefs.user.app.id 指定。客户端监控指标如下:
指标名称
指标类型
指标描述
Client.BytesReadLocal
COUNTER
指定Client节点从本地存储短路读流量数值。
Client.BytesReadLocalThroughput
METER
指定Client节点从本地存储短路读吞吐数值。
Client.BytesWrittenLocal
COUNTER
指定Client节点往本地存储短路写流量数值。
Client.BytesWrittenLocalThroughput
METER
指定Client节点往本地存储短路写吞吐数值。
Client.BytesWrittenUfs
COUNTER
指定Client节点往GooseFS底层存储的写流量数值。
Client.CacheBytesEvicted
METER
指定Client节点淘汰的数据量。
Client.CacheBytesReadCache
METER
指定Client节点缓存命中,从Client节点中读取的缓存数据量。
Client.CacheBytesReadExternal
METER
指定Client节点缓存未命中,从其他存储中读取的数据量。
Client.CacheBytesRequestedExternal
METER
指定Client节点缓存未命中,从其他存储中请求的数据量。由于chunk读情况的存在,该数值小于等于Client.CacheBytesReadExternal。
Client.CacheBytesWrittenCache
METER
往指定Client节点缓存中写入数据的流量。
Client.CacheCleanupGetErrors
COUNTER
清理失败的读缓存请求时的失败次数。
Client.CacheCleanupPutErrors
COUNTER
清理失败的写缓存请求时的失败次数。
Client.CacheCreateErrors
COUNTER
指定Client节点创建缓存的失败次数。
Client.CacheDeleteErrors
COUNTER
指定Client节点删除缓存的失败次数。
Client.CacheGetErrors
COUNTER
指定Client节点读取缓存的失败次数。
Client.CacheGetNotReadyErrors
COUNTER
指定Client节点读取页时,由于缓存未就绪导致的失败次数。
Client.CacheHitRate
GAUGE
指定Client节点的缓存命中率,该参数等于从缓存中读请求次数/总请求次数。
Client.CachePages
COUNTER
指定Client节点的页缓存数量。
Client.CachePagesEvicted
METER
指定Client节点中已淘汰的页缓存数量。
Client.CachePutErrors
COUNTER
指定Client节点写入缓存数据的失败次数。
Client.CacheSpaceAvailable
GAUGE
指定Client节点中可用的字节数。
Client.CacheSpaceUsed
GAUGE
指定Client节点中已用的字节数。
Client.CacheSpaceUsedCount
COUNTER
指定Client节点中可用的字节计数值。
Client.CacheState
COUNTER
指定Client节点中的缓存状态,0(不可用),1(只读),2(只写)
Client.CacheUnremovableFiles
COUNTER
指定Client节点中不可用的缓存数量。

进程监控指标

进程监控指标可以在 Cluster、Master 和 Worker 中收集并汇聚。主要包括 JVM 信息、垃圾回收信息、内存占用信息三大类。
JVM 信息包括以下内容:
指标名称
指标描述
name
JVM 名称
uptime
JVM 更新时间
vendor
当前的 JVM vendor
垃圾回收监控指标包括以下内容:
指标名称
指标描述
PS-MarkSweep.count
Mark 和 Sweep 的总数。
PS-MarkSweep.time
Mark 和 Sweep 的耗时。
PS-Scavenge.count
Scavenge 次数。
PS-Scavenge.time
Scavenge 时间。
内存占用监控指标记录了内存使用情况的概述和详情信息,部分监控指标如下:
指标名称
指标描述
total.committed
JVM 可保证使用的内存量。
total.init
JVM 可用的内存量。
total.max
JVM 的最大可用内存量。
total.used
当前已用的 JVM 内存量。
heap.committed
JVM 可保证使用的堆内存大小。
heap.init
JVM 可用的堆内存大小。
heap.max
JVM 的最大可用堆内存大小。
heap.usage
当前正在使用的 JVM 堆内存量。
heap.used
当前已用的 JVM 堆内存量。
pools.Code-Cache.used
内存池中用于编译和存储本地代码的内存大小。
pools.Compressed-Class-Space.used
Used memory of collection usage from the pool from which memory is use for class metadata
内存池中用于收集用途的已用内存大小,该内存用于类元数据。
pools.PS-Eden-Space.used
内存池中用于收集用途的已用内存大小,该内存用于大部分对象的初始化。
pools.PS-Survivor-Space.used
内存池中用于收集用途的已用内存大小,该内存池包含在Eden空间垃圾回收后幸存的对象。