监控

您可以通过 网站控制台 查看每个 JuiceFS 文件系统的数据大小、Inode 数量、请求量和流量。

同时,我们也提供 API 输出的监控数据(JSON 和 Prometheus 格式),方便与您已有的监控系统集成。

JSON API

JSON API 地址: https://juicefs.com/api/volume/VOLUME_NAME/status?token=YOUR_TOKEN

其中 VOLUME_NAME 是您的文件系统名字,YOUR_TOKEN 在网站控制台设置中可以看到(就是挂载时使用的 token)。

API 返回示例:

  1. {
  2. "files": 1234, // Inode 数量
  3. "dns": "a.meta.juicefs.io", // 元数据服务的域名
  4. "port": 9404, // 元数据服务使用的端口
  5. "size": 1024000, // 数据大小
  6. "trash_files": 100, // 回收站内的文件数量
  7. "trash_size": 100000, // 回收站内的文件大小
  8. // 最近两个小时有访问的客户端
  9. "clients": [
  10. {
  11. // 元数据服务的各种操作次数
  12. "operations": {
  13. "rename": 0, // 改名
  14. "setattr": 0, // 设置文件属性
  15. "read": 0, // 读操作
  16. "statfs": 0, // 文件系统统计
  17. "wbytes": 0, // 写入数据量
  18. "mkdir": 0, // 创建目录
  19. "mknod": 0, // 创建文件
  20. "symlink": 0, // 创建符号链接
  21. "write": 0, // 写操作
  22. "getattr": 0, // 读文件属性
  23. "lookup": 0, // 查找文件或者目录
  24. "rmdir": 0, // 删除目录
  25. "rbytes": 0, // 读数据量
  26. "link": 0, // 创建硬链接
  27. "readlink": 0, // 读符号链接
  28. "unlink": 0, // 删除
  29. "open": 0, // 打开文件
  30. "readdir": 0 // 读目录
  31. },
  32. // 客户端的各种操作次数
  33. "stats": {
  34. "uptime": 21,
  35. "cpuusage": 356212,
  36. "memusage": 23243000,
  37. "fuse_ops": 179,
  38. "fuse_ops.create": 1,
  39. "fuse_ops.flush": 1,
  40. "fuse_ops.getattr": 39,
  41. "fuse_ops.getattr-cached": 7,
  42. "fuse_ops.statfs": 60,
  43. "fuse_ops.opendir": 2,
  44. "fuse_ops.release": 1,
  45. "fuse_ops.releasedir": 1,
  46. "fuse_ops.readdir": 13,
  47. "fuse_ops.readdir.with_attrs": 4,
  48. "fuse_ops.lookup": 54,
  49. "fuse_ops.lookup.master": 44,
  50. "fuse_ops.lookup.master.positive": 2,
  51. "fuse_ops.lookup.master.negative": 42,
  52. "fuse_ops.lookup.internal": 2,
  53. "fuse_ops.lookup.cached": 8,
  54. "fuse_ops.lookup.cached.readdir": 8,
  55. "master": 12428,
  56. "master.usec_ping": 59166,
  57. "master.usec_timediff": 6109,
  58. "master.bytes_received": 3915,
  59. "master.bytes_sent": 8210,
  60. "master.packets_sent": 203,
  61. "master.packets_received": 100
  62. },
  63. "openfiles": 0, // 当前打开文件个数
  64. "ip": "1.2.3.4", // 客户端 IP
  65. "hostname": "my-host", // 主机名
  66. "version": "4.2.1", // 客户端版本
  67. "mountpoint": "/jfs" // 挂载路径
  68. }, // client1
  69. // ...... 其他客户端数据
  70. ]
  71. }

Prometheus API

JuiceFS 提供一个 API 可以直接将文件系统的访问指标导入到 Prometheus 中。

Prometheus API 地址:https://juicefs.com/api/vol/VOLUME_NAME/metrics?token=YOUR_TOKEN

其中 VOLUME_NAME 是您的文件系统名字,YOUR_TOKEN 在网站控制台设置中可以看到(就是挂载时使用的 token)。

使用时请将下面的实例添加到 Prometheus 的配置中(兼容 2.x):

  1. scrape_configs:
  2. - job_name: 'juicefs'
  3. scrape_interval: 15s
  4. scheme: 'https'
  5. metrics_path: '/api/vol/VOLUME_NAME/metrics'
  6. params:
  7. token: ['YOUR_TOKEN']
  8. static_configs:
  9. - targets: ['juicefs.com']

我们还提供了一个 Grafana Dashboard 模板 来展现 Prometheus 中收集的 JuiceFS 的各种指标 (部分指标需要升级客户端到 4.3.3 才能生效)。

指标详细说明请查阅:JuiceFS 监控项说明

如果您使用的不是 Prometheus,我们也提供适配不同平台的工具。目前已支持的平台有:

  1. Open-Falcon

客户端状态统计

JuiceFS 在每个挂载点的根目录有两个文本格式的虚拟文件,记录了 JuiceFS 的一些统计和日志数据。他们分别是:

  • .stats 记录了对象存储各种 API 的访问计数;

  • .oplog 记录实时的文件系统访问日志;

比如通过下面的方式可以看到对象存储的访问计数:

  1. sudo cat /MOUNT_ENDPOINT/.stats | grep object

MOUNT_ENDPOINT 是你的 JuiceFS 挂载点。

可以看到类似下面的统计结果:

  1. object.copy: 0
  2. object.delete: 1469927
  3. object.get: 543465
  4. object.list: 3251
  5. object.put: 2213965
  6. object: 4230608