Add ProcsCreated stat for openbsd
This commit is contained in:
parent
28b2246b5b
commit
79e9a07263
|
@ -37,6 +37,12 @@ func AvgWithContext(ctx context.Context) (*AvgStat, error) {
|
|||
return ret, nil
|
||||
}
|
||||
|
||||
type forkstat struct {
|
||||
forks int
|
||||
vforks int
|
||||
__tforks int
|
||||
}
|
||||
|
||||
// Misc returns miscellaneous host-wide statistics.
|
||||
// darwin use ps command to get process running/blocked count.
|
||||
// Almost same as Darwin implementation, but state is different.
|
||||
|
@ -64,5 +70,11 @@ func MiscWithContext(ctx context.Context) (*MiscStat, error) {
|
|||
}
|
||||
}
|
||||
|
||||
f, err := getForkStat()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
ret.ProcsCreated = f.forks
|
||||
|
||||
return &ret, nil
|
||||
}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
// +build freebsd
|
||||
|
||||
package load
|
||||
|
||||
func getForkStat() (forkstat, error) {
|
||||
return forkstat{}, nil
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
// +build openbsd
|
||||
|
||||
package load
|
||||
|
||||
import (
|
||||
"unsafe"
|
||||
|
||||
"golang.org/x/sys/unix"
|
||||
)
|
||||
|
||||
func getForkStat() (forkstat, error) {
|
||||
b, err := unix.SysctlRaw("kern.forkstat")
|
||||
if err != nil {
|
||||
return forkstat{}, err
|
||||
}
|
||||
return *(*forkstat)(unsafe.Pointer((&b[0]))), nil
|
||||
}
|
Loading…
Reference in New Issue