Skip to main content

Metrics

JuiceFS provided a Prometheus API for each file system, this page only contains some of the mostly used metrics. For the full metrics list, visit JuiceFS console, navigate to the "Monitor" page, and click "Prometheus API".

tip

Some of the metrics come with multiple subnodes, and are omitted in this section. e.g. juicefs_fuse_ops_lookupjuicefs_fuse_ops_open are all included in juicefs_fuse_ops_<name>.

On the other hand, metrics introduced in this chapter all start with the juicefs_ prefix, this is different in on-prem Grafana data source, for example:

  • juicefs_trash_size is called jfs_stat_trash_size
  • juicefs_operationDuration is called mount_operationDuration

So when you encounter trouble searching for the desired metrics, strip the prefix or suffix and try again.

File system

Labels

NameDescription
namefile system name

Metrics

NameDescriptionUnit
juicefs_sizesize of filesbyte
juicefs_inodesnumber of inodes
juicefs_trash_sizesize of files in Trashbyte
juicefs_trash_filesnumber of files in Trash

Client

Labels

NameDescription
namefile system name
hostclient hostname
ipclient IP address
mountpointpath of mount point

Metrics

Operating system

NameDescriptionUnit
juicefs_uptimeuptimesecond
juicefs_cpuusageoverall CPU usage timemicrosecond
juicefs_memusagecurrent RSS memory usagebyte
juicefs_heapSysTotal memory allocated to the client process, same as Sysbyte
juicefs_heapInuseSame as HeapInusebyte
juicefs_handlesNumber of file handlers (descriptors)
juicefs_threadsNumber of threads in the client process, see ThreadCreateProfile
juicefs_goroutinesNumber of goroutines in the client process
juicefs_gcPauseSame as PauseTotalNsnanosecond

Metadata service

NameDescriptionUnit
juicefs_metaDurationDuration of Metadata requestsmicrosecond
juicefs_metaRequestNumber of Metadata requests
juicefs_metaSum of all meta metrics, not very useful
juicefs_meta_operationsNumber of metadata operations
juicefs_meta_bytes_sentMetadata requests sent trafficbyte
juicefs_meta_bytes_receivedMetadata requests received trafficbyte
juicefs_meta_packets_sentMetadata requests sent packets
juicefs_meta_packets_receivedMetadata requests received packets
juicefs_meta_reconnectsNumber of metadata service reconnects
juicefs_meta_usec_pingPing latency between client and metadata servicemicrosecond

File access

NameDescriptionUnit
juicefs_read_bytesTotal read bytes, different from juicefs_get_bytes, this is counted in the file system levelbyte
juicefs_write_bytesTotal write bytes, different from juicefs_put_bytes, this is counted in the file system levelbyte
juicefs_operationsNumber of file operations
juicefs_operationDurationFile operation latencymicrosecond
juicefs_operationErrorsNumber of file operation errors, use this metric to monitor application I/O errors
juicefs_operationSlowsNumber of slow operations (above 10s)
juicefs_operationInterruptedNumber of interruptted operations
juicefs_fuse_opsNumber of file operations, roughly the same as juicefs_operations, but counted by summing up all different operation types
juicefs_fuse_ops_<name>Number of single file operations, e.g. getattrlookupopen
juicefs_openfilesNumber of opened files

Buffer

NameDescriptionUnit
juicefs_totalBufferUsedUsed buffer sizebyte
juicefs_readBufferUsedUsed read buffer sizebyte
juicefs_readahead_bytesThe total amount of readahead data written from the buffer to the kernel page cachebyte

Metadata cache

NameDescriptionUnit
juicefs_meta_dircacheThe total number of all operations that hit client metadata cache
juicefs_meta_dircache_<name>The total number of various operations that hit the client metadata cache, such as getattr, open, lookup
juicefs_meta_dircache<zone-number>_dirsThe number of directories for client metadata cache with <zone-number> (such as 0, 1)
juicefs_meta_dircache<zone-number>_inodesThe number of inodes for client metadata cache with <zone-number> (such as 0, 1)
juicefs_symlink_cacheThe number of all symbolic link cache operations
juicefs_symlink_cache_<name>The number of specific symbolic link cache operation, such as inserts, search_hits, search_misses

Local cache

tip

It is recommended to read the "Cache" document first to help understand the specific meaning of the following metrics.

