🙌
Snowflakeのリソースモニターを設定してみた - ACCOUNTADMIN以外のユーザに通知したい!
たしろ@ちゅらデータエンジニアです。
Snowflakeのクレジットを監視するために、リソースモニターを設定してみました。
※備忘録として・・・
やりたかったことは
- アラートを関係者のメーリングリストに投げる
- HOGE_ALERT みたいな監視用ユーザをつくるが、こいつにはACCOUNTADMINとかの権限を渡したくない
ってことで、試してみました
- メーリングリストの作成
- Google Group を使ってやりました。ただセキュリティ設定で「外部ユーザ」の投稿ができなくなっていたのにちょっとだけハマった
- 監視ユーザ(HOGE_ALERT)を作成
- PASSWORDは、CLIで、
mkpasswd
を使った - このパスワードは後ほど使うので、メモなりをしておくこと(EmailアドレスのVerify時)
- PASSWORDは、CLIで、
create user hoge_alert password='*******' email='hoge-alert@churadata.okinawa' ;
上記のアドレスをRESOURCE MONITORでの通知先にするためには、設定したメールアドレス( hoge-alert@churadata.okinawa)をVerifyする必要があります。
そのためには、HOGE_ALERTにログインし、[設定]からメールアドレスの認証を行う(文言ちょっと自信なし・・)
参考
※ HOGE_ALERTは、NON-LOGINユーザにしたかったのですが、この方法しかなかったです。
※ 設定が終わったあとに、 PASSWORD=NULL
にしておいたほうがいいかも
その後
-- Resource Monitorの設定
create or replace resource monitor hoge_test with
credit_quota=1
notify_users = (HOGE_ALERT)
triggers on 100 percent do notify;
-- WHに監視するリソースモニターをセット
alter warehouse HOGE_WH set RESOURCE_MONITOR = HOGE_TEST;
alter warehouse HOGE_ALERT_WH set RESOURCE_MONITOR = HOGE_TEST;
- リソースモニターを作成。notify_usersに HOGE_ALERT をいれる
- 今回は、100%になったらアラートメールが飛ぶ ってだけを設定しています
- WAREHOUSEに監視するリソースモニターの値を設定(複数のWHを設定できます)
※WEBコンソールからやるほうが、楽でいいかも
注意
notify_usersに設定できるのは、5ユーザまでです。
なので、ALERT用のユーザ(HOGE_USER)を作り、そこのEmailにメーリングリストのアドレスを登録するという方法を考えました。
(追記)
また、通知に関しては、WebUIで、コンソールをONにしないと受け取れませんでした。
WebUI(not Snowsight)で、右上の自分のログイン名
→ 設定
→ 通知(左帯、タブ)
→ 通知する: ウェブ、メール、すべて ※メールかすべて にしてほしい
なお、通知先にSlackチャンネルに送る場合、Webhookなどはできないが、チャンネルに通知するメールアドレスは発行されるので、そちらを登録するといいかも
最後に、
select * from SNOWFLAKE_SAMPLE_DATA.TPCH_SF1000.CUSTOMER;
なんてやってクレジットを消費すると、アラートメールが飛んできました♪
Discussion