用途:通过 KubeSense 的 /api/slo REST 接口创建、读取、更新和删除服务等级目标(SLO)。每个 SLO 是存储的定义加后台评估器,按 evaluation_time_interval_seconds 打分并写入 ClickHouse,同时输出 kubesense_slo_* Prometheus 指标,合规度按 evaluation_window_days 滚动聚合。
主要能力:三种 SLI 类型——by_count(good/total 两个查询,单位 events)、time_slice(一个查询加 operation 与 threshold_value,单位 slices)、alert(total_events_filter.alert_ids,单位 seconds);支持错误预算、燃尽率时序、分组(groupBy,硬上限 100 组)、预览(POST /api/slo/preview,不落库)、列表与统计、按 alert_types 自动生成燃尽率与预算告警规则。
使用方式:SLO 没有 MCP 工具,需具备 HTTP 调用能力(如 curl)并把 API 凭据放入 x-api-key 或 Authorization: Bearer 头。流程为:先用 MCP 查询工具发现真实指标与字段名,构造请求体,预览,POST /api/slo 创建并保留返回 id,GET /api/slo/{id}?current_time=… 回读,再经一两个评估周期用 GET /api/slo/{id}/metrics 验证 last_evaluated 是否推进。更新用 PUT(完整请求体,id 放在 body),删除用 DELETE /api/slo/{id}。
限制:/list 与 GET /{id} 必须带 current_time,/list 必须带 status(建议 status=active),否则报错或返回空列表;evaluation_time_interval_seconds 必须大于 0;slo_target_percentage 用百分数;selectedMode: "formula" 在 SLO 中不支持,需内联为单个 PromQL;不要手写燃尽率规则,PUT 会删除并重建;分组字段名会被清洗为合法 Prometheus 标签名,保留名不可用;预览使用 explore 引擎且对 traces/logs 硬编码 row_count,与评估器字段映射不完全一致。其余细节(各类型请求体、迁移、分组)见资料引用文件,未在此展开。