在处理复杂的依赖关系时监视和提醒数据问题的方法

在这个假设的例子中,我们有一个跨电子商务公司的多个工程团队的数据stream。 这些团队在stream程的不同点提供服务,生成数据和使用数据。

例如;

  • “团队订单”维护订单数据库和接口
  • “团队stream量”生成networkingstream量数据
  • “团队仓库”维护数据仓库
  • “团队stream量”取决于“团队订单”的服务来检索订单数据并将其与networkingstream量相关联
  • “团队仓库”依赖于“团队stream量”的数据来构buildDW表格

想象一下,“团队订单”遇到一个数据库问题(负载,等待时间,无论如何) – 他们的监控系统提醒开始调查数据库问题的工程师。

与此同时,“团队交通”也被警告,因为他们看到了不好的反应。 他们开始调查,很快意识到问题出在“团队订单”的服务上,并提出“团队订单”

所有这些下游,“团队仓库”正在接收不良的数据。 他们的DW监测警告他们这种差异,所以他们开始寻找根本原因。

问题是,现在我们至less有三名工程师正在调查同一个问题,他们甚至可能不知道其他团队也在做同样的事情。

重要的一点是,三支队伍都在使用不同的监控和报警系统。 团队订单正在监控数据库服务器问题,而团队仓库正在查找logging数量的差异。

还有其他的方法; 仅在pipe道顶部发出警报(阻止下游升级)或在pipe道底部向上游系统发出警报。

是否有任何最佳实践,白皮书或工程解决scheme可供我们研究,以了解跨多个英/支持团队的不同方式来提醒和升级数据问题?

强烈推荐“云系统pipe理实践”,详细介绍其中的一些内容。 这里我们有3个级别的监控

  1. 从头到尾(哦,废话是错的)
  2. 每个服务/ API(哦,SQL群集的垃圾成员closures,API响应慢或与200/300 HTTP代码等)
  3. APM – 哪些代码是慢的,特定服务的错误率等

这些+日志给了我们大部分我们需要知道发生了什么,通常我们有一个人负责看到问题是固定的 – 协调的修复,但他们不做技术工作,这是远远超出给别人。 协调人的工作就是确保我们不要踩在对方的脚趾上来解决问题。