Snowsight でのアラート

Snowsight でSnowflake機能用 アラート を設定できます。このユーザーインターフェースは、Snowflakeアカウントの監視方法を簡素化します。

SQL ステートメントを実行してアラートを作成および管理する代わりに、 Snowsight でウィザードを使用してアラートを作成、管理、監視します。

Snowsight のアラート管理機能には次の利点があります。

  • アラートの集中型の可視性: Snowflakeアラートセンターでは、すべてのアラート、これらのアラートの履歴、およびこれらのアラートの実行ステータスを表示できます。

  • アラート作成のテンプレート: Snowflakeアラート UI で提供されるアラートテンプレートを使用すると、次の機能のアラートをすばやく作成できます。注意:テンプレートからアラートが生成されると、ライフサイクル管理に関して他のアラートと同等であり、特別なプロパティは含まれません

  • Snowflake機能のプロアクティブなモニタリング: 障害、レイテンシ、またはデータ異常に関する通知を簡単に構成して、パイプラインと予算を健全に保つことができます。

前提条件

Snowsight を使用してアラートを作成、監視、および管理するには、次の前提条件を満たす必要があります。

タスクアラートの前提条件

タスク でアラートを作成、管理、監視する予定がある場合は、次のことを行ってください。

  • タスクイベントに対してキャプチャするログメッセージの重大度レベルを設定します。

    タスクは、イベントテーブルに記録されるエラーメッセージをモニターします。監視したいタスクについては、 LOG_LEVEL パラメーターを少なくとも ERROR に設定する必要があります。このパラメーターは、以下の型のオブジェクトのいずれかに設定できます。

    • アカウント内のすべてのオブジェクト(タスクを含む)の重大度レベルを ERROR に設定するには、 ALTERACCOUNTSETLOG_LEVEL を実行します。

      ALTER ACCOUNT SET LOG_LEVEL = ERROR;
      

      注釈

      この設定は、 UDFs、ストアドプロシージャ、動的テーブルによってログに記録されるメッセージにも影響します。

    • タスクを含むデータベース内のすべてのオブジェクトで重大度レベルを ERROR に設定するには、 ALTERDATABASE...SETLOG_LEVEL を実行します。

      ALTER DATABASE my_task_db SET LOG_LEVEL = ERROR;
      

      注釈

      この設定は、 UDFs、ストアドプロシージャ、およびそのデータベースの動的テーブルによってログに記録されるメッセージにも影響します。

    • 特定のタスクに対して重大度レベルを ERROR に設定するには、 ALTERTASK...SETLOG_LEVEL を実行します。

      ALTER TASK my_task SET LOG_LEVEL = ERROR;
      
  • Snowsight にアクセスする予定のロールに付与されている権限を確認します。

    ACCOUNT_USAGE スキーマで TASK_HISTORY ビュー および QUERY_HISTORY ビュー をクエリするには、そのロールに権限を付与する必要があります。

    詳細については、 他のロールが SNOWFLAKE データベースのスキーマを使用できるようにする をご参照ください。

Openflowアラートの前提条件

Openflow アラートはイベントテーブルに記録されたイベントをモニターします。Openflowがイベントをログするように構成されていることを確認します。詳細は以下のセクションをご覧ください。

データ品質アラートの前提条件

データメトリック関数(DMF)が登録され、モニターするテーブルとビューに対して実行されていることを確認します。

詳細については、 SQLを使用したデータメトリック関数の設定 をご参照ください。

アラートの通知の設定

Snowsight でアラートを作成した場合、メールまたはWebhookで通知を送信するようにアラートを構成できます。

通知を送信するには、通知統合を使用する必要があります。既存の通知統合を使用するか、新しい通知統合を作成することができます。

  • 既存の通知統合を見つけるには、 SHOW NOTIFICATION INTEGRATIONS を実行して パイプ演算子 を使用して結果をフィルターします。

    -- Find email integrations
    SHOW NOTIFICATION INTEGRATIONS ->> SELECT * FROM $1 WHERE "type" = 'EMAIL';
    
    -- Find webhook integrations
    SHOW NOTIFICATION INTEGRATIONS ->> SELECT * FROM $1 WHERE "type" = 'WEBHOOK';
    
  • 新しいメール通知統合を作成するには、 メール通知の送信 をご参照ください。

  • 新しいWebhook通知統合を作成するには、 CREATE NOTIFICATION INTEGRATION(ウェブフック) をご参照ください。

Snowsight でアラートにアクセスするためのロールを作成します。

