🙌

Snowflakeのリソースモニターを設定してみた - ACCOUNTADMIN以外のユーザに通知したい!

2022/09/27に公開

たしろ@ちゅらデータエンジニアです。

Snowflakeのクレジットを監視するために、リソースモニターを設定してみました。
※備忘録として・・・

やりたかったことは

  • アラートを関係者のメーリングリストに投げる
  • HOGE_ALERT みたいな監視用ユーザをつくるが、こいつにはACCOUNTADMINとかの権限を渡したくない

ってことで、試してみました

  • メーリングリストの作成
    • Google Group を使ってやりました。ただセキュリティ設定で「外部ユーザ」の投稿ができなくなっていたのにちょっとだけハマった
  • 監視ユーザ(HOGE_ALERT)を作成
    • PASSWORDは、CLIで、mkpasswdを使った
    • このパスワードは後ほど使うので、メモなりをしておくこと(EmailアドレスのVerify時)
create user hoge_alert password='*******' email='hoge-alert@churadata.okinawa' ;

上記のアドレスをRESOURCE MONITORでの通知先にするためには、設定したメールアドレス( hoge-alert@churadata.okinawa)をVerifyする必要があります。

そのためには、HOGE_ALERTにログインし、[設定]からメールアドレスの認証を行う(文言ちょっと自信なし・・)

参考
https://docs.snowflake.com/ja/user-guide/ui-preferences.html#verifying-your-email-address-in-the-classic-web-interface
https://docs.snowflake.com/ja/user-guide/ui-snowsight-gs.html#setting-user-details-and-preferences

※ 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