指标在 Prometheus , 仪表板在 Grafana , 日志在 Loki, 分布式跟踪在 Tempo, 通过 Alertmanager 发出警报 — 所有这些都与他们所观察的平台一起自我托管。 监控是项目中预算紧缩时被削减的部分,也是缺席成本最高的部分。
| 措施 | 价值 | 资料来源 | 已计量 |
|---|---|---|---|
| 运行的可观测性组件 | 5 (Prometheus, Grafana, Loki, Tempo, Alertmanager) | kubectl get deployments,statefulsets -n monitoring | |
| 计量收集下的服务 | 65 deployments in the platform namespace | kubectl get deployments -n kamo |
它教会了我们什么建筑
几乎每个我们被要求接管的系统都有同样的缺陷,除了使用它之外,没有办法知道它是否正常工作。 没有人知道正常的样子是什么,所以没有人能够知道它何时停止工作。 问题的第一个迹象是客户投诉,这意味着时钟在任何人看之前就已经开始了。
分布式跟踪是最常缺失的部分,也是最常用的决定性部分。 在一个由四十个服务组成的系统中 , " 页面速度慢"并不是诊断,而是团队之间争论的开始。 跟踪在大约一分钟内通过准确显示哪个调用花费了时间来结束争论。
当租户报告说某个小部件在模式更改后不久就出现故障时,我们可以从指标中判断出连接池是原因,并且它会自行清理,而不是重新启动服务并使问题变得更糟。 知道何时不做任何事是一项运营技能,完全取决于能够看到。
建于
- Prometheus
- Grafana
- Loki
- Tempo
- Alertmanager
- kube-state-metrics
