これまでTelegraph + InfluxDB + GrafanaでNodeJSアプリを監視していましたが、これまではDokkuアプリを監視しようとしています。TelegrafデーモンがDokkuと一緒にデプロイされたアプリケーションからメトリックを受信しない
私はudp://localhost:8125
にmyapp
から送信されたメトリックはtelegraf
によって受信されない問題を持って次のセットアップ
app server monitoring serveur
- telegraf daemon (listening on udp 8125) ------> InfluxDB + Grafana
- dokku
- myapp : sending metrics on localhost:udp:8125
を持っています。 telegrafから
接続がinfluxdbするとgrafanaは大丈夫です、私は、アプリケーションサーバー上で次のコマンドを実行したので:
echo "foobar:1|c" | nc -u -w0 127.0.0.1 8125
そして私はGrafana内foobar
カウンタの増分を可視化することができます。
私はこの問題が、myapp
またはDokuをどのように設定したのかと推測しています。
myapp(ノードJSアプリ)では、hot-shotsパッケージを使用してメトリックを送信します(lynxでも成功しませんでした)。
これは私がstatsdクライアントをインスタンス化するために使用するコードです。
var StatsD = require('hot-shots');
var client = new StatsD();
// Attaching an error handler to client's socket
client.socket.on('error', function(error) {
console.error('StatsD client error in socket: ', error);
});
アプリの起動時にカウンタをインクリメントして再起動を通知します。これは、次のコードで行われます:アプリケーション・サーバー内
metrics.increment('server_restart', function(err, bytes) {
if (err) {
console.log(err);
} else {
console.log('StatsD sent : ', bytes);
}
});
、私は展開を実行した後dokku logs myapp
を実行しました。
私は次のように出力
$ dokku logs myapp
2017-05-06T14:51:19.977938845Z app[web.1]:
2017-05-06T14:51:19.977996938Z app[web.1]: > [email protected] start /app
2017-05-06T14:51:19.978002950Z app[web.1]: > node .
2017-05-06T14:51:19.978005766Z app[web.1]:
2017-05-06T14:51:21.849086537Z app[web.1]: StatsD sent : 18
$
だから、メトリックペイロードが適切に右ポートで送信されているようだが、それはtelegrafに達することはありません取得します。
- ローカルホストへの外部UDP要求を承認するためにDokkuで行う設定はありますか?
- これをさらにデバッグするにはどうすればよいですか?別のスレッドで要求された著者として