アラート
Telemetry アラートを使用すると、クエリ出力を監視し、メトリックがしきい値を超えたときに電子メールで通知を受け取ることができます。
を使用します。 アラート API これらのアラート定義をプログラムで一覧表示、作成、更新、または削除するには。
アラートが 1 つの時系列行から始まる理由
Telemetry は意図的に作っています アラートの作成 狭い結果の形状に使用できます。X 軸に時間を示し、Y 軸に 1 つの数値メトリックを示す折れ線グラフ、および何も表示されないグラフです。 グループ化 または 分割 寸法。これはアラート モデルの一部であり、チャートの制限だけではありません。
単一の時系列行により、人が説明して確認できるアラートの定義が与えられます。
- 各ポイントは、連続するタイム バケットについて同じ質問をします。
- すべての値は同じメトリック、単位、フィルター、および母集団を持ちます。
- 「最後の N データ ポイント」は、最近のバケットの順序付けされたセットにマップされます。
- しきい値によって 1 つの状態が生成されます。つまり、信号が予想範囲内にあるか、そうでないかのいずれかです。
複数系列のグラフは調査には役立ちますが、重要なアラートの動作が未定義のままになります。アラートは、いずれかのラインがしきい値を超えたときに発火する必要がありますか、それともすべてのラインが閾値を超えたときにのみ発火する必要がありますか?各ルート、顧客、地域、またはリリースに個別の状態と通知を設定する必要がありますか?系列が消えたり、新しい値が現れたり、1 つのしきい値がすべてのグループに適合しない場合はどうなるのでしょうか? Telemetry は、それらのセマンティクスを黙って選択しません。
ダッシュボードでは、複数行の比較と広範なコンテキストを保存できます。アラートは、1 人の所有者と 1 つの応答を持つ、小さくて決定的なアサーションである必要があります。その行の背後にあるクエリには、結合、フィルター、比率、最小ボリューム ガード、またはその他の複雑なロジックを含めることができます。その最終結果は、そのロジックを 1 つの順序付けられた信号に減らす必要があります。
グループ化されたグラフをアラートに変える
有用なダッシュボード グラフに複数の線がある場合:
- 比較と診断のために、複数シリーズのバージョンをダッシュボードに保持します。
- 所有者と応答がある特定の条件を選択します。
- 1 つの母集団にフィルター処理するか、SQL でグループを意図的に集計します。
- 明示的なタイム バケットと各バケットの 1 つの数値を返します。
- を選択してください ライン グラフ化して削除する グループ化 または 分割.
- 異なるグループに異なるしきい値、所有者、または対応手順が必要な場合は、個別のアラートを作成します。
もし アラートの作成 が表示されない場合は、まず結果の形状を確認します。 Explore では、何も含まない折れ線グラフを使用します。 分割。 SQL の結果の場合は、折れ線グラフを使用し、X 軸の時間列と Y 軸の数値を選択して、 グループ化 に なし.
アラートの仕組み
各アラート評価は同じフローに従います。
- 保存したクエリを実行します (Explore または SQL クエリから)。
- 行をタイムスタンプ順に並べます (新しいものから順)。
- 最新の行を除外するには、
Ignore the last data pointを有効にします。 - 最後を取る
Nデータポイント。 - 集計を計算します (
avg,sum,p95、など)。 - 値をしきい値と比較します。
- 状態が変化したとき (トリガーまたは解決されたとき) に通知を送信します。
Explore からアラートを作成する
- 開く
/team/{team}/table/{table}?tab=explore. - を選択してください ライン チャート、1 つのメトリック、時間範囲、およびフィルター。
- 休暇を取る 分割 空なので結果は 1 行になります。
- クリック 実行.
- チャートの上にある結果ツールバーで、 アラートの作成.
- 条件、間隔、受信者を設定します。
- クリック アラートの作成 保存するために。
Explore クエリを実行すると、結果ツールバーの右側の [アラート] ボタンが表示されます。 ダッシュボードに追加:
探索操作の操作フロー図。実行し、SQLと結果を確認してから、ダッシュボードへの追加またはアラートの作成を行います。 コントロールの変更は「実行」を押すと反映されます。
作成後、次の場所に着陸します。 /team/{team}/alert/{alertSlug} ステータスとイベント履歴を確認できます。
SQL クエリ結果からアラートを作成する
- 1 つの時間列と 1 つの数値信号を返す保存されたクエリを開きます。
- クエリを実行し、に切り替えます。 チャート タブ。
- を選択してください ライン チャートで、時間列を X 軸として設定し、数値信号を Y 軸として設定して、そのままにしておきます。 グループ化 として なし.
- クリック アラートの作成 からの 結果 または チャート タブ。
- 集計としきい値ロジックを選択します。
- アラートの詳細ページを保存して確認します。
アラート条件フィールド
| フィールド | 意味 |
|---|---|
| 集計 | 値がどのように削減されるか (avg, max, p95、など) |
| 最後の N データ ポイント | 評価用のウィンドウサイズ |
| 最後のデータポイントを無視する | 不完全なバケットを避けるために最新の行をスキップします |
| 比較 | >, >=, <, <= |
| しきい値 | 比較の数値目標 |
| チェック間隔 | エバリュエーターが実行される頻度 |
| 受信者 | 通知用のメールアドレス |
インタラクティブなインライン例
例 1: API レイテンシー回帰 (p95)
この Explore URL テンプレートを開いて、プレースホルダーを置き換えます。
/team/{team}/table/{table}?tab=explore&graphType=line&agg=p95&metric=latency_ms&time=7d
次に、次のコマンドを使用してアラートを作成します。
- 集計:
p95 - 最後の N ポイント:
5 - 比較:
Greater than - しきい値:
850 - 間隔:
Every minute
例 2: エラーサージ検出器
SQL エディターで次のクエリを実行します。
SELECT
date_trunc('minute', timestamp_utc) AS time_bucket,
COUNT(*) AS errors
FROM
http_logs
WHERE
status_code >= 500
AND timestamp_utc >= now() - INTERVAL '2 hours'
GROUP BY
time_bucket
ORDER BY
time_bucket DESC;
アラートを作成します。
- メトリクス:
errors - 集計:
avg - 最後の N ポイント:
3 - 比較:
Greater than - しきい値:
20
例 3: 欠落トラフィック検出器
イベントのボリュームが予期せず低下した場合にこれを使用します。
- 経時的なイベント数を返すグラフまたはクエリを作成します。
- 次を使用してアラートを作成します
sum最後に10ポイント。 - 比較を次のように設定します
Less thanと閾値50.
トリガーされた場合は、取り込みサービス、キュー、および cron ワーカーを確認します。
トラブルシューティング
- 通知がありません: 受信者の電子メールが有効で、アラートが有効であることを確認してください。
- 誤検知: 増加
Last N data pointsまたは保持しますIgnore last data point有効になりました。 - アラートはトリガーされません: しきい値を下げるか、選択したメトリック列が数値であることを確認してください。