経験は何よりも饒舌

10年後に真価を発揮するかもしれないブログ 

Mackerel で為替を監視する

欧州で働いているため、給料がユーロで振り込まれる。
永住する気はさらさらないので、いづれは全て円にしなければならない。
いつすればいいの?損をしたくない!
気づけば FX をしている状態になっていた。

とはいえ、自分でコントロールできない値に一喜一憂するほど人生は長くない。
ならばせめて監視をしよう。
そうだ、Mackerel プラグインを作ろう。

というわけで完成したのがこれ。(自分以外が使用することを想定していません)

github.com


まずは API がないか調べる。
[ 為替 API 無料 ] で以下の記事がヒットした。

有料になった exchangeratesapi.io を無料の範囲内で使い倒すnpmパッケージを作ってみた #Node.js - Qiita

どうやら Exchange Rates API に無料プランがあるらしい。
他をざっとみたら有料だったので exchangeratesapi を使用する。

無料プランの注意点として、リクエストが月に 1000回 までに制限されている。
API の更新頻度が 1日 1回 なので 30回程度 叩ければ十分だが、なんとなく定期的にメトリクスを投稿したい。
なのでとりあえず余裕を持って 2時間 に 1回 リクエストを投げるようにした。
具体的には、メトリクスを投稿した時点のタイムスタンプをファイルに書き込んで、エージェントが実行する際には、ファイルの最終行を読み取り、2時間 以上経っていなければ意図的にエラーを返すようにした。

mackerel-plugin-exchange/lib/exchange.go at f4659da9d6b0afaaab125214594cac8851b90147 · wafuwafu13/mackerel-plugin-exchange · GitHub

作りたてなので面白いグラフにはなってない


あとはよしなに式監視 alias(scale(host(4EuzHqHvEEU, custom.exchange.USD), 1), USD) などを仕込む。

テストで Warning > 140 Critical > 145 にしてみた

この式監視では、円高に気付けない、アラートの闘値を逐一変更する必要がある、などの問題点があるが、linearRegression() とかで本格的に監視できる可能性を感じた。