Heroku分布式系统可见性策略:事件处理、指标、图表与服务质量监控的实践

SF Metrics Meetup

总结:

Heroku运营着一个庞大且动态的平台,面临着机器故障、网络问题、流量高峰等诸多运营挑战。为了有效应对这些挑战,Heroku采取了以下可见性策略:

  • 整合工具: 采用Graphite进行指标存储和长期图表绘制,使用自研的Tasseo实现实时、带上下文的仪表盘,利用Umpire进行基于HTTP状态码的服务质量(QoS)监控和告警。
  • 数据流处理: Backstop提供HTTP+JSON接口方便指标输入,Exprd将结构化日志事件动态聚合为全局指标,Splunk则用于对TB级半结构化日志数据进行交互式查询和分析。
  • 核心理念: 将日志视为数据和真相的来源,构建一个通用且可组合的可见性管道,并分离数据生成、计算和呈现层。
  • 实践应用: 这一策略支持可见性驱动的事件响应,例如通过金丝雀应用发现HTTP路由问题,并利用各工具链进行实时监控、问题定位和事后分析,最终改进告警阈值。

Heroku可见性管道概览图
Heroku可见性管道概览图 [ 00:14:59 ]

Heroku的运营挑战与可见性需求 [00:00:03]

Heroku作为一个平台即服务(PaaS),为用户运行着大量应用程序,这些应用程序又依赖于Heroku自身的服务和亚马逊网络服务(AWS)提供的底层基础设施。

Heroku内部工具与服务 [00:01:51]

Heroku的可见性工作依赖于一系列内部开发和开源工具,它们共同构成了一个高效的监控与分析系统。

可见性管道与方法论 [00:14:20]

Heroku的可见性策略不仅关注工具本身,更强调构建一个具有凝聚力、可组合的管道和一套清晰的方法论。

生产案例:HTTP路由问题响应 [00:18:40]

讲者展示了一个真实的生产事件,说明其可见性策略如何驱动事件响应。

问答环节亮点 [00:22:12]