fix(dashboard): real error rate from llm_api_errors_total

- errors now = rate(llm_api_errors_total) instead of network TX bytes
- rps = rate(llm_api_requests_total) + rate(http_server_request_count_total)
- Latency card → Load Average (was misleading: showed node load as 'ms')
- Overview 'Errors' StatBox was hardcoded 0 → real llm err/s
- rename hasTraffik → hasTraffic (Traefik removed 2026-08-02)
This commit is contained in:
asepharyana
2026-08-03 13:06:27 +07:00
parent 62966fd7cf
commit a90d0c4333
2 changed files with 37 additions and 17 deletions
+20 -8
View File
@@ -159,10 +159,10 @@ export async function GET() {
load15,
netIn,
netOut,
rps,
latency,
errors,
traceVolume,
netInSpark,
loadSpark,
netOutSpark,
upstreamCount,
] = await Promise.all([
promQuery(
`100 - (avg by(instance)(rate(node_cpu_seconds_total{mode="idle"}[1m])) * 100)`,
@@ -184,6 +184,18 @@ export async function GET() {
promQuery("count(up)"),
]);
// ── Error rate (llm-api) & request rate (any /metrics service) ──
const [errRate, errSpark] = await Promise.all([
promQuery(`sum(rate(llm_api_errors_total[5m]))`),
promRange(`sum(rate(llm_api_errors_total[1m]))`),
]);
const reqRate = await promQuery(
`sum(rate(llm_api_requests_total[5m])) + sum(rate(http_server_request_count_total[5m]))`,
);
const reqSpark = await promRange(
`sum(rate(llm_api_requests_total[1m])) + sum(rate(http_server_request_count_total[1m]))`,
);
// ── LLM inference metrics (llm-api /metrics) ──
const [
llmReqRate,
@@ -225,10 +237,10 @@ export async function GET() {
services,
traces: [],
node: { cpu, ram, disk, load1, load5, load15, netIn, netOut },
rps,
latency,
errors,
traceVolume: traceVolume ? [traceVolume] : [],
rps: reqSpark,
latency: loadSpark,
errors: errSpark,
traceVolume: netInSpark,
links,
llm: {
reqRate: llmReqRate,