1

在我的项目中

  1. 我们爬取了 x 台服务器。
  2. 每个服务器的用户数从 1 到 n 不等。
  3. 我们为每个用户抓取 1 到 z 个项目。

目前我们正在使用石墨监控 QOS。我们正在存储抓取该项目所花费的时间。

x.time_taken

这种方法的问题是,如果只有单个用户受到影响,我们会收到关于 QOS 的错误警报。

回答/监控以下几点的正确工具/技术是什么:

  1. 仅当最小 k 个用户受到影响时才发出警报。[不是事件数量]
  2. 受影响的用户列表。

我认为石墨和 statsd 不是正确的工具。回答这两个问题的更好工具是什么?

4

1 回答 1

0

您所要求的通常称为服务监控。出于非常充分的理由,您想了解事件的服务影响,而不仅仅是事件已经发生。

这种方法的优势与您在要求中所陈述的完全一样——您可以专注于影响大部分用户群的事件,并且您可以立即获得受影响的用户列表。

恕我直言,主要缺点是服务监控通常比简单的性能或事件/警报监控复杂得多。它还经常依赖于服务模型,根据我的经验,这种模型很难构建,更难跟上时代。

例如,如果您系统中的某台服务器出现明显的减速或故障,这取决于您的架构,这可能会影响所有使用依赖该服务器的服务的用户,或者它可能会影响非常小的子集,甚至最初根本没有影响,如果有负载平衡机制或冗余机制到位。

您需要在服务监控模型中反映此架构,并且每次更新系统架构或部署时也要更改它。

如果您的系统足够静态或足够重要以保证投资,那么这可能值得您花时间。如果不是,那么一个简单的妥协可能只是更新您正在执行的图形和警报,以便在设定数量的用户或服务器上所有用户的平均响应时间显着增加时发出警报。

这可能会给您带来您所追求的大部分好处,而无需投资于服务监控解决方案的额外复杂性。

如果您确实希望扩展您的监控方法并希望坚持使用开源工具,那么如果您的重点是基础设施,或者有很多具有免费层的 Web 服务监控解决方案(例如 pingdom),我将首先查看 NAGIOS:

于 2014-05-13T13:57:15.417 回答