-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Closed
Description
Host operating system: FreeBSD myhost 14.0-RELEASE FreeBSD 14.0-RELEASE #0 releng/14.0-n265380-f9716eee8ab4: Fri Nov 10 05:57:23 UTC 2023 [email protected]:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64
node_exporter version: master branch on commit c2dcc79
I have 2 pool in my system
# zpool list
NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
datas 43.7T 952K 43.7T - - 0% 0% 1.00x ONLINE -
zroot 236G 5.07G 231G - - 0% 2% 1.00x ONLINE -
I run the sysctl
, unknown oid.
# sysctl -a 'kstat.zfs.pool.dataset'
sysctl: unknown oid 'kstat.zfs.pool.dataset'
I write the demo, maybe it's should work. I don't know if anyone fix this issues.
package main
import (
"fmt"
"golang.org/x/sys/unix"
)
func main() {
zfsDatasetNames := []string{"datas", "zroot"}
for zfsRootNameID := range zfsDatasetNames {
sysCtlMetrics := []string{
"nunlinked", "nunlinks", "nread", "reads", "nwritten", "writes",
}
for sysCtlMetricID := range sysCtlMetrics {
zfsPoolMibPrefix := fmt.Sprintf("kstat.zfs.%s.dataset.objset-0x36.%s", zfsDatasetNames[zfsRootNameID], sysCtlMetrics[sysCtlMetricID])
metricData, err := unix.SysctlUint64(zfsPoolMibPrefix)
if err != nil {
fmt.Println("couldn't get sysctl:", err)
}
fmt.Println(fmt.Sprintf("%s\t%d", zfsPoolMibPrefix, metricData))
}
}
}
# go run main.go
kstat.zfs.datas.dataset.objset-0x36.nunlinked 0
kstat.zfs.datas.dataset.objset-0x36.nunlinks 0
kstat.zfs.datas.dataset.objset-0x36.nread 0
kstat.zfs.datas.dataset.objset-0x36.reads 0
kstat.zfs.datas.dataset.objset-0x36.nwritten 54
kstat.zfs.datas.dataset.objset-0x36.writes 4
kstat.zfs.zroot.dataset.objset-0x36.nunlinked 0
kstat.zfs.zroot.dataset.objset-0x36.nunlinks 0
kstat.zfs.zroot.dataset.objset-0x36.nread 0
kstat.zfs.zroot.dataset.objset-0x36.reads 0
kstat.zfs.zroot.dataset.objset-0x36.nwritten 0
kstat.zfs.zroot.dataset.objset-0x36.writes 0
And , I try build the project. Some error for me.
# go version
go version go1.21.5 freebsd/amd64
go build
# github.com/prometheus/node_exporter/collector
collector/exec_bsd.go:65:4: undefined: labels
collector/exec_bsd.go:65:12: cannot use nil as bsdSysctl value in array or slice literal
collector/zfs_freebsd.go:338:6: undefined: strings
collector/zfs_freebsd.go:339:46: undefined: strings
collector/zfs_freebsd.go:343:28: undefined: zfsDatasetsNames
collector/zfs_freebsd.go:346:15: undefined: strings
collector/zfs_freebsd.go:350:22: undefined: fmt.SprintF
collector/zfs_freebsd.go:351:22: undefined: fmt.SprintF
collector/zfs_freebsd.go:352:60: undefined: poolObj
Maybe I can fix this issues, and I need a new FreeBSD version build.
So anyone try fix this before me?
Metadata
Metadata
Assignees
Labels
No labels