Saturday, February 21, 2026

Re: Telegraf mem plugin and OpenBSD Cache memory

Morning,

I would appreciate any input on this :)

Best wishes,
Atanas

On 2026-02-18 15:58, Atanas Vladimirov wrote:
> Hello,
>
> I need your advice on something I just found.
> The short version is I started migrating from node_exporter to Telegraf
> and found discrepancy between how Telegraf reports memory usage
> compared to node_exporter.
>
> I have come with this Telegraf patch:
>
> ```
> Index: plugins/inputs/mem/mem.go
> --- plugins/inputs/mem/mem.go.orig
> +++ plugins/inputs/mem/mem.go
> @@ -50,7 +50,7 @@ func (ms *Mem) Gather(acc telegraf.Accumulator) error
> fields["wired"] = vm.Wired
> case "openbsd":
> fields["active"] = vm.Active
> - fields["cached"] = vm.Cached
> + fields["cached"] = vm.Buffers
> fields["free"] = vm.Free
> fields["inactive"] = vm.Inactive
> fields["wired"] = vm.Wired
> ```
>
> It works.
>
> The problem is that Telegraf reports cached = 0 because gopsutil sets
> Cached = 0.
>
> Here is the gopsutil part
> https://github.com/shirou/gopsutil/blob/67304c33f246d9598551d61af85690d50b3e8606/mem/mem_openbsd.go#L41
> ```
> ret := &VirtualMemoryStat{
> Total: uint64(uvmexp.Npages) * p,
> Free: uint64(uvmexp.Free) * p,
> Active: uint64(uvmexp.Active) * p,
> Inactive: uint64(uvmexp.Inactive) * p,
> Cached: 0, // not available <-- explicitly hardcoded
> Wired: uint64(uvmexp.Wired) * p,
> }
> ```
>
> The above patch uses `vm.Buffers` from gopsutil and this is what
> node_exporter does.
>
> I'm almost sure that you'll say that this should go upstream, right?
>
> My question is where should I try to send the patch - to Telegraf or to
> gopsutil? What would you suggest?
>
> (a patch for the gopsutil would be something like adding:
>
> ```
> ret.Cached = ret.Buffers <-- adds the Cached to be equal to Buffers
> ```
>
> of course, if this is the path I'll see to check and test it more)
>
> Thanks for you time and please add me in CC to the replies because I'm
> not subscribed to the list.
>
> Best wishes,
> Atanas

No comments:

Post a Comment