Skip to main content

监控项说明

JuiceFS 为每个文件系统提供一个 Prometheus API,本章仅罗列和介绍部分常用监控指标,完整列表请访问控制台,在「监控」页面点击「Prometheus API」,直接查看接口数据。

提示

部分指标由于子项众多,并未完整列出,比如 juicefs_fuse_ops_lookupjuicefs_fuse_ops_open 就统一收录在 juicefs_fuse_ops_<name>

另外,本章介绍的指标全部冠以 juicefs_ 前缀,在私有部署的 Grafana 中并没有这个统一前缀,比如:

  • juicefs_trash_size 叫作 jfs_stat_trash_size
  • juicefs_operationDuration 叫作 mount_operationDuration

因此,如果你关心的指标没搜到,试试掐头去尾重新搜索其中的部分关键字。

文件系统

标签

名称说明
name文件系统名

指标

名称说明单位
juicefs_size文件系统大小字节
juicefs_inodesinodes 数量
juicefs_trash_size回收站文件大小字节
juicefs_trash_files回收站文件数量

客户端

标签

名称说明
name文件系统名
host客户端所在主机名
ip客户端所在主机 IP 地址
mountpoint挂载点路径

指标

操作系统

名称说明单位
juicefs_uptime运行时长
juicefs_cpuusage累计 CPU 使用时间微秒
juicefs_memusage当前占用 RSS 内存量字节
juicefs_heapSysGo 申请的内存总量,同 Sys字节
juicefs_heapInuseHeapInuse字节
juicefs_handles客户端持有文件句柄数
juicefs_threads客户端 Go 线程数量,详见 ThreadCreateProfile
juicefs_goroutines客户端 Go 协程数量
juicefs_gcPausePauseTotalNs纳秒

元数据服务

名称说明单位
juicefs_metaDuration元数据服务请求延迟微秒
juicefs_metaRequest元数据服务请求数
juicefs_metameta 前缀的指标汇总,不单独参考
juicefs_meta_operations元数据操作量
juicefs_meta_bytes_sent元数据服务请求发送流量字节
juicefs_meta_bytes_received元数据服务请求接受流量字节
juicefs_meta_packets_sent元数据服务请求包发送流量
juicefs_meta_packets_received元数据服务请求包接受流量
juicefs_meta_reconnects元数据服务重连次数
juicefs_meta_usec_ping元数据服务 ping 延迟微秒

文件操作

名称说明单位
juicefs_read_bytes读取总量,与 juicefs_get_bytes 不同,这是文件操作层级的统计字节
juicefs_write_bytes写入总量,与 juicefs_put_bytes 不同,这是文件操作层级的统计字节
juicefs_operations文件操作总量
juicefs_operationDuration文件操作延迟,体现了应用通过 JuiceFS 读写文件所耗费的时间微秒
juicefs_operationErrors文件操作错误的数量,可以通过该指标监控客户端的读写出错
juicefs_operationSlows文件操作慢请求(超过 10 秒)的数量
juicefs_operationInterrupted文件操作中断的数量
juicefs_fuse_ops文件操作总量(分类再汇总统计,与 juicefs_operations 有少量差别)
juicefs_fuse_ops_<name>单个文件操作的计数,例如 getattrlookupopen
juicefs_openfiles打开的文件数

缓冲区

名称说明单位
juicefs_totalBufferUsed读写缓冲区已使用大小字节
juicefs_readBufferUsed读缓冲区已使用大小字节
juicefs_readahead_bytes预读的数据从缓存区写入内核页缓存的总量字节

元数据缓存

名称说明单位
juicefs_meta_dircache命中客户端元数据缓存的所有操作总量
juicefs_meta_dircache_<name>命中客户端元数据缓存的各种操作的总量,例如 getattropenlookup
juicefs_meta_dircache<zone-number>_dirs分区号为 <zone-number>(如 01)的客户端元数据缓存的目录数量
juicefs_meta_dircache<zone-number>_inodes分区号为 <zone-number>(如 01)的客户端元数据缓存的 inodes 数量
juicefs_symlink_cache所有符号链接缓存操作的数量
juicefs_symlink_cache_<name>具体的符号链接缓存操作的数量,如 insertssearch_hitssearch_misses

本地缓存

提示

建议先阅读「缓存」文档,帮助了解以下监控指标的具体含义。