NameDescriptionUnit
juicefs_blockcache_blocksNumber of cache blocks
juicefs_blockcache_bytesSize of cache blocksbyte
juicefs_blockcache_pri0Total size of cache blocks where priority is 0byte
juicefs_blockcache_pri1Total size of cache blocks where priority is 1byte
juicefs_blockcache_pri2Total size of cache blocks where priority is 2byte
juicefs_blockcache_pri3Total size of cache blocks where priority is 3byte
juicefs_blockcache_hitsNumber of cache block hits
juicefs_blockcache_hitBytesBytes of cache block hitsbyte
juicefs_blockcache_missNumber of missed cache block hits
juicefs_blockcache_missBytesSize of missed cache block hitsbyte
juicefs_blockcache_evictNumber of cache block evictions
juicefs_blockcache_evictBytesSize of cache block evictionsbyte
juicefs_blockcache_evictDurDuration of cache block evictionsmicrosecond
juicefs_blockcache_readDurationLatency in reading cache blocks from cache diskmicrosecond
juicefs_blockcache_writeThe total number of cache blocks written to the cache disk (including read cache blocks and write cache blocks)
juicefs_blockcache_writeBytesThe total size of cache blocks written to the cache disk (including read cache blocks and write cache blocks)byte
juicefs_blockcache_writeDurationLatency in writing cache blocks (including read cache blocks and write cache blocks) to the cache diskmicrosecond
juicefs_blockcache_stageBlocksThe total number of write cache blocks waiting to be uploaded
juicefs_blockcache_stageBlockBytesTotal size of write cache blocks waiting to be uploadedbyte
juicefs_blockcache_stageBlockDelayThe waiting time for the cache block from writing to the cache disk to the beginning of uploading to object storagemicrosecond

Distributed cache

In the cache group, there will be corresponding metrics for "sender" and "receiver" for reading data and writing data, also called "server" and "client" in later descriptions, note that the phrase "server" in this context refers to the party serving the cache blocks in the cache group, and the phrase "client" stands for the party receiving the cache blocks. In a cache group, servers and clients can actually be the same set of JuiceFS clients, but if the cache group is deployed as a dedicated cache cluster, then in this architecture, clients do not share their cache, hence servers and clients are two separate sets of JuiceFS clients.

For example, when reading files through a cache group, member nodes will not only receive data from other members, but also share and send their own cache data to other members.

There are two sets of mutually contrasting metrics in distributed cache metrics, corresponding to different application scenarios:

  • remotecache_get and remotecache_send: correspond to the scenario where the client reads data from the distributed cache
  • remotecache_receive and remotecache_put: correspond to the scenario where the client writes data to the distributed cache (the --fill-group-cache option needs to be enabled), or the scenario of balancing data in the distributed cache.

cache group metrics

Therefore, under normal circumstances, if you sum up metrics of all cache group members (including --no-sharing clients), the size of remotecache_sendBytes should be roughly equal to remotecache_getBytes. If it is found that remotecache_sendBytes is much larger that remotecache_getBytes, it means that there are errors during data transfer, check remotecache_errors metric and client logs for causes.

NameDescriptionUnit
juicefs_remotecache_errorsNumber of all failed distributed cache requests
juicefs_remotecache_getNumber of requests for cache group client to read data
juicefs_remotecache_getBytesSize of cache group client read requestbyte
juicefs_remotecache_getDurationLatency of cache group client read requestmicrosecond
juicefs_remotecache_sendNumber of requests for data sent by the cache group server
juicefs_remotecache_sendBytesSize of the data sent by the cache group serverbyte
juicefs_remotecache_sendDurationLatency of the cache group server send requests, including the latency in reading the local cache (juicefs_blockcache_readDuration). If there is no hit in the local cache, it also includes the request time of the object storage (juicefs_objectDuration_get). If the object storage response is slow or there is a speed limit, this metric will increase.microsecond
juicefs_remotecache_putNumber of requests for cache group client to write data
juicefs_remotecache_putBytesSize of cache group client write requestbyte
juicefs_remotecache_putDurationLatency of cache group client write requestmicrosecond
juicefs_remotecache_receiveNumber of received write requests for the cache group server
juicefs_remotecache_receiveBytesSize of the data received by the cache group serverbyte
juicefs_remotecache_recvDurationLatency of the write requests received for cache group servermicrosecond
juicefs_remotecache_deleteNumber of requests for cache group client to delete data
juicefs_remotecache_warmupNumber of requests for cache group client warmup data
juicefs_remotecache_redirect Added in v5.0.17The number of times the cache group server redirects data
juicefs_remotecache_redirectBytes Added in v5.0.17Size of cache group server redirect databyte
juicefs_blockcache_transferThe number of data blocks sent to other cache nodes during data rebalancing
juicefs_blockcache_transferBytesThe total size of data blocks sent to other cache nodes during data rebalancingbyte
juicefs_blockcache_transferDurLatency in sending data blocks to other cache nodes during data rebalancingmicrosecond
juicefs_blockcache_transferScanDurLatency in scanning all data block keys during data rebalancingmicrosecond

