アラートの種類
1. 検索アラート
2
アラートを作成する
アラート作成パネルでは、次の操作を行えます。- アラートに関連付ける保存済み検索に名前を付ける。
- しきい値を設定し、指定した期間内に何回到達したらアラートとするかを指定する。しきい値は上限または下限として使用することもできます。ここで設定する期間は、アラートがトリガーされる頻度も決定します。
grouped byの値を指定する。これにより、検索をServiceNameなどで集計できるようになり、同じ検索から複数のアラートをトリガーできます。- 通知先の webhook 宛先を選択する。この画面から直接新しい webhook を追加することもできます。詳しくはwebhook の追加を参照してください。
2. ダッシュボードチャートアラート
ダッシュボード上の可視化に対してアラートを作成するには、ダッシュボードが保存済みである必要があります。
1
チャート編集ダイアログを開く
チャートの設定メニューを開き、アラートボタンを選択します。チャート編集ダイアログが表示されます。2
アラートを追加する
Add Alert を選択します。3
アラート条件を定義する
条件 (>=, >, <=, <, =, !=, <= x >=, > or <) 、しきい値、期間、webhook を定義します。ここで設定する期間は、アラートがトリガーされる頻度も決定します。この画面から新しい webhook を直接追加することもできます。詳しくは webhook の追加 を参照してください。webhook の追加
Add New Webhook を選択できます。
これにより webhook 作成ダイアログが開き、新しい webhook を作成できます。
webhook 名は必須で、説明は任意です。そのほかに必要な設定項目は、サービス種別によって異なります。
利用できるサービス種別は、ClickStack Open Source と ClickStack Cloud とで異なる点に注意してください。詳細はサービス種別のインテグレーションを参照してください。
サービス種別別インテグレーション
- Slack: webhook または API を使用して、チャンネルに直接通知を送信します。
- PagerDuty: PagerDuty API を介して、オンコールチーム向けにインシデントをルーティングします。
- Webhook: 汎用 webhook を介して、alerts を任意のカスタムシステムやワークフローに接続します。
ClickHouse Cloud only integrationsSlack API および PagerDuty インテグレーションは、ClickHouse Cloud でのみサポートされています。
- Webhook URL。例:
https://hooks.slack.com/services/<unique_path>。詳細については、Slack documentation を参照してください。
- Slack bot token。詳細については、Slack documentation を参照してください。
- PagerDuty integration key。詳細については、PagerDuty documentation を参照してください。
- Webhook URL
- Webhook headers (任意)
- Webhook ボディ (任意) 。現在、ボディではテンプレート変数
{{title}}、{{body}}、{{link}}をサポートしています。
アラートの管理
- 赤いバー: この評価でしきい値条件が満たされ、アラートが発報されました (通知送信あり)
- 緑のバー: アラートは評価されましたが、しきい値条件は満たされませんでした (通知送信なし)
アラートの削除
Remove Alert ボタンをクリックすると、チャートからアラートが削除されます。
SQLベースのチャートアラート
サポートされているチャートタイプ
その他の SQL ベースのチャートタイプ (テーブル、円グラフ、ヒートマップなど) はアラートをサポートしていません。
SQLアラートを作成する
1
ダッシュボードでSQLベースのチャートを作成または開く
保存済みのダッシュボードで、SQL チャートモードの新しいチャートを作成するか、既存のSQLベースのチャートを開いて編集します。表示タイプとして Line、Stacked Bar、または Number を選択します。2
アラートを追加する
チャートエディタのアラートセクションで Add Alert を選択します。次の項目を設定します。- しきい値タイプ:
>=(以上) 、>(より大きい) 、<=(以下) 、<(より小さい) 、=(等しい) 、!=(等しくない) 、<= x >=(範囲内) 、または> or <(範囲外) - しきい値: 比較対象となる数値
- インターバル: アラートを評価する頻度 (1m、5m、15m、30m、1h、6h、12h、または 1d) 。これは各評価の time window も定義します。
- Webhook: アラート発報時に使用する通知チャネルです。Webhook の追加を参照してください。
3
ダッシュボードを保存する
アラートを有効にするには、ダッシュボードを保存します。アラートは設定したインターバルで評価を開始します。クエリ結果の解釈方法
- 値カラム:
SELECT句の最後の数値カラムがアラートの値として使用されます。クエリが複数の数値カラム (例:count, avg_latency, p99_latency) を返す場合、しきい値と比較されるのは最後のカラム (p99_latency) のみです。 - タイムスタンプカラム: 時系列チャート (Line と Stacked Bar) では、システムは結果内の Date/DateTime カラムを時間バケット (つまり時系列チャートの x 軸) として識別します。各時間バケットの値カラムは、それぞれ独立してしきい値に対して評価され、いずれかの時間バケットの値が設定されたしきい値を超えた場合、アラートがトリガーされます。
- グループカラム: 数値カラムでもタイムスタンプカラムでもないカラム (例:
ServiceName,Environment) は、グループ化の次元として扱われます。グループが存在する場合、グループ値の一意な組み合わせごとに個別に追跡され、それぞれに対してアラートが生成されます。ClickStack は、設定されたしきい値を超えた値を持つ各グループごとにアラートを送信します。グループは時系列チャートでのみ利用できます。
クエリパラメータとマクロ
必須および推奨パラメータ
{intervalSeconds:Int64}、{intervalMilliseconds:Int64}、$__timeInterval(col)、または $__timeInterval_ms(col)) を含める必要があります。アラートの実行時には、これらはアラートに設定された期間に置き換えられます。
アラートに使用するクエリには、時間範囲フィルター ({startDateMilliseconds:Int64} と {endDateMilliseconds:Int64}、または $__timeFilter(col) など) を含めることを推奨します。クエリ内に時間範囲フィルターが含まれているかどうかにかかわらず、アラートクエリはアラートに設定された期間で実行されます。時間範囲フィルターがない場合、クエリは実行のたびにソーステーブルで利用可能な全期間を読み取ります。
アラートクエリの例
サービスごとのエラー率 (時系列)
>= 5 (エラー率が 5% に達すると発報)
このクエリでは、ServiceName は数値カラムでもタイムスタンプのカラムでもないため、各サービスは個別のアラートグループとして扱われます。アラートはサービスごとに個別に発報されます。
ラグ付き平均による異常検知 (時系列)
> 0 (ローリングベースラインを上回る過剰なエラーが検出されると発報します)
このクエリは、ローリングウィンドウ計算を初期化するために、日付範囲の開始前の30インターバルを取得し、その後、最終出力を評価ウィンドウのみに絞り込みます。
一般的なアラートのシナリオ
All Error Events と HTTP Status >= 400 の保存済み検索に対してアラートを設定し、
エラーが過剰に発生したときに通知を受け取ることを推奨します。
低速な操作: 低速な操作を対象とする検索 (例:
duration:>5000) を設定し、そのような操作の発生件数が多すぎる場合に
アラートを出すことができます。
ユーザーイベント: 新規ユーザーの登録時や重要なユーザー操作が実行された際に、
顧客対応チームへ通知されるようアラートを設定することもできます。