1.7 KiB
1.7 KiB
API
All JSON responses are compact, versioned, and timestamped.
{
"version": 1,
"module": "1.0.0",
"timestamp": 1710000000,
"scope": "full"
}
Authentication
If monitor_api_token is set, non-dashboard endpoints require one of:
Authorization: Bearer <token>X-Monitor-Token: <token>?token=<token>
If monitor_basic_auth is set to user:password, every monitoring endpoint requires HTTP Basic auth. For public production deployments, prefer terminating authentication at Nginx with auth_basic and auth_basic_user_file.
JSON Endpoints
/monitor/api
Returns all sections:
systemnginxnetworkdiskprocessesupstreamsconnectionsrequestshistory
/monitor/api/system
Includes:
cpu.usagecpu.corescpu.loadmemory.totalmemory.availablememory.usedmemory.used_pctswap.totalswap.freeswap.used_pctuptime
/monitor/api/requests
Includes:
- total request and response counters
- request and response moving averages
- status counters
- method distribution
- response size histogram
- latency histogram
- latency percentiles
p50,p90,p95,p99 top_urlsuser_agents
/monitor/live
SSE stream:
retry: 3000
: heartbeat 42
id: 42
event: metrics
data: {"version":1,"timestamp":1710000000,...}
The dashboard uses SSE first and falls back to polling /monitor/api.
/monitor/metrics
Prometheus text format with core counters and gauges:
nginx_monitor_requests_totalnginx_monitor_active_connectionsnginx_monitor_cpu_usage_rationginx_monitor_memory_used_rationginx_monitor_latency_p95_ms