ZFS 输入插件
此插件使用 Linux 上的 /proc/spl/kstat/zfs 和 FreeBSD 上的 sysctl、zfs 和 zpool 来收集 ZFS 文件系统的指标。
引入版本: Telegraf v0.2.1 标签: system 操作系统支持: freebsd, linux
全局配置选项
插件支持其他全局和插件配置设置,用于修改指标、标签和字段,创建别名以及配置插件顺序等任务。更多详情请参阅 CONFIGURATION.md。
配置
# Read metrics of ZFS from arcstats, zfetchstats, vdev_cache_stats, pools and datasets
# This plugin ONLY supports Linux & FreeBSD
[[inputs.zfs]]
## ZFS kstat path. Ignored on FreeBSD
## If not specified, then default is:
# kstatPath = "/proc/spl/kstat/zfs"
## By default, telegraf gather all zfs stats
## Override the stats list using the kstatMetrics array:
## For FreeBSD, the default is:
# kstatMetrics = ["arcstats", "zfetchstats", "vdev_cache_stats"]
## For Linux, the default is:
# kstatMetrics = ["abdstats", "arcstats", "dnodestats", "dbufcachestats",
# "dmu_tx", "fm", "vdev_mirror_stats", "zfetchstats", "zil"]
## By default, don't gather zpool stats
# poolMetrics = false
## By default, don't gather dataset stats
# datasetMetrics = false
## Report fields as the type defined by ZFS (Linux only)
## This is disabled for backward compatibility but is STRONGLY RECOMMENDED
## to be enabled to avoid overflows. This requires UINT support on the output
## for most fields.
## useNativeTypes = falseLinux 上的 OpenZFS 会报告字段类型,特别是数据集指标。默认情况下,此插件将忽略提供的类型,并将指标报告为有符号 64 位整数。
强烈建议通过将 useNativeTypes 设置为 true 来使用报告的类型,以避免字段值溢出,因为大多数字段都报告为无符号 64 位整数。此外,您必须确保您的输出支持报告无符号值!
更改 useNativeTypes 的设置将生成具有冲突字段类型的指标,因此您需要迁移现有数据或清除数据库(例如 InfluxDB 输出)!
Metrics
默认情况下,此插件会收集有关 ZFS 内部池和数据集的指标。这些指标是计数器或以字节为单位的度量大小。这些指标将在 zfs 测量中,字段名称如下所示。
如果启用了 poolMetrics,则将为每个池收集其他指标。
如果启用了 datasetMetrics,则将为每个数据集收集其他指标。
- zfs 包含下面列出的字段。
ARC 统计信息 (FreeBSD 和 Linux)
- arcstats_allocated (仅限 FreeBSD)
- arcstats_anon_evict_data (仅限 Linux)
- arcstats_anon_evict_metadata (仅限 Linux)
- arcstats_anon_evictable_data (仅限 FreeBSD)
- arcstats_anon_evictable_metadata (仅限 FreeBSD)
- arcstats_anon_size
- arcstats_arc_loaned_bytes (仅限 Linux)
- arcstats_arc_meta_limit
- arcstats_arc_meta_max
- arcstats_arc_meta_min (仅限 FreeBSD)
- arcstats_arc_meta_used
- arcstats_arc_no_grow (仅限 Linux)
- arcstats_arc_prune (仅限 Linux)
- arcstats_arc_tempreserve (仅限 Linux)
- arcstats_c
- arcstats_c_max
- arcstats_c_min
- arcstats_data_size
- arcstats_deleted
- arcstats_demand_data_hits
- arcstats_demand_data_misses
- arcstats_demand_hit_predictive_prefetch (仅限 FreeBSD)
- arcstats_demand_metadata_hits
- arcstats_demand_metadata_misses
- arcstats_duplicate_buffers
- arcstats_duplicate_buffers_size
- arcstats_duplicate_reads
- arcstats_evict_l2_cached
- arcstats_evict_l2_eligible
- arcstats_evict_l2_ineligible
- arcstats_evict_l2_skip (仅限 FreeBSD)
- arcstats_evict_not_enough (仅限 FreeBSD)
- arcstats_evict_skip
- arcstats_hash_chain_max
- arcstats_hash_chains
- arcstats_hash_collisions
- arcstats_hash_elements
- arcstats_hash_elements_max
- arcstats_hdr_size
- arcstats_hits
- arcstats_l2_abort_lowmem
- arcstats_l2_asize
- arcstats_l2_cdata_free_on_write
- arcstats_l2_cksum_bad
- arcstats_l2_compress_failures
- arcstats_l2_compress_successes
- arcstats_l2_compress_zeros
- arcstats_l2_evict_l1cached (仅限 FreeBSD)
- arcstats_l2_evict_lock_retry
- arcstats_l2_evict_reading
- arcstats_l2_feeds
- arcstats_l2_free_on_write
- arcstats_l2_hdr_size
- arcstats_l2_hits
- arcstats_l2_io_error
- arcstats_l2_misses
- arcstats_l2_read_bytes
- arcstats_l2_rw_clash
- arcstats_l2_size
- arcstats_l2_write_buffer_bytes_scanned (仅限 FreeBSD)
- arcstats_l2_write_buffer_iter (仅限 FreeBSD)
- arcstats_l2_write_buffer_list_iter (仅限 FreeBSD)
- arcstats_l2_write_buffer_list_null_iter (仅限 FreeBSD)
- arcstats_l2_write_bytes
- arcstats_l2_write_full (仅限 FreeBSD)
- arcstats_l2_write_in_l2 (仅限 FreeBSD)
- arcstats_l2_write_io_in_progress (仅限 FreeBSD)
- arcstats_l2_write_not_cacheable (仅限 FreeBSD)
- arcstats_l2_write_passed_headroom (仅限 FreeBSD)
- arcstats_l2_write_pios (仅限 FreeBSD)
- arcstats_l2_write_spa_mismatch (仅限 FreeBSD)
- arcstats_l2_write_trylock_fail (仅限 FreeBSD)
- arcstats_l2_writes_done
- arcstats_l2_writes_error
- arcstats_l2_writes_hdr_miss (仅限 Linux)
- arcstats_l2_writes_lock_retry (仅限 FreeBSD)
- arcstats_l2_writes_sent
- arcstats_memory_direct_count (仅限 Linux)
- arcstats_memory_indirect_count (仅限 Linux)
- arcstats_memory_throttle_count
- arcstats_meta_size (仅限 Linux)
- arcstats_mfu_evict_data (仅限 Linux)
- arcstats_mfu_evict_metadata (仅限 Linux)
- arcstats_mfu_ghost_evict_data (仅限 Linux)
- arcstats_mfu_ghost_evict_metadata (仅限 Linux)
- arcstats_metadata_size (仅限 FreeBSD)
- arcstats_mfu_evictable_data (仅限 FreeBSD)
- arcstats_mfu_evictable_metadata (仅限 FreeBSD)
- arcstats_mfu_ghost_evictable_data (仅限 FreeBSD)
- arcstats_mfu_ghost_evictable_metadata (仅限 FreeBSD)
- arcstats_mfu_ghost_hits
- arcstats_mfu_ghost_size
- arcstats_mfu_hits
- arcstats_mfu_size
- arcstats_misses
- arcstats_mru_evict_data (仅限 Linux)
- arcstats_mru_evict_metadata (仅限 Linux)
- arcstats_mru_ghost_evict_data (仅限 Linux)
- arcstats_mru_ghost_evict_metadata (仅限 Linux)
- arcstats_mru_evictable_data (仅限 FreeBSD)
- arcstats_mru_evictable_metadata (仅限 FreeBSD)
- arcstats_mru_ghost_evictable_data (仅限 FreeBSD)
- arcstats_mru_ghost_evictable_metadata (仅限 FreeBSD)
- arcstats_mru_ghost_hits
- arcstats_mru_ghost_size
- arcstats_mru_hits
- arcstats_mru_size
- arcstats_mutex_miss
- arcstats_other_size
- arcstats_p
- arcstats_prefetch_data_hits
- arcstats_prefetch_data_misses
- arcstats_prefetch_metadata_hits
- arcstats_prefetch_metadata_misses
- arcstats_recycle_miss (仅限 Linux)
- arcstats_size
- arcstats_sync_wait_for_async (仅限 FreeBSD)
具有以下含义
arcstats_hitsARC 中的缓存命中总数。arcstats_missesARC 中的缓存未命中总数。arcstats_demand_data_hits需求数据的缓存命中数,这是您的应用程序/共享真正关心(好)的。arcstats_demand_data_misses需求数据的缓存未命中数,这是您的应用程序/共享真正关心(不好)的。arcstats_demand_metadata_hits需求元数据的缓存命中数,这对获取文件系统数据(ls、find 等)很重要(好)。arcstats_demand_metadata_misses需求元数据的缓存未命中数,这对获取文件系统数据(ls、find 等)很重要(不好)。arcstats_prefetch_data_hitsZFS 预取器尝试预取某些内容,但它已被缓存(无聊)。arcstats_prefetch_data_missesZFS 预取器预取了缓存中不存在的内容(干得好,将来可能会成为需求命中)。arcstats_prefetch_metadata_hits与上面相同,但针对元数据。arcstats_prefetch_metadata_misses与上面相同,但针对元数据。arcstats_mru_hits在“最近最少使用缓存”中命中缓存,我们将此移至 mfu 缓存。arcstats_mru_ghost_hits在“最近最少使用 ghost 列表”中命中缓存,我们之前在缓存中有此项,但已将其逐出,也许我们应该增加 mru 缓存大小。arcstats_mfu_hits在“最常使用缓存”中命中缓存,我们将此移至 mfu 缓存的开头。arcstats_mfu_ghost_hits在“最常使用 ghost 列表”中命中缓存,我们之前在缓存中有此项,但已将其逐出,也许我们应该增加 mfu 缓存大小。arcstats_allocated新数据被写入缓存。arcstats_deleted旧数据从缓存中逐出(删除)。arcstats_evict_l2_cached我们从 arc 中逐出了某些内容,但它仍然在 l2 中缓存,以备不时之需。arcstats_evict_l2_eligible我们从 arc 中逐出了某些内容,但它不在 l2 中,这很遗憾。(也许我们没有足够的时间将其存储在那里)arcstats_evict_l2_ineligible我们逐出了无法存储在 l2 中的内容。原因可能是- 我们有多个池,我们从没有 l2 设备的池中逐出了某些内容。
- ZFS 属性 secondary cache。
arcstats_cARC 目标大小,这是系统认为 ARC 应该具有的大小。arcstats_sizeARC 的总大小。arcstats_l2_hitsL2 缓存的命中数。(不在 arc 中,但在 l2 缓存中)arcstats_l2_missesL2 缓存的未命中数。(不在 arc 中,也不在 l2 缓存中)arcstats_l2_sizeL2 缓存的大小。arcstats_l2_hdr_sizeARC (ram) 中用于管理(查找是否在 l2 中)l2 缓存的元数据大小。
Zfetch 统计信息 (FreeBSD 和 Linux)
- zfetchstats_bogus_streams (仅限 Linux)
- zfetchstats_colinear_hits (仅限 Linux)
- zfetchstats_colinear_misses (仅限 Linux)
- zfetchstats_hits
- zfetchstats_max_streams (仅限 FreeBSD)
- zfetchstats_misses
- zfetchstats_reclaim_failures (仅限 Linux)
- zfetchstats_reclaim_successes (仅限 Linux)
- zfetchstats_streams_noresets (仅限 Linux)
- zfetchstats_streams_resets (仅限 Linux)
- zfetchstats_stride_hits (仅限 Linux)
- zfetchstats_stride_misses (仅限 Linux)
具有以下含义
zfetchstats_hits计算缓存命中数,这些缓存命中是预取器放入缓存的。zfetchstats_misses计算预取缓存未命中数。zfetchstats_colinear_hits计算缓存命中数,这些缓存命中是预取器放入缓存的(预取的线性读取)。zfetchstats_stride_hits计算缓存命中数,这些缓存命中是预取器放入缓存的(预取的跨步读取)。
Vdev 缓存统计信息 (FreeBSD)
vdev 缓存已在某些 ZFS 实现中弃用。
- vdev_cache_stats_delegations
- vdev_cache_stats_hits
- vdev_cache_stats_misses
具有以下含义
vdev_cache_stats_hitsvdev(设备级别)缓存的命中数。vdev_cache_stats_missesvdev(设备级别)缓存的未命中数。
池指标 (可选)
在 Linux 上(参考:kstat 累积时间和队列长度统计信息)
- zfs_pool
- nread (整数, 字节)
- nwritten (整数, 字节)
- reads (整数, 计数)
- writes (整数, 计数)
- wtime (整数, 纳秒)
- wlentime (整数, queuelength * nanoseconds)
- wupdate (整数, 时间戳)
- rtime (整数, 纳秒)
- rlentime (整数, queuelength * nanoseconds)
- rupdate (整数, 时间戳)
- wcnt (整数, 计数)
- rcnt (整数, 计数)
对于 ZFS >= 2.1.x,格式已发生重大变化
- zfs_pool
- writes (整数, 计数)
- nwritten (整数, 字节)
- reads (整数, 计数)
- nread (整数, 字节)
- nunlinks (整数, 计数)
- nunlinked (整数, 计数)
对于 ZFS >= 2.2.x,可提供以下附加字段
- ZFS > 2.2.x 的附加字段
- zil_commit_count (整数, 计数)
- zil_commit_writer_count (整数, 计数)
- zil_itx_count (整数, 计数)
- zil_itx_indirect_count (整数, 计数)
- zil_itx_indirect_bytes (整数, 字节)
- zil_itx_copied_count (整数, 计数)
- zil_itx_copied_bytes (整数, 字节)
- zil_itx_needcopy_count (整数, 计数)
- zil_itx_needcopy_bytes (整数, 字节)
- zil_itx_metaslab_normal_count (整数, 计数)
- zil_itx_metaslab_normal_bytes (整数, 字节)
- zil_itx_metaslab_normal_write (整数, 字节)
- zil_itx_metaslab_normal_alloc (整数, 字节)
- zil_itx_metaslab_slog_count (整数, 计数)
- zil_itx_metaslab_slog_bytes (整数, 字节)
- zil_itx_metaslab_slog_write (整数, 字节)
- zil_itx_metaslab_slog_alloc (整数, 字节)
在 FreeBSD 上
- zfs_pool
- allocated (整数, 字节)
- capacity (整数, 字节)
- dedupratio (浮点数, 比率)
- free (整数, 字节)
- size (整数, 字节)
- fragmentation (整数, 百分比)
kstatMetrics 中的 zil 测量是系统范围的,而 poolMetrics 中的测量是池范围的。
zil_commit_count计算 ZFS 事务何时提交到 ZIL。
数据集指标 (可选,仅限 FreeBSD)
- zfs_dataset
- avail (整数, 字节)
- used (整数, 字节)
- usedsnap (整数, 字节)
- usedds (整数, 字节)
ABD 统计信息 (仅限 Linux)
ABD 是 ARC 的线性/分散双类型缓冲区。
abdstats_linear_cnt当前分配的线性 ABD 数量。abdstats_linear_data_size所有线性 ABD 中存储的数据量。abdstats_scatter_cnt当前分配的分散 ABD 数量。abdstats_scatter_data_size所有分散 ABD 中存储的数据量。
DMU 统计信息 (仅限 Linux)
dmu_tx_dirty_throttle计算因脏数据量过大而减缓写入。dmu_tx_memory_reclaim计算在内存不足且减缓活动时。dmu_tx_memory_reserve计算当 txg 的内存占用超过 ARC 大小时。
故障管理 Ereport 错误 (仅限 Linux)
fm_erpt-dropped计算无法创建错误报告时(例如可用内存过低)。
标签
ZFS 统计信息 (
zfs) 将具有以下标签。- pools - 机器上所有 ZFS 池的
::连接列表。 - datasets - 机器上所有 ZFS 数据集的
::连接列表。
- pools - 机器上所有 ZFS 池的
池指标 (
zfs_pool) 将具有以下标签。- pool - 包含指标的池的名称。
- health - 池的健康状态。(仅限 FreeBSD)
- dataset - 仅限 ZFS >= 2.1.x。(仅限 Linux)
数据集指标 (
zfs_dataset) 将具有以下标签。- dataset - 包含指标的数据集的名称。
示例输出
zfs_pool,health=ONLINE,pool=zroot allocated=1578590208i,capacity=2i,dedupratio=1,fragmentation=1i,free=64456531968i,size=66035122176i 1464473103625653908
zfs_dataset,dataset=zata avail=10741741326336,used=8564135526400,usedsnap=0,usedds=90112
zfs,pools=zroot arcstats_allocated=4167764i,arcstats_anon_evictable_data=0i,arcstats_anon_evictable_metadata=0i,arcstats_anon_size=16896i,arcstats_arc_meta_limit=10485760i,arcstats_arc_meta_max=115269568i,arcstats_arc_meta_min=8388608i,arcstats_arc_meta_used=51977456i,arcstats_c=16777216i,arcstats_c_max=41943040i,arcstats_c_min=16777216i,arcstats_data_size=0i,arcstats_deleted=1699340i,arcstats_demand_data_hits=14836131i,arcstats_demand_data_misses=2842945i,arcstats_demand_hit_predictive_prefetch=0i,arcstats_demand_metadata_hits=1655006i,arcstats_demand_metadata_misses=830074i,arcstats_duplicate_buffers=0i,arcstats_duplicate_buffers_size=0i,arcstats_duplicate_reads=123i,arcstats_evict_l2_cached=0i,arcstats_evict_l2_eligible=332172623872i,arcstats_evict_l2_ineligible=6168576i,arcstats_evict_l2_skip=0i,arcstats_evict_not_enough=12189444i,arcstats_evict_skip=195190764i,arcstats_hash_chain_max=2i,arcstats_hash_chains=10i,arcstats_hash_collisions=43134i,arcstats_hash_elements=2268i,arcstats_hash_elements_max=6136i,arcstats_hdr_size=565632i,arcstats_hits=16515778i,arcstats_l2_abort_lowmem=0i,arcstats_l2_asize=0i,arcstats_l2_cdata_free_on_write=0i,arcstats_l2_cksum_bad=0i,arcstats_l2_compress_failures=0i,arcstats_l2_compress_successes=0i,arcstats_l2_compress_zeros=0i,arcstats_l2_evict_l1cached=0i,arcstats_l2_evict_lock_retry=0i,arcstats_l2_evict_reading=0i,arcstats_l2_feeds=0i,arcstats_l2_free_on_write=0i,arcstats_l2_hdr_size=0i,arcstats_l2_hits=0i,arcstats_l2_io_error=0i,arcstats_l2_misses=0i,arcstats_l2_read_bytes=0i,arcstats_l2_rw_clash=0i,arcstats_l2_size=0i,arcstats_l2_write_buffer_bytes_scanned=0i,arcstats_l2_write_buffer_iter=0i,arcstats_l2_write_buffer_list_iter=0i,arcstats_l2_write_buffer_list_null_iter=0i,arcstats_l2_write_bytes=0i,arcstats_l2_write_full=0i,arcstats_l2_write_in_l2=0i,arcstats_l2_write_io_in_progress=0i,arcstats_l2_write_not_cacheable=380i,arcstats_l2_write_passed_headroom=0i,arcstats_l2_write_pios=0i,arcstats_l2_write_spa_mismatch=0i,arcstats_l2_write_trylock_fail=0i,arcstats_l2_writes_done=0i,arcstats_l2_writes_error=0i,arcstats_l2_writes_lock_retry=0i,arcstats_l2_writes_sent=0i,arcstats_memory_throttle_count=0i,arcstats_metadata_size=17014784i,arcstats_mfu_evictable_data=0i,arcstats_mfu_evictable_metadata=16384i,arcstats_mfu_ghost_evictable_data=5723648i,arcstats_mfu_ghost_evictable_metadata=10709504i,arcstats_mfu_ghost_hits=1315619i,arcstats_mfu_ghost_size=16433152i,arcstats_mfu_hits=7646611i,arcstats_mfu_size=305152i,arcstats_misses=3676993i,arcstats_mru_evictable_data=0i,arcstats_mru_evictable_metadata=0i,arcstats_mru_ghost_evictable_data=0i,arcstats_mru_ghost_evictable_metadata=80896i,arcstats_mru_ghost_hits=324250i,arcstats_mru_ghost_size=80896i,arcstats_mru_hits=8844526i,arcstats_mru_size=16693248i,arcstats_mutex_miss=354023i,arcstats_other_size=34397040i,arcstats_p=4172800i,arcstats_prefetch_data_hits=0i,arcstats_prefetch_data_misses=0i,arcstats_prefetch_metadata_hits=24641i,arcstats_prefetch_metadata_misses=3974i,arcstats_size=51977456i,arcstats_sync_wait_for_async=0i,vdev_cache_stats_delegations=779i,vdev_cache_stats_hits=323123i,vdev_cache_stats_misses=59929i,zfetchstats_hits=0i,zfetchstats_max_streams=0i,zfetchstats_misses=0i 1464473103634124908此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 Telegraf 和本文档提出反馈和 bug 报告。要获取支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。