监控与SLO告警:策略、指标与实践
监控系统的设计原则
指标导出与配置
可以通过通用库(如OpenCensus等仪表化框架,或Istio等服务网格)导出基本指标。基于配置文件的方式优于仅提供Web UI或CRUD风格API的系统,许多开源二进制文件仅读取配置文件,一些第三方解决方案(如grafanalib)也支持为传统上通过UI配置的组件采用这种配置方式。
促进一致性
大型公司多个工程团队使用监控时需平衡集中化与团队自主性。集中化方法能提供一致性,而团队可能希望完全控制配置设计。以Google为例,逐渐趋向于集中运行单一框架作为服务,这样工程师换组时能更快上手,调试协作也更容易。同时,拥有集中的仪表盘服务,各团队仪表盘可发现和访问,便于快速调试问题。若所有服务都导出一致的基本指标,可自动收集并提供统一仪表盘,新组件也能自动获得基本监控,非工程团队也可使用监控数据。
倾向松散耦合
业务需求和生产系统会随时间变化,监控系统也需随之演化。建议监控系统各组件松散耦合,有稳定接口配置组件和传递监控数据。不同组件负责收集、存储、告警和可视化监控数据,稳定接口便于更换组件。如今开源世界流行将功能拆分为独立组件,如传统的Zabbix将所有功能集成在一个组件,而现代设计通常将收集和规则评估(如Prometheus服务器)、长期时间序列存储(InfluxDB)、告警聚合(Alertmanager)和仪表盘(Grafana)分开。
目前有两种流行的为软件进行仪表化和暴露指标的开放标准:
- statsd :最初由Etsy编写的指标聚合守护进程,现已移植到大多数编程
超级会员免费看
订阅专栏 解锁全文
2903

被折叠的 条评论
为什么被折叠?



