{title}
-- {value} -
- {subtitle && ( -- {subtitle} -
- )} -{description}
-| Timestamp | -ELU | -EL p50 | -EL p99 | -EL Max | -Heap MB | -RSS MB | -PG Total | -PG Idle | -PG Wait | -
|---|---|---|---|---|---|---|---|---|---|
| - {timeStr}.{msStr} - | -- {snapshot.eventLoopUtilization?.utilization.toFixed(3) ?? "—"} - | -- {snapshot.eventLoopDelay?.p50Ms.toFixed(2) ?? "—"} - | -- {snapshot.eventLoopDelay?.p99Ms.toFixed(2) ?? "—"} - | -- {snapshot.eventLoopDelay?.maxMs.toFixed(2) ?? "—"} - | -- {snapshot.memory.heapUsedMB.toFixed(1)} - | -- {snapshot.memory.rssMB.toFixed(1)} - | -- {snapshot.pgPool?.total ?? "—"} - | -- {snapshot.pgPool?.idle ?? "—"} - | -- {snapshot.pgPool?.waiting ?? "—"} - | -
- Real-time Node.js process and PostgreSQL pool statistics -
-| Metric | -Average | -Max | -
|---|---|---|
| Event Loop Utilization | -- {perfAggregate.eventLoopUtilization?.avgUtilization.toFixed(3) ?? "—"} - | -- {perfAggregate.eventLoopUtilization?.maxUtilization.toFixed(3) ?? "—"} - | -
| Event Loop Delay (p50) | -- {perfAggregate.eventLoopDelay?.avgP50Ms.toFixed(2) ?? "—"} ms - | -— | -
| Event Loop Delay (p99) | -- {perfAggregate.eventLoopDelay?.avgP99Ms.toFixed(2) ?? "—"} ms - | -- {perfAggregate.eventLoopDelay?.maxP99Ms.toFixed(2) ?? "—"} ms - | -
| Heap Used | -- {perfAggregate.memory.avgHeapUsedMB.toFixed(1)} MB - | -— | -
| RSS | -- {perfAggregate.memory.avgRssMB.toFixed(1)} MB - | -- {perfAggregate.memory.maxRssMB.toFixed(1)} MB - | -
| PG Pool Connections | -- {perfAggregate.pgPool?.avgTotal.toFixed(1) ?? "—"} - | -— | -
No requests recorded yet
-{description}
-| handleSort("endpoint")}
- >
- Endpoint
- |
- handleSort("count")}
- >
- Count
- |
- handleSort("totalTime")}
- >
- Total Time
- |
- handleSort("avgTime")}
- >
- Avg Time
- |
- handleSort("minTime")}
- >
- Min
- |
- handleSort("maxTime")}
- >
- Max
- |
- handleSort("lastCalled")}
- >
- Last Called
- |
-
|---|---|---|---|---|---|---|
|
-
-
- |
- - {stat.count.toLocaleString()} - | -- {formatDuration(stat.totalTimeMs)} - | -- {formatDuration(stat.totalTimeMs / stat.count)} - | -- {formatDuration(stat.minTimeMs)} - | -- {formatDuration(stat.maxTimeMs)} - | -- {formatRelativeTime(stat.lastCalledAt)} - | -
- Monitor API performance during development -
-- Click the “Refresh” button to load request and performance statistics. - Stats are collected automatically in development mode. -
- -
- This page is only available in development mode.
-
- Stats are stored in memory and will be cleared when the server restarts.
-
Loading...+ + +`; +} + +function errorHandlerDebugHtml() { + return ` + + + +