Назад | Перейти на главную страницу

Statsd, графит и графики

Я установил Graphite и statsd, и оба работают нормально. Я использую example-client.py из графита / примеров для измерения значений нагрузки, и все в порядке.
Я начал проводить тесты с помощью statsd, и сначала это казалось нормальным, потому что он генерировал некоторые графики, но теперь это выглядит не очень хорошо.

Во-первых, это мой storage-schema.conf:

priority = 100
pattern = .*
retentions = 1m:395d

Я использую эту команду для отправки данных в statsd:

echo 'ssh.invalid_users:1|c'| nc -w 1 -u localhost 8126

он выполняется, я нажимаю «Обновить график» в веб-интерфейсе Graphite, он генерирует строку, снова нажимаю «Обновить», и линия исчезает. подобно this1 и this2
Если я выполню предыдущую команду 5 раз, линия графика достигнет 2, и она фактически сохранит ее. Снова выполняя ту же команду два раза, линия графика достигает 2 и исчезает.
Я не могу найти то, что неправильно настроил.

Предполагаемое использование:

tail -n 0 -f /var/log/auth.log|grep --line-buffered "Invalid user" | while read line; do echo "ssh.invalid_users:1|c" | nc -w 1 -u localhost 8126; done

РЕДАКТИРОВАТЬ:
В свежей системе я переустановил, используя последние версии графита, углерода, nodejs, statsd, и он действует так же.
В хвосте /opt/graphite/storage/log/carbon-cache/carbon-cache-a/query.log Я получил:
cache query for "stats_counts.ssh.invalid_users" returned 0 values
cache query for "stats.ssh.invalid_users" returned 0 values всякий раз, когда я нажимаю Обновить в веб-приложении. Я заметил, что он случайным образом скажет returned 1 values при рисовании линий, но вернется к returned 0 values и линии исчезают.

Проблема заключается в сохранении схемы хранилища:
retentions = 1m:395d - взято из графитовой вики http://graphite.wikidot.com/installation

Мне пришлось использовать retentions = 10:2160,60:10080,600:262974 или что-то подобное. При этом учитываются значения, сохраняемые каждые 10 секунд.

Кроме того, хотя я перезапустил графит после изменения storage-schema.conf, мне пришлось использовать другое имя метрики, потому что предыдущее сохраняло то же поведение / удержание (и я могу воспроизвести это).
Так что вместо echo 'ssh.invalid_users:1|c', Мне пришлось использовать
echo 'ssh.invalid_userstest2:1|c'.