Errors Gateway — Dashboard kép

1) Tổng quan 60 ngày • 2) Tăng trưởng & Tỉ trọng lỗi theo Dev (tháng/tuần/quý)
P95: – Success: –
Từ
Đến
Bucket
Severity
Service
Kỳ (Growth/Dev Share)
Tổng lỗi (60 ngày)
Sev1/Sev2 (60 ngày)
P95 gửi Lark
mục tiêu ≤ 60s
Success gửi Lark
mục tiêu ≥ 99%

Time series — 60 ngày

Sev1..Sev4

Top Dev Owners

Top –

Cơ cấu theo Severity

Sev1/Sev2 gần đây

Thời gian Service Severity Class.Method Message Owner ReqId
Không có dữ liệu
API Spec (nhấp để xem)
API BASE: /api/dashboard/errors

1) GET /timeseries?from&to&bucket=day|week&severity=Csv&service=Csv
   -> { labels: string[], sev1: number[], sev2: number[], sev3: number[], sev4: number[] }

2) GET /summary?from&to&bucket&severity&service
   -> { kpis: { total:number, sev12:number, p95Seconds:number, successPercent:number }, slicho:{ p95Seconds:number, successPercent:number } }

3) GET /top-owners?from&to&severity&service&limit=5
   -> { items: [{ owner:string, count:number }] }

4) GET /recent?from&to&severity=Sev1,Sev2&service&limit=50&page=1
   -> { total:number, items: [{ id, createdAt, service, severity, className, methodName, message, owner, requestId }] }

5) GET /growth?from&to&interval=day|week|month|quarter&severity=Csv&service=Csv
   -> {
        total: { labels:string[], counts:number[], ma7:number[], trend:number[] },
        sev12: { labels:string[], counts:number[], ma7:number[], trend:number[] },
        wow:   { labels:string[], pct:number[] },
        dod:   { labels:string[], pct:number[] },
        metrics: { gTotalPct:number, gSev12Pct:number, ma7Slope:number, volatility:number }
      }

6) GET /dev-share?from&to&interval=month|week|quarter&severity=Csv&service=Csv&top=8
   -> { labels:string[], owners:string[], series:number[][] }
      // series[i] là mảng theo labels cho owner i (stacked bar)