您是否需要每个Web节点运行statsd的实例?

时间:2013-10-21 15:51:04

标签: statsd

是不是每个Web服务器都有一个statsd实例在运行,然后你将它们推到像collectrd这样的东西?

我理解公制调用是udp所以它们非常轻,但这意味着你可能每次调用3次调用statsd,我想知道这是否会在某些时候引起问题?

或者udp如此之快,以至于你每秒可以进行数千次通话,这不会成为一个问题,因为它是火灾和遗忘的请求类型。

3 个答案:

答案 0 :(得分:2)

对于健壮性',我实际上建议每个节点有1个statsd实例。它的重量足够轻,只要它只获得一个实例的指标值。

如果你集中统计数据并且进程/盒子死了,那么在你站起另一个进程/盒子之前你会完全失明。不是最好的情况。

答案 1 :(得分:1)

一般情况下,我建议从单个实例开始,因为管理和设置的开销较小。如果您在每个Web服务器上运行StatsD实例,则必须确保使用您的指标发送主机名,以便不覆盖Graphite端的任何内容。此外,您还需要在Graphite / Dashboard端进行更多工作,以了解您的指标。在并非所有主机都发送到单个StatsD实例的设置中,您必须总结所有主机以获取所有登录计数器,页面加载计时由主机完成,您需要做更多工作才能获得整体情况。这一切都不会让它变得不可能,但开始时会更加复杂。这就是为什么我认为从单个实例开始会更容易,如果你不确定你是否会迅速超过单个盒子可以获得的性能。

答案 2 :(得分:0)

  

是否每个Web服务器都有一个statsd运行实例   然后你把那些推到像collectrd这样的东西?

Statsd是Collectd的替代品。您可以在LAN上拥有一个statsd实例,并让所有“页面”向其发送指标。下一个合乎逻辑的步骤是可视化这些指标。您可能会在这里想到Graphite

  

我知道度量调用是udp所以它们非常轻,但是   这意味着你可能每次打3-5次调用statsd而且我是   想知道这是否会在某些时候引起问题?

我每分钟拨打10个单一的统计数据。问题可能很多 - 您的服务器可能会获得CPU,内存,网络或IO限制。是UDP比TCP轻得多。不要担心规模。那里有很多跑道,就像现在一样。

  

拥有多个statsd实例:

除非从可扩展性的角度来看,拥有多个statsd客户端将是一个非常糟糕的想法。稍后,更改配置将成为一个令人头疼的问题。调试哪个n statsd配置错误也很困难。因此,“轻量级”开销是对不可维护架构的邀请。就稳健性而言,有些人做的远远超过你当前的需求而没有面临statsd的任何失败。正如我所说,我每分钟做10K指标。