Edge Agent Collectors
Collectors are the data-gathering components of the Edge Agent. Each collector is responsible for a specific type of telemetry data. All collectors run independently and can be individually enabled, disabled, or configured.
Built-in Collectors
System Collector
Collects host-level system metrics.
Metrics collected:
| Metric | Type | Description |
|---|---|---|
system.cpu.usage | gauge | CPU usage percentage (per-core and aggregate) |
system.cpu.iowait | gauge | Percentage of time waiting on I/O |
system.memory.used | gauge | Used memory in bytes |
system.memory.available | gauge | Available memory in bytes |
system.memory.usage | gauge | Memory usage percentage |
system.swap.used | gauge | Swap space used in bytes |
system.load.1m | gauge | 1-minute load average |
system.load.5m | gauge | 5-minute load average |
system.load.15m | gauge | 15-minute load average |
system.uptime | counter | System uptime in seconds |
Default interval: 10 seconds
Process Collector
Collects per-process resource usage for the top N processes by CPU and memory consumption.
Metrics collected:
| Metric | Type | Description |
|---|---|---|
process.cpu.usage | gauge | CPU usage per process |
process.memory.rss | gauge | Resident set size per process |
process.memory.vms | gauge | Virtual memory size per process |
process.threads | gauge | Thread count per process |
process.fd.count | gauge | Open file descriptor count |
process.io.read_bytes | counter | Bytes read from disk |
process.io.write_bytes | counter | Bytes written to disk |
Default interval: 30 seconds
Disk Collector
Collects disk usage and I/O performance metrics.
Metrics collected:
| Metric | Type | Description |
|---|---|---|
disk.usage | gauge | Disk usage percentage per mount point |
disk.used | gauge | Used space in bytes |
disk.free | gauge | Free space in bytes |
disk.inodes.used | gauge | Used inode count |
disk.io.read_ops | counter | Read operations per second |
disk.io.write_ops | counter | Write operations per second |
disk.io.read_bytes | counter | Bytes read per second |
disk.io.write_bytes | counter | Bytes written per second |
disk.io.await | gauge | Average I/O wait time in ms |
Default interval: 30 seconds
Network Collector
Collects network interface traffic and connection metrics.
Metrics collected:
| Metric | Type | Description |
|---|---|---|
network.bytes.sent | counter | Bytes sent per interface |
network.bytes.recv | counter | Bytes received per interface |
network.packets.sent | counter | Packets sent per interface |
network.packets.recv | counter | Packets received per interface |
network.errors.in | counter | Inbound errors per interface |
network.errors.out | counter | Outbound errors per interface |
network.connections | gauge | Active TCP connections by state |
Default interval: 10 seconds
Log Collector
Tails log files and forwards them to the Tenant Plane with structured field extraction.
Features:
- Glob-pattern file discovery (e.g.,
/var/log/*.log) - Automatic multiline detection for stack traces and structured logs
- Built-in parsers for syslog, JSON, Apache/Nginx access logs, and common application frameworks
- Custom parser support via Grok patterns
- File rotation handling (detects renamed/truncated files)
- Bookmark persistence (resumes from last read position after agent restart)
Custom Collectors
You can extend the agent with custom collectors by placing scripts in /etc/atlasai/collectors.d/:
#!/bin/bash
# /etc/atlasai/collectors.d/my-app-health.sh
# Runs every collection interval and outputs metrics in a simple format
response=$(curl -s http://localhost:3000/health)
status=$(echo "$response" | jq -r '.status')
if [ "$status" = "healthy" ]; then
echo "my_app.health 1"
else
echo "my_app.health 0"
fiCustom collector scripts must:
- Be executable (
chmod +x) - Output one metric per line in the format:
metric_name value - Complete within 10 seconds (configurable timeout)