Я пытался имитировать это logstash.net/docs/1.1.0/tutorials/metrics-from-logs
У меня следующая настройка
nginx (сервер приложений) == отправляет приращение ==> Etsy statsD =====> Графит
Эта настройка работает нормально, поскольку график строится нормально, но не правильно. В соответствии с приведенной выше конфигурацией я понимаю, что значение шага графика должно быть целым числом, но я получаю числа с плавающей запятой по оси 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.*
Может ли кто-нибудь указать мне в правильном направлении, куда мне обратиться, чтобы решить мою проблему?
Поскольку это старый вопрос (на момент этого ответа), я просто бросаю его сюда как ссылку для всех, кто интересуется тем же.
В кулинарной книге Logstash есть статья о понимании Graphite и способах агрегирования данных. Вижу это Вот
Если вы используете более новую версию logstash, тогда у вас будет statsd_count папка, которая даст вам количество приращений, полученных Graphite, вместо усреднения за 10 секунд. для тебя.
Согласно кулинарной книге logstash вход, предполагая, что у вас есть 3200 ответов в течение 10 секунд, 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)
Значения на вашем графике не целые, так как это средние значения.
statsd сохраняет целочисленные значения счетчика ответов, чтобы показать точку на графике, он уменьшает предыдущее значение счетчика от более позднего и делит его на время шага. (Count (t) -count (t-step)) / шаг.