Skip to main content

Monitoring

Overview​

NodePrism uses a Prometheus-based monitoring stack:

ComponentPurposePort
PrometheusMetrics collection & storage9090
GrafanaVisualization & dashboards3030
LokiLog aggregation3100
AlertManagerAlert routing9093

Agent Types​

AgentPortMetrics
NODE_EXPORTER9100CPU, memory, disk, network
MYSQL_EXPORTER9104MySQL server metrics
POSTGRES_EXPORTER9187PostgreSQL metrics
MONGODB_EXPORTER9216MongoDB metrics
NGINX_EXPORTER9113Nginx metrics
APACHE_EXPORTER9117Apache metrics
PROMTAIL9080Log shipping to Loki
APP_AGENT9101Custom application metrics

Collected Metrics​

System Metrics (node_exporter)​

MetricDescription
node_cpu_seconds_totalCPU time spent in each mode
node_memory_MemAvailable_bytesAvailable memory
node_memory_MemTotal_bytesTotal memory
node_filesystem_avail_bytesAvailable disk space
node_filesystem_size_bytesTotal disk size
node_load11-minute load average
node_load55-minute load average
node_load1515-minute load average
node_network_receive_bytes_totalNetwork bytes received
node_network_transmit_bytes_totalNetwork bytes sent

Alert Rules​

Default alert rules in infrastructure/docker/prometheus/alerts.yml:

AlertConditionSeverity
InstanceDownup == 0 for 5mCritical
HighCPUUsageCPU > 80% for 2mWarning
HighLoadAverageload1 > 10 for 2mWarning
CriticalLoadAverageload1 > 50 for 1mCritical
HighMemoryUsageMemory > 80% for 2mWarning
LowDiskSpaceDisk > 80% for 2mWarning
CriticalDiskSpaceDisk > 95% for 2mCritical

Prometheus Queries​

CPU Usage​

100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

Memory Usage​

(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes)) * 100

Disk Usage​

(1 - (node_filesystem_avail_bytes / node_filesystem_size_bytes)) * 100

Network Throughput​

irate(node_network_receive_bytes_total[5m])
irate(node_network_transmit_bytes_total[5m])

Grafana Dashboards​

Access Grafana at http://localhost:3030

Default credentials:

  • Username: admin
  • Password: admin123