SRE#
Important Points#
SRE 最关心的不是“机器有没有问题”,而是:
用户是否能访问
请求是否足够快
错误率是否可接受
流量是否正常
资源是否快满
队列是否堆积
依赖是否健康
发布是否引入故障
SLO 是否正在被消耗
用 Prometheus 落地时,SRE 需要掌握:
1. 关键指标应该从哪里收集
2. exporter / application metrics 应该暴露什么
3. PromQL 如何计算服务健康度
4. alert rule 应该如何表达用户影响
5. dashboard 应该按什么维度展示
SRE Metrics Map#
| Area |
What To Watch |
Prometheus Source |
Example Metrics |
| Availability |
服务是否可用 |
application metrics / blackbox exporter |
up, probe_success, http_requests_total |
| Latency |
请求是否慢 |
application histogram |
http_request_duration_seconds_bucket |
| Traffic |
流量是否异常 |
application counter |
http_requests_total |
| Errors |
错误率是否升高 |
application counter |
http_requests_total{status=~"5.."} |
| Saturation |
资源是否饱和 |
node exporter / cAdvisor / app metrics |
CPU, memory, disk, connection pool |
| Queue |
是否堆积 |
app metrics / queue exporter |
queue_depth, queue_consumer_lag |
| Dependency |
依赖是否异常 |
app metrics / exporter |
DB latency, cache hit rate, external errors |
| Capacity |
容量是否足够 |
node exporter / app metrics |
peak QPS, headroom, disk forecast |
| SLO |
用户体验是否达标 |
recording rules / PromQL |
availability ratio, burn rate |
Recommended Docs#
先读:
Hands-on SRE With Prometheus
然后再补:
SLI / SLO
Alertmanager
VictoriaMetrics / vmalert
Golden Rule#
每个 SRE 指标都应该能回答:
这个指标坏了,用户会受到什么影响?
谁负责处理?
dashboard 在哪里?
runbook 在哪里?
PromQL 怎么查?