监控

随着规模的扩大,监控系统变得至关重要。有效的监控可以大大减轻服务维护工作。

在与该领域的多位专家交谈后,我收集到了以下有关该主题的建议:

  • 谨慎选择关键统计数据。用户不会在意你的机器 CPU 占用率低,但他们会在意你的应用程序接口速度慢。

  • 使用聚合器;考虑的是服务,而不是机器。如果您拥有的机器不只几台,您应该将它们视为无定形的一团。

  • 避免图形墙。它们速度很慢,而且对人类来说信息超载。每个仪表盘应包含五个图表,每个图表不超过五行。

  • 定量无法汇总,很难从中获取有意义的信息。然而,平均值却很容易推理。第一四分位数中 10 毫秒的响应时间并不能作为有用的信息,但 400 毫秒的平均响应时间则显示出需要解决的明显问题。

  • 除此之外,平均值比量化值更容易计算。它们易于计算,在需要扩展监控系统时尤其有用。

  • 监控是有成本的。考虑一下这些资源是否真的值得。1 秒钟的监测频率真的比 10 秒钟的监测频率好吗?成本是否值得?监控不是免费的,它需要计算成本。

  • 也就是说,奈奎斯特-香农采样定理表明,如果每 20 秒采样一次,就无法重建相隔 10 秒的模式。假设有一项服务每隔 10 秒就会崩溃或降低计算机系统的运行速度—​这是不可能被检测到的。请在整个数据分析过程中牢记这一点。

  • 相关性而非因果关系—​谨防符合性偏差。在采取任何激烈行动之前,一定要正式确定导致特定问题的原因。

  • 日志和度量都有好处。日志能让你了解细节,而度量指标则能提供高层次的信息。

  • 有办法处理非关键警报。如何处理网络服务器日志文件中的 404 错误?

  • 记住前面提到的 KISS 原则;让监控尽可能简单。