名称说明单位
juicefs_blockcache_blocks缓存块的总个数
juicefs_blockcache_bytes缓存块的总大小字节
juicefs_blockcache_pri0优先级为 0 的缓存块的总大小字节
juicefs_blockcache_pri1优先级为 1 的缓存块的总大小字节
juicefs_blockcache_pri2优先级为 2 的缓存块的总大小字节
juicefs_blockcache_pri3优先级为 3 的缓存块的总大小字节
juicefs_blockcache_hits命中缓存块的总次数
juicefs_blockcache_hitBytes命中缓存块的总大小字节
juicefs_blockcache_miss没有命中缓存块的总次数
juicefs_blockcache_missBytes没有命中缓存块的总大小字节
juicefs_blockcache_evict淘汰缓存块的总次数
juicefs_blockcache_evictBytes淘汰缓存块的总大小字节
juicefs_blockcache_evictDur淘汰缓存块的时间微秒
juicefs_blockcache_readDuration从缓存盘读取缓存块的延迟微秒
juicefs_blockcache_write写到缓存盘的缓存块(包括读缓存块和写缓存块)的总个数
juicefs_blockcache_writeBytes写到缓存盘的缓存块(包括读缓存块和写缓存块)总大小字节
juicefs_blockcache_writeDuration将缓存块(包括读缓存块和写缓存块)写到缓存盘的延迟微秒
juicefs_blockcache_stageBlocks等待上传的写缓存块的总个数
juicefs_blockcache_stageBlockBytes等待上传的写缓存块的总大小字节
juicefs_blockcache_stageBlockDelay缓存块从写入缓存盘到开始上传至对象存储的等待时间微秒

分布式缓存

在缓存组中,读数据和写数据都会存在「发送方」和「接收方」的对应指标,下方也称作「服务端」、「客户端」。需要注意,这里的「服务端」指的是缓存组架构中,负责提供缓存服务的那一方,「客户端」指代读取数据的一方。在一个缓存组中,服务端和客户端可能是同一批 JuiceFS 客户端,但如果将缓存组单独部署成「独立缓存集群」,这时候客户端不对外共享自身的缓存数据,那么服务端和客户端就是分离的两批 JuiceFS 客户端。

比方说通过缓存组读取文件时,成员节点既会从其他成员接收数据,也会把自身的缓存数据共享、发送给其他成员。

分布式缓存监控指标中存在着两组互相对照的指标,分别对应不同的应用场景:

  • remotecache_getremotecache_send:客户端的读、服务端的发送
  • remotecache_putremotecache_receive:客户端往分布式缓存写数据、服务端收到的写数据。对于分布式缓存组而言,缓存写请求来自于开启 --fill-group-cache 选项时,客户端的写请求贡献,或者分布式缓存发生节点间数据均衡

cache group metrics

可想而知,正常情况下,如果对所有缓存组成员(同样包含 --no-sharing 节点)的监控指标进行求和,那么 remotecache_sendBytes 的大小应该与 remotecache_getBytes 大致相等。如果发现 remotecache_sendBytes 远大于 remotecache_getBytes,则代表收发存在异常,这时需要关注 remotecache_errors 指标,并且关注客户端日志,定位异常的来源。

名称说明单位
juicefs_remotecache_errors缓存组客户端所有请求的失败数
juicefs_remotecache_get缓存组客户端读数据的请求数
juicefs_remotecache_getBytes缓存组客户端读请求的数据大小字节
juicefs_remotecache_getDuration缓存组客户端读请求延迟微秒
juicefs_remotecache_send缓存组服务端发送数据的请求数
juicefs_remotecache_sendBytes缓存组服务端发送数据的大小字节
juicefs_remotecache_sendDuration缓存组服务端发送数据的延迟,该延迟包含读取本地缓存的延迟(juicefs_blockcache_readDuration)。如果本地缓存没有命中,那么也包含对象存储的请求时间(juicefs_objectDuration_get),如果对象存储响应慢或者存在限速,都会导致该指标增大微秒
juicefs_remotecache_put缓存组客户端写数据的请求数
juicefs_remotecache_putBytes缓存组客户端写请求的数据大小字节
juicefs_remotecache_putDuration缓存组客户端写请求延迟微秒
juicefs_remotecache_receive缓存组服务端接收数据的请求数
juicefs_remotecache_receiveBytes缓存组服务端接收数据的大小字节
juicefs_remotecache_recvDuration缓存组服务端接收数据的延迟微秒
juicefs_remotecache_delete缓存组客户端删除数据的请求数
juicefs_remotecache_warmup缓存组客户端预热数据的请求数
juicefs_remotecache_redirect 新增自 v5.0.17缓存组服务端重定向数据的次数
juicefs_remotecache_redirectBytes 新增自 v5.0.17缓存组服务端重定向数据的大小字节
juicefs_blockcache_transfer数据重新均衡(rebalance)时发送到其它缓存节点的数据块个数
juicefs_blockcache_transferBytes数据重新均衡时发送到其它缓存节点的数据块总大小字节
juicefs_blockcache_transferDur数据重新均衡时发送数据块到其它缓存节点的延迟微秒
juicefs_blockcache_transferScanDur数据重新均衡时扫描所有数据块 key 的延迟微秒