Object storage

NameDescriptionUnit
juicefs_objectNumber of total object storage requests
juicefs_object_getNumber of GetObject requests
juicefs_object_putNumber of PutObject requests
juicefs_object_deleteNumber of DeleteObject requests
juicefs_object_copyNumber of CopyObject requests
juicefs_object_headNumber of HeadObject requests
juicefs_object_listNumber of ListObjects requests
juicefs_object_errorNumber of object storage requests failures
juicefs_objectDurationDuration of all object storage requestsmicrosecond
juicefs_objectDuration_getDuration of GetObject requestsmicrosecond
juicefs_objectDuration_getDelayGetObject requests wait, wait is caused by client token speed control or congestion caused by low --max-downloadsmicrosecond
juicefs_objectDuration_putDuration of PutObject requestsmicrosecond
juicefs_objectDuration_putDelayPutObject requests wait, wait is caused by client token speed control or congestion caused by low --max-uploadsmicrosecond
juicefs_objectDuration_deleteDuration of DeleteObject requestsmicrosecond
juicefs_objectDuration_copyDuration of CopyObject requestsmicrosecond
juicefs_objectDuration_headDuration of HeadObject requestsmicrosecond
juicefs_objectDuration_listDuration of ListObjects requestsmicrosecond
juicefs_get_bytesSize of GET requestsbyte
juicefs_put_bytesSize of PUT requestsbyte
juicefs_currentReq_getNumber of GetObject requests in progress
juicefs_currentReq_putNumber of PutObject requests in progress (excluding requests sent by background jobs)
juicefs_currentReq_deleteNumber of DeleteObject requests in progress

Shared block device

tip

It is recommended to read the "Shared Block Device" document first to help understand the specific meaning of the following metrics.

NameDescriptionUnit
juicefs_block_readThe number of times data was read from the block device
juicefs_block_readByteDurThe latency in reading data from block devicemicrosecond
juicefs_block_readBytesThe total amount of data read from the block devicebyte
juicefs_block_writeThe number of times data is written to the block device
juicefs_block_writeByteDurThe latency in writing data to block devicemicrosecond
juicefs_block_writeBytesThe total amount of data written to the block devicebyte

Background job

tip

It is recommended to read "Background job", "Convert" and "Shared Block Device" document to help understand the specific meaning of the following metrics.

NameDescriptionUnit
juicefs_bgjobsThe number of all background jobs being executed
juicefs_bgjobs_compactThe number of compaction jobs being executed
juicefs_bgjobs_convertThe number of convert jobs being executed
juicefs_bgjobs_deleteThe number of deletion jobs being executed
juicefs_bgjobs_migrateThe number of jobs being executed to migrate data from block device to object storage
juicefs_bgjobs_syncThe number of data replication jobs being performed by the mirror cluster client
juicefs_compactsThe number of execution times of the compaction job
juicefs_compact_bytesThe total size of data blocks processed by the compaction jobbyte
juicefs_compact_durationThe execution time of compaction jobmicrosecond
juicefs_migratesThe number of executions of jobs to migrate data from block device to object storage
juicefs_migrate_bytesThe total size of data blocks processed by the job of migrating data from block device to object storagebyte
juicefs_migrate_durationThe execution time of job to migrate data from block device to object storagemicrosecond
juicefs_syncsThe number of execution times of the data replication job by the mirror cluster client
juicefs_sync_bytesThe total size of data blocks processed by the data replication job of the mirror cluster clientbyte
juicefs_sync_durationThe execution time of data replication jobs on the mirror cluster clientmicrosecond

Data synchronization

NameDescriptionUnit
juicefs_sync_scannedNumber of all objects scanned from the source
juicefs_sync_handledNumber of objects from the source that have been processed
juicefs_sync_pendingNumber of objects waiting to be synchronized
juicefs_sync_copiedNumber of objects that have been synchronized
juicefs_sync_copied_bytesTotal size of data that has been synchronizedbyte
juicefs_sync_skippedNumber of objects that skipped during synchronization
juicefs_sync_failedNumber of objects that failed during synchronization
juicefs_sync_deletedNumber of objects that deleted during synchronization
juicefs_sync_checkedNumber of objects that have been verified by checksum during synchronization
juicefs_sync_checked_bytesTotal size of data that has been verified by checksum during synchronizationbyte