ウニ’s blog

勉強した結果を書いていきます

【Django】Djangoでの異常検出結果をslackに通知する

連携用のモジュールはいくつかあるが、django-channelsモジュールで非常に簡単に実現できたのでメモる。
下の画像はtestCaseで異常系を動かし、Slackに異常通知が行っているかを試した結果。

f:id:uni8inu:20161130193700p:plain

ちゃんと通知来てる!うれしい。
ここ1週間ぐらいCSSが思い通りに動かなかったので、この素直さに涙出る。

モジュール

blog.ymyzk.com

手順

基本的に、django-channelsのドキュメント通りで簡単に動いた。
Quickstart — django-channels 0.7.0 documentation

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自体全然使いこなせてないけど、とりあえずうれしかったです。(おわり)