Metrics

The agent collects the following metrics on every collection interval (default 10s). All metrics follow the OpenTelemetry semantic conventions and are exported via OTLP.

Metric reference

Metric nameTypeUnitDescription
system.uptimeGaugesecondsSystem uptime in seconds
system.cpu.countGaugecoresNumber of logical CPU cores
system.cpu.usageGauge%Overall CPU usage percentage across all cores
system.cpu.load_average.1mGauge1System load average over 1 minute (0 on Windows)
system.cpu.load_average.5mGauge1System load average over 5 minutes (0 on Windows)
system.cpu.load_average.15mGauge1System load average over 15 minutes (0 on Windows)
system.memory.usedGaugebytesRAM currently in use
system.memory.totalGaugebytesTotal installed RAM
system.memory.swap.usedGaugebytesSwap space currently in use
system.memory.swap.totalGaugebytesTotal Swap space capacity
system.disk.usedGaugebytesDisk space used per partition (with disk.name attribute)
system.disk.totalGaugebytesTotal disk capacity per partition (with disk.name attribute)
system.network.receiveGaugebytes/sReal-time network receive throughput
system.network.transmitGaugebytes/sReal-time network transmit throughput
system.network.latencyGaugemsNetwork latency to specified targets via TCP ping

OTLP payload example

Each batch sent to the collector looks like the following (simplified JSON representation):

OTLP payload (simplified)
{
  "resource_metrics": [{
    "resource": {
      "attributes": {
        "host.name": "my-server",
        "os.type": "linux"
      }
    },
    "scope_metrics": [{
      "metrics": [
        {
          "name": "system.cpu.usage",
          "gauge": { "data_points": [{ "as_double": 12.4, "time_unix_nano": 1700000000000000000 }] }
        },
        {
          "name": "system.memory.used",
          "gauge": { "data_points": [{ "as_int": 3328000000, "time_unix_nano": 1700000000000000000 }] }
        }
      ]
    }]
  }]
}

Collection details

  • CPU — read from /proc/stat (Linux) or GetSystemTimes (Windows). Averaged across all logical cores.
  • Memory — read from /proc/meminfo (Linux) or GlobalMemoryStatusEx (Windows).
  • Disk — read from statvfs("/") (Linux) or the system drive (Windows). Only the root/system partition is measured in v0.1.
  • Network — cumulative counters from /proc/net/dev (Linux) or GetIfTable (Windows). All interfaces are summed.

Timestamps

Timestamps are generated at the moment of collection, not at the moment of transmission. This ensures accurate time-series data even when the offline buffer replays delayed batches.