System Monitoring

Arc, monitoring itself.

CPU, memory, network and disk for the container running every demo on this site, collected every 10 seconds and stored in Arc.

Spikes line up with demo traffic: vessel, flight and weather ingestion, plus the queries from people viewing the demos right now.

Loading container metrics from Arc...

How it works

Collection: a Python script in its own container reads the Docker Engine API through a read-only /var/run/docker.sock every 10 seconds.

Ingestion: each sample is written to Arc with the MessagePack columnar format.

Metrics: CPU percent, memory usage and limit, and cumulative network and disk byte counters. The chart turns the counters into per-second rates.

Storage: everything lands in Arc's system_monitoring.container_metrics table as Parquet.

Summarize it in SQL

SELECT
  container_name,
  AVG(cpu_percent)     AS avg_cpu,
  AVG(memory_percent)  AS avg_memory,
  MAX(memory_usage_mb) AS peak_memory_mb
FROM system_monitoring.container_metrics
WHERE time > NOW() - INTERVAL '1 hour'
  AND container_name = 'arc-demo'
GROUP BY container_name;