Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(inputs.zfs): Parse metrics correctly on FreeBSD 14 #14176

Merged
merged 1 commit into from
Oct 25, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions plugins/inputs/zfs/testcases/freebsd/freebsd14/expected.out
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
zfs_pool,health=ONLINE,pool=zroot allocated=11959578624i,capacity=17i,dedupratio=1,fragmentation=4i,free=55149285376i,size=67108864000i 1698172931876196974
zfs_dataset,dataset=zroot avail=53069045760i,used=11959443456i,usedds=0i,usedsnap=0i 1698172931876204237
zfs_dataset,dataset=zroot/ROOT avail=53069045760i,used=4685123584i,usedds=0i,usedsnap=0i 1698172931876207310
zfs_dataset,dataset=zroot/ROOT/default avail=53069045760i,used=4684689408i,usedds=0i,usedsnap=0i 1698172931876213735
zfs_dataset,dataset=zroot/home avail=53069045760i,used=7263580160i,usedds=0i,usedsnap=0i 1698172931876217926
zfs_dataset,dataset=zroot/tmp avail=53069045760i,used=684032i,usedds=0i,usedsnap=0i 1698172931876220720
zfs_dataset,dataset=zroot/usr avail=53069045760i,used=1724416i,usedds=0i,usedsnap=0i 1698172931876224631
zfs_dataset,dataset=zroot/usr/obj avail=53069045760i,used=430080i,usedds=0i,usedsnap=0i 1698172931876227424
zfs_dataset,dataset=zroot/usr/ports avail=53069045760i,used=430080i,usedds=0i,usedsnap=0i 1698172931876230218
zfs_dataset,dataset=zroot/usr/src avail=53069045760i,used=430080i,usedds=0i,usedsnap=0i 1698172931876233291
zfs_dataset,dataset=zroot/var avail=53069045760i,used=2269184i,usedds=0i,usedsnap=0i 1698172931876237481
zfs_dataset,dataset=zroot/var/audit avail=53069045760i,used=438272i,usedds=0i,usedsnap=0i 1698172931876240554
zfs_dataset,dataset=zroot/var/log avail=53069045760i,used=544768i,usedds=0i,usedsnap=0i 1698172931876243348
zfs_dataset,dataset=zroot/var/mail avail=53069045760i,used=425984i,usedds=0i,usedsnap=0i 1698172931876246980
zfs_dataset,dataset=zroot/var/tmp avail=53069045760i,used=425984i,usedds=0i,usedsnap=0i 1698172931876249774
zfs,datasets=zroot::zroot/ROOT::zroot/ROOT/default::zroot/home::zroot/tmp::zroot/usr::zroot/usr/obj::zroot/usr/ports::zroot/usr/src::zroot/var::zroot/var/audit::zroot/var/log::zroot/var/mail::zroot/var/tmp,pools=zroot zfetchstats_hits=6439i,zfetchstats_io_active=0i,zfetchstats_io_issued=2197i,zfetchstats_max_streams=9411i,zfetchstats_misses=14538i 1698172931876287767
159 changes: 159 additions & 0 deletions plugins/inputs/zfs/testcases/freebsd/freebsd14/sysctl.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
{
"archstats": [
"kstat.zfs.misc.arcstats.abd_chunk_waste_size: 626176",
"kstat.zfs.misc.arcstats.cached_only_in_progress: 0",
"kstat.zfs.misc.arcstats.arc_raw_size: 0",
"kstat.zfs.misc.arcstats.arc_sys_free: 0",
"kstat.zfs.misc.arcstats.arc_need_free: 0",
"kstat.zfs.misc.arcstats.demand_iohit_prescient_prefetch: 1",
"kstat.zfs.misc.arcstats.demand_hit_prescient_prefetch: 14",
"kstat.zfs.misc.arcstats.prescient_prefetch: 15",
"kstat.zfs.misc.arcstats.demand_iohit_predictive_prefetch: 218",
"kstat.zfs.misc.arcstats.demand_hit_predictive_prefetch: 1778",
"kstat.zfs.misc.arcstats.predictive_prefetch: 5099",
"kstat.zfs.misc.arcstats.async_upgrade_sync: 135",
"kstat.zfs.misc.arcstats.arc_dnode_limit: 317881139",
"kstat.zfs.misc.arcstats.arc_meta_used: 80185232",
"kstat.zfs.misc.arcstats.arc_prune: 25",
"kstat.zfs.misc.arcstats.arc_loaned_bytes: 0",
"kstat.zfs.misc.arcstats.arc_tempreserve: 0",
"kstat.zfs.misc.arcstats.arc_no_grow: 0",
"kstat.zfs.misc.arcstats.memory_available_bytes: 3663839232",
"kstat.zfs.misc.arcstats.memory_free_bytes: 3752042496",
"kstat.zfs.misc.arcstats.memory_all_bytes: 4252553216",
"kstat.zfs.misc.arcstats.memory_indirect_count: 0",
"kstat.zfs.misc.arcstats.memory_direct_count: 0",
"kstat.zfs.misc.arcstats.memory_throttle_count: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_log_blks: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_bufs_precached: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_bufs: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_asize: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_size: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_lowmem: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_cksum_lb_errors: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_dh_errors: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_io_errors: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_unsupported: 0",
"kstat.zfs.misc.arcstats.l2_rebuild_success: 0",
"kstat.zfs.misc.arcstats.l2_data_to_meta_ratio: 0",
"kstat.zfs.misc.arcstats.l2_log_blk_count: 0",
"kstat.zfs.misc.arcstats.l2_log_blk_asize: 0",
"kstat.zfs.misc.arcstats.l2_log_blk_avg_asize: 0",
"kstat.zfs.misc.arcstats.l2_log_blk_writes: 0",
"kstat.zfs.misc.arcstats.l2_hdr_size: 0",
"kstat.zfs.misc.arcstats.l2_asize: 0",
"kstat.zfs.misc.arcstats.l2_size: 0",
"kstat.zfs.misc.arcstats.l2_io_error: 0",
"kstat.zfs.misc.arcstats.l2_cksum_bad: 0",
"kstat.zfs.misc.arcstats.l2_abort_lowmem: 0",
"kstat.zfs.misc.arcstats.l2_free_on_write: 0",
"kstat.zfs.misc.arcstats.l2_evict_l1cached: 0",
"kstat.zfs.misc.arcstats.l2_evict_reading: 0",
"kstat.zfs.misc.arcstats.l2_evict_lock_retry: 0",
"kstat.zfs.misc.arcstats.l2_writes_lock_retry: 0",
"kstat.zfs.misc.arcstats.l2_writes_error: 0",
"kstat.zfs.misc.arcstats.l2_writes_done: 0",
"kstat.zfs.misc.arcstats.l2_writes_sent: 0",
"kstat.zfs.misc.arcstats.l2_write_bytes: 0",
"kstat.zfs.misc.arcstats.l2_read_bytes: 0",
"kstat.zfs.misc.arcstats.l2_rw_clash: 0",
"kstat.zfs.misc.arcstats.l2_feeds: 0",
"kstat.zfs.misc.arcstats.l2_bufc_metadata_asize: 0",
"kstat.zfs.misc.arcstats.l2_bufc_data_asize: 0",
"kstat.zfs.misc.arcstats.l2_mfu_asize: 0",
"kstat.zfs.misc.arcstats.l2_mru_asize: 0",
"kstat.zfs.misc.arcstats.l2_prefetch_asize: 0",
"kstat.zfs.misc.arcstats.l2_misses: 0",
"kstat.zfs.misc.arcstats.l2_hits: 0",
"kstat.zfs.misc.arcstats.uncached_evictable_metadata: 0",
"kstat.zfs.misc.arcstats.uncached_evictable_data: 0",
"kstat.zfs.misc.arcstats.uncached_metadata: 0",
"kstat.zfs.misc.arcstats.uncached_data: 0",
"kstat.zfs.misc.arcstats.uncached_size: 0",
"kstat.zfs.misc.arcstats.mfu_ghost_evictable_metadata: 35231232",
"kstat.zfs.misc.arcstats.mfu_ghost_evictable_data: 31780352",
"kstat.zfs.misc.arcstats.mfu_ghost_metadata: 35231232",
"kstat.zfs.misc.arcstats.mfu_ghost_data: 31780352",
"kstat.zfs.misc.arcstats.mfu_ghost_size: 67011584",
"kstat.zfs.misc.arcstats.mfu_evictable_metadata: 648192",
"kstat.zfs.misc.arcstats.mfu_evictable_data: 29985280",
"kstat.zfs.misc.arcstats.mfu_metadata: 9697280",
"kstat.zfs.misc.arcstats.mfu_data: 31448576",
"kstat.zfs.misc.arcstats.mfu_size: 41145856",
"kstat.zfs.misc.arcstats.mru_ghost_evictable_metadata: 27670528",
"kstat.zfs.misc.arcstats.mru_ghost_evictable_data: 39195136",
"kstat.zfs.misc.arcstats.mru_ghost_metadata: 27670528",
"kstat.zfs.misc.arcstats.mru_ghost_data: 39195136",
"kstat.zfs.misc.arcstats.mru_ghost_size: 66865664",
"kstat.zfs.misc.arcstats.mru_evictable_metadata: 4007424",
"kstat.zfs.misc.arcstats.mru_evictable_data: 21310976",
"kstat.zfs.misc.arcstats.mru_metadata: 32238592",
"kstat.zfs.misc.arcstats.mru_data: 25252864",
"kstat.zfs.misc.arcstats.mru_size: 57491456",
"kstat.zfs.misc.arcstats.anon_evictable_metadata: 0",
"kstat.zfs.misc.arcstats.anon_evictable_data: 0",
"kstat.zfs.misc.arcstats.anon_metadata: 0",
"kstat.zfs.misc.arcstats.anon_data: 0",
"kstat.zfs.misc.arcstats.anon_size: 0",
"kstat.zfs.misc.arcstats.other_size: 36376512",
"kstat.zfs.misc.arcstats.bonus_size: 7930560",
"kstat.zfs.misc.arcstats.dnode_size: 20521584",
"kstat.zfs.misc.arcstats.dbuf_size: 7924368",
"kstat.zfs.misc.arcstats.metadata_size: 41935872",
"kstat.zfs.misc.arcstats.data_size: 56701440",
"kstat.zfs.misc.arcstats.hdr_size: 1872848",
"kstat.zfs.misc.arcstats.overhead_size: 29338112",
"kstat.zfs.misc.arcstats.uncompressed_size: 121843712",
"kstat.zfs.misc.arcstats.compressed_size: 69299200",
"kstat.zfs.misc.arcstats.size: 137512848",
"kstat.zfs.misc.arcstats.c_max: 3178811392",
"kstat.zfs.misc.arcstats.c_min: 132892288",
"kstat.zfs.misc.arcstats.c: 176014976",
"kstat.zfs.misc.arcstats.pm: 2306048980",
"kstat.zfs.misc.arcstats.pd: 1302662522",
"kstat.zfs.misc.arcstats.meta: 1110189320",
"kstat.zfs.misc.arcstats.hash_chain_max: 4",
"kstat.zfs.misc.arcstats.hash_chains: 68",
"kstat.zfs.misc.arcstats.hash_collisions: 15034",
"kstat.zfs.misc.arcstats.hash_elements_max: 91215",
"kstat.zfs.misc.arcstats.hash_elements: 7890",
"kstat.zfs.misc.arcstats.evict_l2_skip: 0",
"kstat.zfs.misc.arcstats.evict_l2_ineligible: 65306624",
"kstat.zfs.misc.arcstats.evict_l2_eligible_mru: 1369077760",
"kstat.zfs.misc.arcstats.evict_l2_eligible_mfu: 940835840",
"kstat.zfs.misc.arcstats.evict_l2_eligible: 2309913600",
"kstat.zfs.misc.arcstats.evict_l2_cached: 0",
"kstat.zfs.misc.arcstats.evict_not_enough: 12",
"kstat.zfs.misc.arcstats.evict_skip: 445",
"kstat.zfs.misc.arcstats.access_skip: 0",
"kstat.zfs.misc.arcstats.mutex_miss: 0",
"kstat.zfs.misc.arcstats.deleted: 90151",
"kstat.zfs.misc.arcstats.uncached_hits: 0",
"kstat.zfs.misc.arcstats.mfu_ghost_hits: 6108",
"kstat.zfs.misc.arcstats.mfu_hits: 1240173",
"kstat.zfs.misc.arcstats.mru_ghost_hits: 2692",
"kstat.zfs.misc.arcstats.mru_hits: 233633",
"kstat.zfs.misc.arcstats.prefetch_metadata_misses: 406",
"kstat.zfs.misc.arcstats.prefetch_metadata_iohits: 2315",
"kstat.zfs.misc.arcstats.prefetch_metadata_hits: 196",
"kstat.zfs.misc.arcstats.prefetch_data_misses: 2092",
"kstat.zfs.misc.arcstats.prefetch_data_iohits: 0",
"kstat.zfs.misc.arcstats.prefetch_data_hits: 105",
"kstat.zfs.misc.arcstats.demand_metadata_misses: 12021",
"kstat.zfs.misc.arcstats.demand_metadata_iohits: 87",
"kstat.zfs.misc.arcstats.demand_metadata_hits: 906938",
"kstat.zfs.misc.arcstats.demand_data_misses: 48482",
"kstat.zfs.misc.arcstats.demand_data_iohits: 128",
"kstat.zfs.misc.arcstats.demand_data_hits: 566567",
"kstat.zfs.misc.arcstats.misses: 63001",
"kstat.zfs.misc.arcstats.iohits: 2530",
"kstat.zfs.misc.arcstats.hits: 1473806"
],
"zfetchstats": [
"kstat.zfs.misc.zfetchstats.io_active: 0",
"kstat.zfs.misc.zfetchstats.io_issued: 2197",
"kstat.zfs.misc.zfetchstats.max_streams: 9411",
"kstat.zfs.misc.zfetchstats.misses: 14538",
"kstat.zfs.misc.zfetchstats.hits: 6439"
]
}
4 changes: 4 additions & 0 deletions plugins/inputs/zfs/testcases/freebsd/freebsd14/telegraf.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[[inputs.zfs]]
kstatMetrics = ["arcstats", "zfetchstats", "vdev_cache_stats"]
poolMetrics = true
datasetMetrics = true
1 change: 1 addition & 0 deletions plugins/inputs/zfs/testcases/freebsd/freebsd14/uname.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
14.0-RC2
14 changes: 14 additions & 0 deletions plugins/inputs/zfs/testcases/freebsd/freebsd14/zdataset.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
zroot 53069045760 11959443456 - -
zroot/ROOT 53069045760 4685123584 - -
zroot/ROOT/default 53069045760 4684689408 - -
zroot/home 53069045760 7263580160 - -
zroot/tmp 53069045760 684032 - -
zroot/usr 53069045760 1724416 - -
zroot/usr/obj 53069045760 430080 - -
zroot/usr/ports 53069045760 430080 - -
zroot/usr/src 53069045760 430080 - -
zroot/var 53069045760 2269184 - -
zroot/var/audit 53069045760 438272 - -
zroot/var/log 53069045760 544768 - -
zroot/var/mail 53069045760 425984 - -
zroot/var/tmp 53069045760 425984 - -
1 change: 1 addition & 0 deletions plugins/inputs/zfs/testcases/freebsd/freebsd14/zpool.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
zroot ONLINE 67108864000 11959578624 55149285376 4 17 1.00
10 changes: 7 additions & 3 deletions plugins/inputs/zfs/zfs.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,20 @@ var sampleConfig string
type Sysctl func(metric string) ([]string, error)
type Zpool func() ([]string, error)
type Zdataset func(properties []string) ([]string, error)
type Uname func() (string, error)

type Zfs struct {
KstatPath string
KstatMetrics []string
PoolMetrics bool
DatasetMetrics bool
sysctl Sysctl //nolint:unused // False positive - this var is used for non-default build tag: freebsd
zpool Zpool //nolint:unused // False positive - this var is used for non-default build tag: freebsd
zdataset Zdataset //nolint:unused // False positive - this var is used for non-default build tag: freebsd
Log telegraf.Logger `toml:"-"`

sysctl Sysctl //nolint:unused // False positive - this var is used for non-default build tag: freebsd
zpool Zpool //nolint:unused // False positive - this var is used for non-default build tag: freebsd
zdataset Zdataset //nolint:unused // False positive - this var is used for non-default build tag: freebsd
uname Uname //nolint:unused // False positive - this var is used for non-default build tag: freebsd
version int64 //nolint:unused // False positive - this var is used for non-default build tag: freebsd
}

func (*Zfs) SampleConfig() string {
Expand Down
Loading