Проблема отправки метрик с помощью statsd
Я использовал следующие инструкции для установки и настройки StatsD на сервере Graphite:
Теперь, когда у меня есть сервер с запущенным StatsD, я не вижу метрик, которые регистрируются в /var/log/statsd/statsd.log, когда я тестирую их отправку из командной строки. Вот что я вижу:
29 Oct 02:30:39 - server is up
29 Oct 02:47:49 - reading config file: /etc/statsd/localConfig.js
29 Oct 02:47:49 - server is up
29 Oct 14:16:45 - reading config file: /etc/statsd/localConfig.js
29 Oct 14:16:45 - server is up
29 Oct 15:36:47 - reading config file: /etc/statsd/localConfig.js
29 Oct 15:36:47 - DEBUG: Loading server: ./servers/udp
29 Oct 15:36:47 - server is up
29 Oct 15:36:47 - DEBUG: Loading backend: ./backends/graphite
29 Oct 15:36:47 - DEBUG: numStats: 3
Журнал остается в последней записи 'numStats: 3', хотя я продолжаю вводить различные метрики в командной строке.
Вот образец метрик, которые я ввел:
echo "sample.gauge:14|g" | nc -u -w0 127.0.0.1 8125
echo "sample.gauge:10|g" | nc -u -w0 127.0.0.1 8125
echo "sample.count:1|c" | nc -u -w0 127.0.0.1 8125
echo "sample.set:50|s" | nc -u -w0 127.0.0.1 8125
Интересно, я вижу это в /var/log/statsd/stderr.log:
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1039:14)
at listen (net.js:1061:10)
at Server.listen (net.js:1135:5)
at /usr/share/statsd/stats.js:383:16
at null.<anonymous> (/usr/share/statsd/lib/config.js:40:5)
at EventEmitter.emit (events.js:95:17)
at /usr/share/statsd/lib/config.js:20:12
at fs.js:268:14
at Object.oncomplete (fs.js:107:15)
Вот как выглядит мой файл localConfig.js:
{
graphitePort: 2003
, graphiteHost: "localhost"
, port: 8125
, graphite: {
legacyNamespace: false
},
debug: true,
dumpMessages: true
}
Кто-нибудь сможет пролить свет на проблему?
Спасибо!
1 ответ
На порту 8126 по умолчанию доступен интерфейс управления: https://github.com/etsy/statsd/blob/master/docs/admin_interface.md
Вероятно, у вас есть другая служба, которая прослушивает этот порт в той же системе.
Попробуй это:
# localConfig.js
{
graphitePort: 2003
, graphiteHost: "localhost"
, port: 8125
, mgmt_port: 8127
, graphite: {
legacyNamespace: false
},
debug: true,
dumpMessages: true
}
См. https://github.com/etsy/statsd/blob/master/exampleConfig.js#L28