アカウント管理者以外のユーザーが Snowsight でアラートにアクセスできるようにするには、アラートの作成、管理、監視に必要なすべての権限が付与されたカスタムロールを作成できます。Snowsight でアラートを使用する必要があるユーザーおよびその他のロールに、このロールを付与できます。

たとえば、この目的のために my_alert_center_role という名前のロールを作成するとします。このロールを作成するには、次のステップを完了します。

  1. カスタムロールの作成が許可されているロールに切り替えます(例:ACCOUNTADMIN ロール):

    USE ROLE ACCOUNTADMIN;
    
  2. カスタムロールを作成します。

    CREATE OR REPLACE ROLE my_alert_center_role;
    
  3. Snowsight でアラートにアクセスする際に使用する予定のウェアハウスに対して、 USAGE 権限を付与してください。一部の機能にはアクティブなウェアハウスが必要であるため、この権限を付与する必要があります。

    GRANT USAGE ON WAREHOUSE my_warehouse TO ROLE my_alert_center_role;
    
  4. アラートを実行する権限をロールに付与します。

    • 実行に特定のウェアハウスを使用するアラートを作成する場合は、そのロールに次の権限を付与します。

      • アカウントに対する EXECUTEALERT 権限

      • アラートに使用するウェアハウスに対する USAGE 権限

      例:

      GRANT EXECUTE ALERT ON ACCOUNT TO ROLE my_alert_center_role;
      GRANT USAGE ON WAREHOUSE my_warehouse TO ROLE my_alert_center_role;
      
    • サーバーレスアラートを作成する場合は、アカウントに対する EXECUTEMANAGEDALERT 権限を付与します。

      GRANT EXECUTE MANAGED ALERT ON ACCOUNT TO ROLE my_alert_center_role;
      
  5. データベースおよびスキーマでアラートを作成するために必要な権限 を付与します。

    たとえば、my_alerts_database という名前のデータベースおよび my_alert_schema という名前のスキーマにアラートを作成する場合、そのデータベースとスキーマに USAGE 権限を付与し、スキーマに CREATEALERT 権限を付与します。

    GRANT USAGE ON DATABASE my_alerts_database TO ROLE my_alert_center_role;
    GRANT USAGE ON SCHEMA my_alerts_schema TO ROLE my_alert_center_role;
    GRANT CREATE ALERT ON SCHEMA my_alerts_schema TO ROLE my_alert_center_role;
    
  6. 以前に設定した メール通知の統合 に USAGE 権限を付与します。

    GRANT USAGE ON INTEGRATION my_email_int TO ROLE my_alert_center_role;
    
  7. デフォルトイベントテーブルへのアクセスを許可する アプリケーションロールを付与します。

    GRANT APPLICATION ROLE SNOWFLAKE.EVENTS_VIEWER TO ROLE my_alert_center_role;
    
  8. データ品質モニタリングにアラートを設定する場合は、データ品質をモニターしてデータメトリック関数を実行するために必要なアプリケーションロールと権限を付与します。

    GRANT APPLICATION ROLE SNOWFLAKE.DATA_QUALITY_MONITORING_VIEWER TO ROLE my_alert_center_role;
    GRANT EXECUTE DATA METRIC FUNCTION ON ACCOUNT TO ROLE my_alert_center_role;
    
  9. ユーザーまたは他のロールにカスタムロールを付与します。

    GRANT ROLE my_alert_center_role TO USER my_user;
    GRANT ROLE my_alert_center_role TO ROLE my_other_role;
    

Snowsight でのアラートへのアクセス

Snowsight のアラートにアクセスするには:

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Monitoring » Alerts を選択します。

既存アラートのリストを表示し、アラート名とステータスでアラートをフィルタリングできます。アラートの最近の実行ステータスも表示できます。

新しいアラートの作成

