feat(dashboard): 首页请求趋势拆分状态码并合并容量到业务流量

- 24 小时请求趋势拆分展示请求总量与 200/400/500 状态码请求量,独占一行;
  时间桶聚合新增 status_200/400/500_count(CH countIf、PG FILTER),
  请求趋势改为基于原始桶聚合(小时 rollup 无状态码口径)
- 首页移除宿主机磁盘指标,容量趋势(CPU/内存)并入业务流量卡片展示
- 压缩协议 traffic_24h 扩展为 7 元组,前端归一化同步更新
This commit is contained in:
ryan
2026-08-13 10:57:21 +08:00
parent a9e4237bbf
commit a4dd5ca9e1
15 changed files with 196 additions and 160 deletions
@@ -307,6 +307,9 @@ func (s *gormLogStore) BucketAggregates(ctx context.Context, query model.OpenFla
SuccessCount int64
ClientErrorCount int64
ServerErrorCount int64
Status2xxCount int64 `gorm:"column:status_2xx_count"`
Status4xxCount int64 `gorm:"column:status_4xx_count"`
Status5xxCount int64 `gorm:"column:status_5xx_count"`
UniqueIPCount int64
UniqueHostCount int64
BytesSent int64
@@ -322,6 +325,9 @@ func (s *gormLogStore) BucketAggregates(ctx context.Context, query model.OpenFla
"COUNT(*) FILTER (WHERE status_code < 400) AS success_count, " +
"COUNT(*) FILTER (WHERE status_code >= 400 AND status_code < 500) AS client_error_count, " +
"COUNT(*) FILTER (WHERE status_code >= 500) AS server_error_count, " +
"COUNT(*) FILTER (WHERE status_code >= 200 AND status_code < 300) AS status_2xx_count, " +
"COUNT(*) FILTER (WHERE status_code >= 400 AND status_code < 500) AS status_4xx_count, " +
"COUNT(*) FILTER (WHERE status_code >= 500) AS status_5xx_count, " +
distinctNonEmptyCountSQL(s.db, "remote_addr") + " AS unique_ip_count, " +
distinctNonEmptyCountSQL(s.db, "host") + " AS unique_host_count, " +
"COALESCE(SUM(bytes_sent),0) AS bytes_sent, " +
@@ -338,6 +344,9 @@ func (s *gormLogStore) BucketAggregates(ctx context.Context, query model.OpenFla
SuccessCount: r.SuccessCount,
ClientErrorCount: r.ClientErrorCount,
ServerErrorCount: r.ServerErrorCount,
Status2xxCount: r.Status2xxCount,
Status4xxCount: r.Status4xxCount,
Status5xxCount: r.Status5xxCount,
UniqueIPCount: r.UniqueIPCount,
UniqueHostCount: r.UniqueHostCount,
BytesSent: r.BytesSent,