Files
LokiStack/frontend
opsx e4cefa1fa7
CI / Backend (go vet + test) (push) Canceled after 0s
CI / Frontend (lint + build + test) (push) Canceled after 0s
feat(analysis): 应用排行支持 10/30/50 切换 + 前端分页
=== 可行性评估(先实测再实现)===
topk 的 N 是否影响查询成本?5 分钟窗口实测:
  topk(10)  17833ms / 11 条
  topk(30)  18019ms / 34 条
  topk(50)   7394ms / 54 条
  topk(100) 17553ms / 74 条
波动来自集群负载,与 N 无关 —— 扫描的 chunk 集合完全相同,
topk 只决定最后返回多少序列。所以放宽到 50 不增加查询成本。

=== 分页为什么不每页发一次查询 ===
排行是"排序后的聚合结果":要拿第 11~20 名,必须先算出全部应用的量再排序,
不存在"只算 11~20 名"的做法。所以正确设计是:
  topk(N) 一次取全 → 前端按 10/页切片
N=50 时 5 页,只查 1 次;每页点一次查询反而会重复扫同一批 chunk,纯浪费。

=== 实现 ===
- hook 参数 rankLimit(10/30/50),两条查询都包 topk(N)
- 分析页:显示条数按钮组,点击即触发查询(同时重置到第 1 页)
- 分页条:共 N 个应用 · 第 x/y 页 · 上一页/下一页
- 长范围走预聚合时,limit 也跟随 N(接口上限 100)
- 切换筛选(刷新)时重置到第 1 页

Pod = Hub latest = 4d4e1a7ec334
2026-10-30 16:51:21 +00:00
..