评估结论落地:整页分析只喂聚合统计(模型看不到日志原文),结论价值低于 /analysis 图表自身;浮窗助手携带真实查询样本,价值成立。 - 删 /aiops 页面与路由(菜单去项);llmProviders 迁 lib 共用 - 模型配置重做为设置页「AI 模型接入」区:状态严谨映射——供应商/模型按已存 baseUrl/model 正确回显(自定义供应商显示 BaseURL 与自定义模型输入,不再重置), API Key 掩码占位、留空或掩码保存均沿用旧值(不回传掩码) - 后端删 /ai/analyze 与信号采集链路;/ai/chat 保留(上下文由前端日志样本注入)
32 lines
902 B
Go
32 lines
902 B
Go
package services
|
|
|
|
import "testing"
|
|
|
|
// 查询并行度必须跟部署的 CPU 核数对齐。
|
|
//
|
|
// 事故背景:曾经写死 8,而部署只有 4 核 → 多个子查询互相抢 CPU,
|
|
// 实测 76% 的调度周期被限流,连 label values 都要 20 秒。
|
|
// 现在改成从 resourcesCPU 推导,用户在界面改 CPU 时并行度自动跟随。
|
|
func TestQueryParallelism(t *testing.T) {
|
|
cases := []struct {
|
|
cpu string
|
|
want int
|
|
}{
|
|
{"4", 4},
|
|
{"8", 8},
|
|
{"2", 2},
|
|
{"1", 2}, // 低于 2 核按 2 兜底
|
|
{"16", 12}, // 上限 12
|
|
{"", 4}, // 空值走默认
|
|
{"abc", 4}, // 非法值走默认
|
|
{"4000m", 4}, // 毫核写法
|
|
{"500m", 2}, // 0.5 核 → 向上取整 1 → 不低于 2
|
|
{"6000m", 6},
|
|
}
|
|
for _, c := range cases {
|
|
if got := queryParallelism(c.cpu); got != c.want {
|
|
t.Errorf("queryParallelism(%q) = %d, want %d", c.cpu, got, c.want)
|
|
}
|
|
}
|
|
}
|