はじめに
RaspberryPiを自宅サーバとして運用していますが、構造上の都合で無線LANでインターネットに接続しています。
そのため、WiFiの電波強度をMackerelに送信するプラグインを作りました。
コード
私はNode.jsが好きなので、Nodeで作りました。
ソースはgithubにあります。
mackerel-rssi-notifier github
main.js
const fs = require('fs');
const readline = require('readline');
const rs = fs.createReadStream('/proc/net/wireless');
const rl = readline.createInterface(rs, {});
let lineNo = 0;
rl.on('line', (line) => {
lineNo++;
if (lineNo === 3) {
let data = line.split('.');
let rssi = data[1].trim();
const epoch = new Date();
console.log('wifi.rssi\t' + rssi + '\t' + epoch.getTime());
}
});
/proc/net/wireless
にWiFi関係の情報が含まれているので、これを読み込んで、文字列解析しています。
あとは、Mackerelの設定ファイルにプラグインの情報を記述します。
mackerel-agent.conf
# 略
[plugin.metrics.wifi]
command = ["node","/hoge/mackerel-rssi-notifier/main.js"]
最後に、Mackerelを再起動すれば完了です。
Mackerelでは以下のように表示されます。
参考サイト
以下のサイトを参考にしました。ありがとうございました。
信号強度の取得 - 汁ごはん
ストリームを行ごとに処理~readline編~ - Qiita