
88
|
第
4
章
管理监控系统
你的监控系统与你运行的任何其他服务一样重要。因此,应该给予其适当的关注度。
实现配置即代码(
Configuration as Code
)
将系统配置视为代码,并将其存储在版本控制系统中是一种常见的做法,这种方式
提供了一些明显的好处:保存了更改历史记录、把特定变更和任务跟踪系统关联起来、
提供了更简单的回滚功能和语法语义检查
注
1
,以及强化了代码评审流程的执行。
我们强烈建议将监控配置视为代码(有关配置的更多信息,请参阅第
14
章)。支持
按意图配置的监控系统优于仅提供
Web
界面或
CRUD
样式
API
的系统。这种方法是
诸多只读取一个配置文件的开源二进制软件包的标准配置方法。一些第三方的解决
方案(如
grafanalib
)也启用了这种方法,而不是传统上只通过图形界面配置组件。
鼓励一致性
那些大型公司往往拥有多个工程团队,而且这些团队都在使用监控系统,这就需要
一种良好的平衡:一方面有一种集中式的方法提供了所需要的一致性,另一方面,
各个团队可能也希望完全控制自己配置设计。
正确的解决方案取决于你的组织。
Google
的方式是随着时间不断发展演进的,逐渐
融合成为一套统一的框架,并以一个集中式的服务运行。由于一些原因,这个解决
方案只适用于我们。单一框架使工程师在切换团队的时候也能够更快地轻松上手,
而且一起调试时的协作也更加容易了。我们还有一个集中式的仪表板服务,每个团
队都可找到并访问自己的仪表板。如果你轻松地理解了其他团队的仪表板,那么你
就可以更快地调试你和他们的问题。
如果可能的话,我们要把基础监控的实施化为无形。如果你的所有服务 ...