0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Re:dashで取得したデータをSlackに投稿する(とRe:dash内pythonを書くときの注意点)

Last updated at Posted at 2019-09-27

やりたい

  • Re:dashで取得したデータを、pythonデータソースを使って、Slackに投稿したい
  • Re:dashのalert機能は便利だが、条件が解消しないとずっと出続けてしまう問題があった

準備

  • Slack AdminでIncoming Webhooksを設定し、Webhook URLを取得する。
    image.png
  • Re:dashには、既にpythonデータソースが用意されている前提。ググればいっぱい出てくる

Slack投稿用のサンプル

import requests
import json

SLACK_URL = "[WEBHOOK_URL]"
content = "`Daijin` は `Hentai`"
payload = {
    "text": content
}
data = json.dumps(payload)
response = requests.post(SLACK_URL, data)

実際にやったこと

  • Re:dashで取得したある条件に合ったデータをSlackに投稿する
    • Re:dash上で定期実行するが、その時間を秒単位では指定できず、ほっとくと重複したデータを投稿してしまう。そこをSlack APIを使って既に投稿したデータは投稿しない処理を加えた。
    • 結果75行の割と大きめのソースとなった

その際ハマった注意点

  • python側で使うライブラリは、Data Sourceの画面で追加できる。但し、標準ライブラリのみで、pip installが必要なものはGUIだけではできなそうだった
スクリーンショット 2019-09-27 18.51.24.png ここでsaveするだけでimportできるようにはなった - なぜか関数を作れない。関数を作って実行すると関数内からglobal変数にアクセスできない - 引数付きのクエリは実行できなそうである - get_query_resultではクエリは実行されない - redashの定期実行は割とブレる。1minute毎のやつでも30秒くらいずれる。弊社の環境だと、なぜか90秒サイクルで実行されてた。1秒以内で実行されるクエリなんだが
13:32:20
13:33:50
13:35:20
13:36:50
13:38:20

参考

» Re:Dashでpythonデータソースを使ってクエリ結果をごにょごにょしたい

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?