用途:在 Micrometer 中定义并监控 SLI/SLO,把业务可靠性目标(如 99.9% 可用性、P95 延迟 < 500ms)映射为直方图桶,从而自动计算错误预算并跟踪 SLO 合规情况。
主要能力:定义可用性、延迟、吞吐量等 SLO;配置与 SLO 阈值对齐的直方图桶;计算错误预算与剩余额度;设置基于 SLO 的告警;查询 SLO 合规百分比;实现多层级 SLO(P1/P2/P3);跟踪错误预算消耗速率(burn rate)。
使用方式:先在 application.yml 的 management.metrics.distribution.slo 下按指标名配置桶边界,并开启 percentiles-histogram;也可用 MeterRegistryCustomizer 以编程方式配置 serviceLevelObjectives。随后在 Prometheus 或 Cloud Monitoring 中编写 SLI 查询,例如可用性 SLI 用 sum(rate(http_server_requests_seconds_count{status!~"5.."}[5m])) / sum(rate(http_server_requests_seconds_count[5m])) * 100,延迟 SLI 用 sum(rate(http_server_requests_seconds_bucket{le="0.5"}[5m])) / sum(rate(http_server_requests_seconds_count[5m])) * 100。再通过 AlertManager 或 GCP 告警策略设置 SLO 告警,并可用 Gauge 记录剩余错误预算。
适用场景:需要为服务设定可靠性目标、实现 SLI 度量、创建 SLO 对齐的直方图桶、监控错误预算、设置 SLO 告警、计算合规率、实现多层级 SLO 或跟踪 burn rate 时。
限制:应在业务 SLO 确定后使用;纯技术指标无 SLO 目标时改用 python-micrometer-core;未配置 Micrometer 时先用 python-micrometer-metrics-setup;高基数指标需配合 python-python-micrometer-cardinality-control。桶数量建议 5-10 个,避免基数爆炸。具体平台与价格信息暂未提供。