sys-info
Periodic host metrics source. Emits one structured metrics event per interval tick covering host identity, memory, swap, CPU, network I/O, disk usage + I/O, and component temperatures.
Reuses the existing sysinfo crate (no extra dependencies). Pair it with any sink to ship host metrics through your pipeline.
Config
Unknown config keys are rejected at startup. Filter values are compiled eagerly: invalid glob patterns fail before the pipeline starts.
Recommended minimum interval: 5 seconds. Refresh calls do syscalls; very short intervals are operator's responsibility.
Event shape
{
"type": "metrics",
"ts": 1718000000000,
"interval-secs": 30,
"host": {
"name": "web-01",
"uptime-secs": 864000,
"os": "Ubuntu 22.04.3 LTS",
"kernel": "5.15.0-91-generic"
},
"memory": {
"total-bytes": 17179869184,
"used-bytes": 9663676416,
"avail-bytes": 7516192768
},
"swap": {
"total-bytes": 4294967296,
"used-bytes": 1073741824
},
"cpu": {
"usage-pct": 12.4,
"core-count": 8,
"load-avg-1": 1.23,
"load-avg-5": 0.98,
"load-avg-15": 0.75
},
"network": {
"eth0": {
"rx-bytes": 204800,
"tx-bytes": 81920,
"rx-pkts": 142,
"tx-pkts": 98,
"rx-errors": 0,
"tx-errors": 0
}
},
"disks": {
"/": {
"device": "/dev/sda1",
"kind": "ssd",
"total-bytes": 500107862016,
"used-bytes": 312345600000,
"rx-bytes": 4096,
"tx-bytes": 8192
}
},
"temps": {
"CPU": {
"current-celsius": 52.0,
"max-celsius": 95.0,
"critical-celsius": 100.0
}
}
}
network, disks, and temps are maps keyed by interface name, mount point, and component label respectively. Disk kind is one of "ssd", "hdd", or "unknown". Components with no readable temperature are omitted.
Network and disk rx-bytes/tx-bytes are deltas since the previous tick; the first event after start may show zeros while the deltas warm up.
Platform availability
sysinfo does not expose every category on every platform. On start(), the plugin probes for empty network, disks, and temps collections and logs a warning of the form:
[sys-info] warning: <category> not available on this platform
before the first tick fires.
Example
pipeline:
sys-info:
config:
interval: 30
interfaces: ["eth*", "en*"]
disks: ["/", "/var/*"]
stdout:
inChannels:
- sys-info