How izzudin96/nadi-agent works
nadi-agent is a device-monitoring agent: it loads device and server settings, periodically gathers enabled system metrics, packages them as heartbeats, and sends them to nadi-server. Failed sends are persisted and retried with backoff. The graph includes the major collector capability families indicated by the source tree; wiring within unsampled collector implementations is not expanded beyond the registry’s documented role.
Main entry points: registry.go Collector registry · main.go Agent entrypoint · agent.go Collection loop · sender.go HTTP sender
Components 21
Startup and configuration
- Agent config
- Agent entrypoint
cmd/nadi-agent/main.go - Config loader
internal/config/config.go
Metric collection
- Collector registry
internal/collector/registry.go - System metrics
internal/collector/cpu.go - Memory metrics
internal/collector/memory.go - Disk metrics
internal/collector/disk.go - Disk SMART
internal/collector/disk_smart.go - Network metrics
internal/collector/network.go - Platform sensors
internal/collector/energy.go - GPU metrics
internal/collector/gpu.go - Temperature metrics
internal/collector/temperature.go - TURN metrics
internal/collector/turn.go - Agent metrics
internal/collector/self.go
Heartbeat delivery
- Collection loop
internal/agent/agent.go - Heartbeat schema
internal/payload/payload.go - HTTP sender
internal/sender/sender.go
Durable retry
- Disk-backed queue
internal/buffer/buffer.go - Retry backoff
internal/backoff/backoff.go
Other components
- Agent operator
- Nadi server
Connections 24
- Agent operator → Agent config: provides settings
- Agent entrypoint → Config loader: loads config
- Agent config → Config loader: read settings
- Agent entrypoint → Collector registry: creates registry
- Agent entrypoint → HTTP sender: creates sender
- Agent entrypoint → Disk-backed queue: opens queue
- Agent entrypoint → Collection loop: starts loop
- Collection loop → Collector registry: collects metrics
- Collector registry → System metrics: runs enabled
- Collector registry → Memory metrics: runs enabled
- Collector registry → Disk metrics: runs enabled
- Collector registry → Disk SMART: runs enabled
- Collector registry → Network metrics: runs enabled
- Collector registry → Platform sensors: runs enabled
- Collector registry → GPU metrics: runs enabled
- Collector registry → Temperature metrics: runs enabled
- Collector registry → TURN metrics: runs enabled
- Collector registry → Agent metrics: runs enabled
- Collection loop → HTTP sender: builds and sends
- HTTP sender → Heartbeat schema: serializes heartbeat
- HTTP sender → Nadi server: posts heartbeat
- Collection loop → Disk-backed queue: queues and flushes
- Disk-backed queue → Disk-backed queue: persists entries
- Collection loop → Retry backoff: schedules retries