feat(agent): host collector for /proc loadavg, meminfo, uptime

This commit is contained in:
Carsten 2026-04-21 22:08:04 +02:00
parent e4db0beac6
commit ce828084c8
5 changed files with 152 additions and 0 deletions

View file

@ -0,0 +1,37 @@
defmodule ProxmoxAgent.Collectors.HostTest do
use ExUnit.Case, async: true
alias ProxmoxAgent.Collectors.Host
@proc Path.expand("../../fixtures/proc", __DIR__)
test "collects load average" do
sample = Host.collect(proc_dir: @proc)
assert sample.load1 == 0.42
assert sample.load5 == 0.55
assert sample.load15 == 0.31
end
test "collects memory in bytes" do
sample = Host.collect(proc_dir: @proc)
assert sample.mem_total_bytes == 16_384_000 * 1024
assert sample.mem_available_bytes == 8_192_000 * 1024
assert sample.mem_used_bytes == sample.mem_total_bytes - sample.mem_available_bytes
end
test "collects uptime seconds" do
sample = Host.collect(proc_dir: @proc)
assert sample.uptime_seconds == 123_456
end
test "includes hostname string" do
sample = Host.collect(proc_dir: @proc)
assert is_binary(sample.hostname)
assert sample.hostname != ""
end
test "missing proc files yield :errors field, not a crash" do
sample = Host.collect(proc_dir: "/nonexistent/path/xyz")
assert sample.errors != []
end
end