提供されているテンプレートの1つを使用して、新しいアラートを作成できます。アラートを作成するには、次のステップを実行します。

  1. Snowsight にサインインします。

  2. ナビゲーションメニューで Monitoring » Alerts を選択し、 + Alert を選択します。

  3. Name フィールドに、アラートの名前を入力します。

  4. Description フィールドには、アラートの目的を記述します。

  5. Location メニューから、アラートを作成するデータベースとスキーマを選択します。

  6. Compute Type メニューから、次のオプションのいずれかを選択します。

  7. アラートの作成後にアクティブ化する場合は、 Activate alert upon creation を選択します。

    このオプションを選択しない場合、新しく作成されたアラートは中断されます。アラートをアクティブにするには、アラートを再開する必要があります。

  8. Next を選択します。

  9. Select warehouse メニューから、アラートに使用するウェアハウスを選択します。

  10. Alert template メニューから、Snowflake機能のテンプレートグループのいずれかを選択し、アラートの作成に使用するテンプレートを選択します。

    次のテーブルは、選択できるテンプレートグループとテンプレートの一覧です。

    テンプレートグループ

    テンプレート

    説明

    DATA_QUALITY

    Anomaly detection alert

    データ品質メトリックで検出された異常 をモニターし、異常なパターンや外れ値が識別されたときにアラートをトリガーします。

    Expectation violations alert

    データ品質期待違反 をモニターし、定義された期待が違反になった場合にアラートをトリガーします。

    OPENFLOW

    High CPU alert

    Openflowランタイムポッドの CPU 使用率が継続的に高い状態(90%超)にあるかどうかをモニターします。これは、潜在的なパフォーマンス低下を示している可能性があります。

    Connector backpressure (object count)

    コネクタキュー数をモニターして、バックプレッシャーのしきい値を超えているかどうかを判断します。これは、下流のシステムがデータフローレートに対応できないことを示している可能性があります。

    Connector backpressure (bytes)

    コネクタのキューに入れられたバイトをモニターして、バックプレッシャーのしきい値を超えているかどうかを判断します。これは、データパイプラインにメモリ負荷があることを示している可能性があります。

    High queued bytes alert

    コネクタキューのバイトを監視して、バックプレッシャーのしきい値(80%超)に近づいているかどうかを判断します。これにより、バックプレッシャーが発生する前に早期警告を提供できます。

    High queued count alert

    コネクタキューのオブジェクト数をモニターして、バックプレッシャーのしきい値(80%超)に近づいているかどうかを判断します。これにより、バックプレッシャーが発生する前に早期警告を提供できます。

    No data alert

    アクティブな処理時間があるにもかかわらず、データを送受信していないコネクタのモニター。データフローの潜在的な問題を示します。

    Runtime high error rate alert

    大量の ERROR レベルのログのOpenflowランタイムプロセッサーをモニターします。これは処理の失敗を示す可能性があります。

    Table replication failure alert

    FAILED 状態へのテーブル複製移行のモニター。これはデータ同期の重大な問題を示している可能性があります。

    TASKS

    Error rate alert

    累積タスクエラー率が指定されたしきい値を超えた場合にアラートをトリガーします。

  11. アラートの構成フィールドに入力します。フィールドは、選択したテンプレートによって異なります。

  12. 監視するスコープを選択します。スコープは、アラートについて監視されるオブジェクトを決定します。たとえば、アカウント内のすべてのオブジェクトを監視するには、 Scope メニューから Account を選択します。

  13. Schedule メニューで、アラートの実行に使用するスケジュールのタイプを選択します。

    • 新しいオブジェクトが追加された場合(例:監視しているテーブルに新しい行が挿入された場合)にのみアラートを実行するには、 When new events are detected を選択します。

    • 定期的なスケジュールでアラートを実行し、アラートを実行する頻度(例:10分ごと)を選択するには、 On a schedule を選択します。

  14. Notification integration メニューで 以前に作成した通知統合 を選択します。メール統合または :doc:` Webhook統合</sql-reference/sql/create-notification-integration-webhooks>` を使用できます。

  15. メール統合を選択した場合は、 Email recipients メニューで、アラートがトリガーされたときに通知する人のメールアドレスを選択します。

  16. Create を選択します。

注釈

  • テンプレートウィザードは、アラートを作成するための SQL ステートメントを生成します。アラートをさらにカスタマイズする必要がある場合は、これらのステートメントを直接変更できます。

  • アラートは、現在のロールにアラートに対する MONITOR 権限または OWNERSHIP 権限がある場合にのみ表示されます。

アラートの詳細の表示

特定のアラートの詳細を表示するには、アラートリストでアラートの行を選択します。 Snowsight がアラート詳細ページを開き、次の情報が表示されます。

  • 最近の実行履歴:完了時間、ステータスなど、アラートの最近の実行に関するテーブル(例:Triggered または Condition not met)、実行された条件とアクション SQL、および対応するクエリ IDs。時間範囲とステータスでフィルターし、追加の実行をロードできます。

  • 説明:アラートに設定されたコメントまたは説明。

  • 詳細:アラート名、ステータス(開始済みまたは一時停止)、所有者ロール、データベース、スキーマ、ウェアハウス、スケジュールなど、アラートに関するメタデータ。

  • 条件:アラートの条件を表す SQL ステートメント。これはアラートの IF(EXISTS(...)) ブロックです。

  • アクション:条件が満たされたときにアラートが実行されることを示す SQL ステートメント。これはアラートの THEN ブロックです。

