読者です 読者をやめる 読者になる 読者になる

私が歌川です

@utgwkk が書いている

Mackerel を使ってないんたんを監視し、天気の変化をいち早く感知しよう

こんにちは。我々が人生で最も気にするものランキングがあったとしたら、1位が将来のこと、同率1位がお金のことで、3位ぐらいに天気が来るのではないでしょうか。歌川です。

そんな、人生で3番目ぐらいに気になる天気をサクッと知れたら、あるいは降水注意報をシュッと出してくれたら、どんなにうれしいでしょう?

京都に住む我々にはうってつけのサービスがあります。ないんたんです。

ないんたん天気予報@京都

このように精度の高い降水量予測を、2時間半後の分まで、1分刻みで視覚化してくれる、画期的なサービスがあります。

しかし我々は常にスマホの画面を開いて更新ボタンを押せるとは限りません。せめてプッシュ通知が来てくれれば……。

そこで Slack を使います。今や生活に欠かせなくなった Slack には、incoming-webhooks という機能があり、APIJSON を送信すると Slack に投稿されます。

そして Mackerel を使います。今やインフラエンジニアに欠かせなくなった Mackerel には、任意の数値データを流す機能があり、これを使うといろいろなことができるのではと思いませんか?(先行研究あり)

ないんたん meets Mackerel. リアルタイム降水量監視システムと、リアルタイム監視システムの、絶妙な巡り合わせです。

その上時代はビッグデータです。京都のピンポイントな降水確率の蓄積されたデータを分析することで、我々は新しい発見をすることができるのではないでしょうか?

監視する

それではやっていきましょう。まず Mackerel にログインしましょう。アカウントがない人はいい機会なので適当に作りましょう。

ログインしたら、左側の Services をクリックして、サービスを追加しましょう。

https://gyazo.com/b0ac13b16e010a28888438c83820f474

こういう感じです。

追加できたら、こんどはロールを追加しましょう。京大吉田キャンパスの降水量が監視できればよいので、yoshida と名付けました。

ここにデータを流します。こういう感じの JSON を流すとよいです。

[
    {
        "name": "sx9.yoshida", 
        "time": 1466875437,
        "value": 50
    }
]

nameサービス名.ロール名time は現在の UNIX 秒、value は降水確率という感じです。(sx9 になっていますが、記事を書くより先にサービスを作ったので違う名前になっています)

これを自動で行ってくれるスクリプトを書きました。

github.com

動かす

次にこのスクリプトを1分おきに叩きます。適当なシェルスクリプトを用意しましょう。

#!/bin/sh
while :
do
  python main.py
  sleep 60
done

これを自分の VPS か、あるいはサークルのサーバーで、tmux などを併用して適当に叩けば、1分おきに自動でデータを送信してくれます。よかったですね。

閾値を設定する

さて、これで Mackerel にグラフが流れてくるようになりました。

https://gyazo.com/090a2cc9ee672ad0045d6fa34d28ec34

ただグラフが流れてくるだけだと、ないんたんを見た方が情報量が圧倒的に多いので、今度は警告を出す閾値を設定しましょう。

左の Monitors から新しい監視ルールを追加します。

https://gyazo.com/df5c4b5a83c2651c1f97b2071c9db661

このように設定しました。

チャンネル設定も忘れないようにしましょう。通知グループ/通知チャンネルを追加→Slack から登録をします。これで準備完了です。

待つ

今日は休日なので*1待ちます。ちょうど空模様も怪しくなってきたところです。

https://gyazo.com/c3869a748d528c2991b6709347732311

出ました。このように、メンション付きで通知をしてくれるので、即座に異常を感知することができます。もし感知をしてしまったなら、寝るか濡れるかのどちらかを選択しましょう。

https://gyazo.com/7e113b8ff4f628422cd2569f6194ad90

よくなりました。よかったですね。

おわりに

さてこのように、監視できるデータがあれば監視したくなるのが我々プログラマとは誰かから聞きましたが、やはり監視をしてみると気持ちがいいものですね。それに Mackerel は、データを送信するだけで自動的に可視化してくれるので、ますます便利でよいものです。

ないんたんの監視、意外に誰もやってなくて*2びっくりしたので作ることにしました。

このように、神に祈るという経験をすることもできて一石二鳥です。みなさんもどんどん監視をしていきましょう。

それでは、私は部誌を書きます*3

先行研究

ariarijp.hatenablog.com

blog.sushi.money

www.slideshare.net

追記

https://gyazo.com/b2bdfc03a734f3cc371889a44c4a7079

Critical 出ました。天気が Critical だからといって、我々にできることは傘をさすことか濡れることか外出しないことしかないので、神のまにまに生活していきましょう。みなさんは、神のまにまにですか?

*1:今日は部誌の原稿締め切りですが、進捗はまずまずといった感じです。

*2:「ないんたん mackerel」で検索したけどそれっぽいの出てこなかった。

*3:締切まであと6時間です。