Graphite 正在以浮点形式绘制 Logstash 的增量

Graphite 正在以浮点形式绘制 Logstash 的增量

我试图模仿这个logstash.net/docs/1.1.0/tutorials/metrics-from-logs

我有以下设置

nginx(应用服务器)==发送增量==>Etsy statsD=====>Graphite

此设置工作正常,因为图表绘制得很好,但不正确。根据上述配置,我理解图表步长值应该是整数,但我得到的 Y 轴(命中数)是浮点数,如附图所示,我完全搞不懂如何解释此图表。

Logstash 代理配置

input {
  file {
    type => nginx_web
    path => ["/var/log/nginx/access.log"]
  }

filter {
 grok {
   type => nginx_web
   pattern => "%{IP:ClientIP} (?:%{HOST:ClientHost}|-) (?:%{USER:ClientUser}|-) \[%{GREEDYDATA:TimeStamp}\] \"(?:%{WORD:Verb} %{URIPATHPARAM:Request} HTTP/%{NUMBER:HTTPversion}|%{DATA:UnparsedRQ})\" %{NUMBER:Response} (?:%{NUMBER:Bytes}|0) (?:%{QUOTEDSTRING:HTTPReferrer|\"-\"}) %{QUOTEDSTRING:HTTPUserAgent}"
 }

output {

 statsd {
        type => "nginx_web"
        host => "X.X.X.X"
        increment => [
                        "nginx.response.%{Response}"
                     ]
    }
}

我正在使用以下 URL API 来生成此图表

render/?width=600&height=320&hideLegend=1&from=-60minutes&until=-0minutes&target=stats.logstash.*.nginx_web.response.*

在此处输入图片描述

有人可以指出我该去哪里解决我的问题吗?

答案1

因为这是一个老问题(在回答这个问题时),我只是把它放在这里作为其他想知道同样事情的人的参考。

Logstash 的指南中有一篇关于理解 Graphite 以及数据如何聚合的文章。查看这里

如果你恰好使用的是较新版本的 logstash,那么你将拥有statsd_count文件夹,它将为您提供 Graphite 收到的增量数,而不是为您计算 10 秒内的平均值。

根据 logstash 手册入口假设您在 10 秒内收到 3200 个响应,statsd 会生成如下几行数据:

stats.logstash.101010_1.apache.site1.response.200 = 3 / 10 = 0.3 (number of responses with status 200 per second)

然而,在statsd_count文件夹中,你会看到类似以下内容的内容: stats_count.logstash.101010_1.apache.site1.response.200 = 3 (we have received 3 times status 200 for our period of 10 seconds)

答案2

图表上的值不是整数,因为它是平均值。

statsd 存储响应计数器的整数值以显示图表上的一个点,它将较早的计数器值从较晚的计数器值中减少,并将其除以步进时间。(Count(t)-count(t-step))/step。

相关内容