アラート実行のモニター

アラート詳細ページの最近の実行履歴テーブルでは、 Status 列は各実行の状態を示します。可能な状態は次のとおりです。

  • Triggered:条件は TRUE と評価され、アクションは実行されました。

  • Condition not met:条件は FALSE と評価され、アクションはなにも実行されませんでした。

可能な状態とその意味の包括的なリストについては、 ALERT_HISTORY の STATE 列をご参照ください。

実行の失敗を調査するには、 Condition query ID および Action query ID 列を確認します。これらのクエリ IDs を使用して、 ALERT_HISTORY での実行の SQL_ERROR_CODE および SQL_ERROR_MESSAGE を検索できます。これは、特定のエラーコードと問題の説明を提供します。

アラートの編集

アラート詳細ページからアラートを編集するには、右上の ワークシートのその他のアクション を選択して Edit を選択します。 Snowsight は、 General および Config の2つのタブがある編集ダイアログを開きます。

一般的なアラートプロパティの編集

General タブで、アラートの次のプロパティを変更できます。

  • 名前:アラートの名前。このフィールドは、既存のアラートに対して読み取り専用です。

  • コメント:アラートがモニターするもの の説明。これは ALTERALERT の COMMENT プロパティにマップします。

  • 計算型:アラートが サーバーレス コンピューティングモデル または 指定のウェアハウス を使用するかどうか。Warehouse を選択した場合は、 Warehouse メニューからウェアハウスを選択します。

  • スケジュール:アラートが実行される頻度。On a schedule を選択して頻度を設定します(例:30分ごと)

Save を選択して変更を適用する。

アラート構成の編集

Config タブで、アラートの 設定 を介してこれらの値を読み取ります。

構成を編集すると、基になる SQL ステートメントを変更することなく、アラートのビジネスロジックを変更できます。

構成の構造に応じて、 Snowsight は、2つの編集エクスペリエンスのいずれかを表示します。

テンプレート構成の編集

アラートがテンプレートから作成され、構成がテンプレートが期待する構造を保持している場合は、 Snowsight は豊富な編集フォームを表示します。構成の各フィールドには、人間が読めるラベルと期待値の説明が表示されます。具体的なフィールドはテンプレートによって異なりますが、一般的な例には次のようなものがあります。

  • アラートをトリガーする しきい値 の値(たとえば、0.0~1.0の間のエラー率)

  • 統合と受信者の関連フィールドを含む EMAIL または WEBHOOK などの 通知メソッド

  • アラートがどのオブジェクトを監視するかを制御する **スコープ**(例:ACCOUNT、 DATABASE または SCHEMA)、範囲をさらに絞り込むためのオプションフィルターを使用します。

これらのフィールドを変更し、 Save を選択すると、 Snowsight はアラートに対する CONFIGJSON を更新します。アラートの条件とアクション SQL では、次回アラート実行時に新しい値が使用されます。

フラットキー値構成の編集

構成がテンプレートが期待する構造と一致しない場合(例えば、 SQL を通じて CONFIG を変更し、そのスキーマを変更した場合)、 Snowsight はフラットなキー値エディターにフォールバックします。

このビューでは、構成がキーと値のペアのリストとして表示されます。2つのモードを切り替えることができます。

  • Key-value:各キーと値のペアを個別に編集します。

  • JSON:生の JSON 構成を直接表示と編集できます。

注意

構成値は、アラートの条件とアクションロジックに影響しますが、Snowflakeとの秘密契約を結んでいる管理パラメーターではありません。CONFIG は、アラートの SQL が実行時に読み込む JSON 文字列であり、テンプレートの SQL は、これらの値の解釈を担当します。

構成値を変更すると、アラートの SQL の実行時の動作が変更されます。誤った値(例:しきい値の非数値や無効なメールアドレス)は、アラートが失敗したり、予期しない結果を生成したりする可能性があります。構成値を変更する前に、テンプレートのドキュメントまたはアラートの SQL を確認してください。

SQL レベルで CONFIG パラメーターがどのように機能するかの詳細については、 アラートへの構成の引き渡し をご参照ください。