diff --git a/cmd/telegraf/telegraf_posix.go b/cmd/telegraf/telegraf_posix.go index 5658ff0fe..3a6c43dd2 100644 --- a/cmd/telegraf/telegraf_posix.go +++ b/cmd/telegraf/telegraf_posix.go @@ -4,6 +4,7 @@ package main import ( "log" + "runtime" "syscall" ) @@ -20,8 +21,16 @@ func (t *Telegraf) Run() error { } func getLockedMemoryLimit() uint64 { - // From https://elixir.bootlin.com/linux/latest/source/include/uapi/asm-generic/resource.h#L35 - const rLimitMemlock = 8 + var rLimitMemlock int + + switch runtime.GOOS { + case "dragonfly", "freebsd", "netbsd", "openbsd": + // From https://cgit.freebsd.org/src/tree/sys/sys/resource.h#n107 + rLimitMemlock = 6 + default: + // From https://elixir.bootlin.com/linux/latest/source/include/uapi/asm-generic/resource.h#L35 + rLimitMemlock = 8 + } var limit syscall.Rlimit if err := syscall.Getrlimit(rLimitMemlock, &limit); err != nil {