对象存储

名称说明单位
juicefs_object对象存储总请求数
juicefs_object_get对象存储 GetObject 请求数
juicefs_object_put对象存储 PutObject 请求数
juicefs_object_delete对象存储 DeleteObject 请求数
juicefs_object_copy对象存储 CopyObject 请求数
juicefs_object_head对象存储 HeadObject 请求数
juicefs_object_list对象存储 ListObjects 请求数
juicefs_object_error对象存储请求失败数
juicefs_objectDuration对象存储所有请求延迟微秒
juicefs_objectDuration_get对象存储 GetObject 请求延迟微秒
juicefs_objectDuration_getDelay对象存储 GetObject 请求的程序内的排队等待时间,包括因为客户端令牌限速或者--max-downloads 过低导致并发拥堵微秒
juicefs_objectDuration_put对象存储 PutObject 请求延迟微秒
juicefs_objectDuration_putDelay对象存储 PutObject 请求延迟,包含程序内的排队等待时间,包括因为客户端令牌限速或者--max-uploads 过低导致并发拥堵微秒
juicefs_objectDuration_delete对象存储 DeleteObject 请求延迟微秒
juicefs_objectDuration_copy对象存储 CopyObject 请求延迟微秒
juicefs_objectDuration_head对象存储 HeadObject 请求延迟微秒
juicefs_objectDuration_list对象存储 ListObjects 请求延迟微秒
juicefs_get_bytes对象存储读取总量字节
juicefs_put_bytes对象存储写入总量字节
juicefs_currentReq_get正在执行中的 GetObject 请求数
juicefs_currentReq_put正在执行中的 PutObject 请求数(不包括后台任务发送的请求)
juicefs_currentReq_delete正在执行中的 DeleteObject 请求数

共享块设备

提示

建议先阅读「共享块设备」文档,帮助了解以下监控指标的具体含义。

名称说明单位
juicefs_block_read从块设备读数据的次数
juicefs_block_readByteDur从块设备读数据的延迟微秒
juicefs_block_readBytes从块设备读数据的总量字节
juicefs_block_write往块设备写数据的次数
juicefs_block_writeByteDur往块设备写数据的延迟微秒
juicefs_block_writeBytes往块设备写数据的总量字节

后台任务

提示

建议先阅读「后台任务」「转存」「共享块设备」文档,帮助了解以下监控指标的具体含义。

名称说明单位
juicefs_bgjobs所有后台任务正在执行的数量
juicefs_bgjobs_compact正在执行碎片合并任务的数量
juicefs_bgjobs_convert正在执行转存任务的数量
juicefs_bgjobs_delete正在执行删除任务的数量
juicefs_bgjobs_migrate正在执行将数据从块设备迁移到对象存储的任务的数量
juicefs_bgjobs_sync镜像集群客户端正在执行数据复制任务的数量
juicefs_compacts碎片合并任务的执行次数
juicefs_compact_bytes碎片合并任务处理的数据块总大小字节
juicefs_compact_duration碎片合并任务的执行时间微秒
juicefs_migrates将数据从块设备迁移到对象存储的任务的执行次数
juicefs_migrate_bytes将数据从块设备迁移到对象存储的任务处理的数据块总大小字节
juicefs_migrate_duration将数据从块设备迁移到对象存储的任务的执行时间微秒
juicefs_syncs镜像集群客户端的数据复制任务的执行次数
juicefs_sync_bytes镜像集群客户端的数据复制任务处理的数据块总大小字节
juicefs_sync_duration镜像集群客户端的数据复制任务的执行时间微秒

数据同步

名称说明单位
juicefs_sync_scanned从源端扫描的所有对象数量
juicefs_sync_handled已经处理过的来自源端的对象数量
juicefs_sync_pending等待同步的对象数量
juicefs_sync_copied已经同步过的对象数量
juicefs_sync_copied_bytes已经同步过的数据总大小字节
juicefs_sync_skipped同步时被跳过的对象数量
juicefs_sync_failed同步时失败的对象数量
juicefs_sync_deleted同步时被删除的对象数量
juicefs_sync_checked同步时校验过 checksum 的对象数量
juicefs_sync_checked_bytes同步时校验过 checksum 的数据总大小字节