【Django】Djangoでの異常検出結果をslackに通知する
連携用のモジュールはいくつかあるが、django-channelsモジュールで非常に簡単に実現できたのでメモる。
下の画像はtestCaseで異常系を動かし、Slackに異常通知が行っているかを試した結果。
ちゃんと通知来てる!うれしい。
ここ1週間ぐらいCSSが思い通りに動かなかったので、この素直さに涙出る。
モジュール
手順
基本的に、django-channelsのドキュメント通りで簡単に動いた。
Quickstart — django-channels 0.7.0 documentation
- Quickstart通りに、Djangoのsettings.pyを編集する。
- CHANNELS設定はバックエンド設定のページを参考
- バックエンド設定ページから飛べる、SlackのWebhookページからトークンURLを貰っておき、CHANNELSのurlパラメータに埋め込む
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'channels', ] #中略 # send slack settings CHANNELS = { "CHANNELS": { "slack": { "_backend": "channels.backends.slack.SlackChannel", # do not change "url": "https://hooks.slack.com/services/XXXXXX/XXXXXXXXXXX/XXXXX", # change yourself webhook url "icon_emoji": ":ghost:", } } }
- コード中での呼び出し部は以下
- 簡単!要所要所でcallしまくろう。
if alert_level: if(alert_level == 1): channels.send("Django DB alert.Plz check DB's.Maybe {} over.".format(Nsyousetu.alert_num))
終わりに
Slack自体全然使いこなせてないけど、とりあえずうれしかったです。(おわり)