ダッシュボード(メトリクス数式ウィジェットとテキストウィジェット)難易度 標準無料
運用チームは、CloudWatchダッシュボードに次の2つを表示したい。
- ALB(Application Load Balancer)の
HTTPCode_Target_5XX_Count(ターゲット側が返した5xx数)をリクエスト総数RequestCountで割った「5xxエラー率(%)」を、追加のLambdaやカスタムメトリクス送信を実装せずグラフ化する - そのグラフの上に「このダッシュボードはSREチームが所有。しきい値超過時の一次対応手順はRunbook Xを参照」という説明書きを表示する
この2つを実現するダッシュボードの構成として最も適切なものを選べ。(単一選択)
- Aダッシュボードにメトリクス数式ウィジェットを追加し、
HTTPCode_Target_5XX_CountとRequestCountを参照する式(m1/m2)*100でエラー率をグラフ化する。加えてテキストウィジェットをダッシュボードに追加し、Markdownでオーナーチームと参照Runbookへのリンクを記載する - BLambda関数を定期実行し、5xxエラー率を計算した結果をカスタムメトリクスとして
PutMetricDataで送信し、それをダッシュボードのグラフに表示する。説明書きはグラフのタイトル欄に長文で埋め込む - CCloudWatch Logs Insightsのクエリウィジェットで
HTTPCode_Target_5XX_CountとRequestCountの値をログから正規表現で抽出し、割り算した結果を表示する - Dダッシュボードの説明書きは、CloudWatchダッシュボードの機能では表示できないため、別途Wikiページを作成しダッシュボードのブックマークバーにリンクを追加する
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済
解説
CloudWatchダッシュボードはJSON形式の「ダッシュボードボディ(dashboard body)」に複数のウィジェットを定義して構成する。 本問の2つの要件は、いずれも追加の実装(Lambda・カスタムメトリクス送信)なしに標準ウィジェットだけで実現できる。
- メトリクス数式(Metric Math)を使ったウィジェットでは、既存の
HTTPCode_Target_5XX_CountとRequestCountのメトリクスをm1・m2のような変数として参照し、(m1 / m2) * 100のような式を定義してグラフの1系列として表示できる。 これは表示上の計算であり、新たなカスタムメトリクスをCloudWatchへ書き込むわけではない。 なおAWS/ApplicationELB名前空間の5xx系メトリクスには、ロードバランサー自身が生成したエラーを表すHTTPCode_ELB_5XX_Countと、 ターゲット(バックエンド)が返したエラーを表すHTTPCode_Target_5XX_Countの2種類があり、単純な「5XXCount」という名前のメトリクスは存在しない点に注意。 - テキストウィジェットは、Markdown形式で任意の説明文・リンクをダッシュボード上に表示できるウィジェットであり、 グラフとは独立して「オーナーチーム」「Runbookへのリンク」のような運用メモを埋め込むのに使う。
- B要件は「追加のLambdaやカスタムメトリクス送信を実装しない」ことであり、この方法は明確に要件に反する。メトリクス数式ウィジェットで代替できる計算をわざわざバックエンド実装する必要はない。
- Cこれらは既にメトリクスとして存在する数値であり、わざわざログを正規表現でパースし直す必要はない。メトリクス数式ウィジェットの方が直接的かつ堅牢。
- D事実に反する。CloudWatchダッシュボードにはMarkdown形式のテキストウィジェットが標準で用意されており、ダッシュボード内に直接説明文やリンクを埋め込める。
ひっかけ: 「エラー率を計算するには専用のLambda関数でカスタムメトリクスとして事前計算しておく必要がある(誤答)」という思い込みに注意。
ダッシュボード側のメトリクス数式ウィジェットで既存メトリクスから直接計算式を組めるため、追加のバックエンド実装は不要な場合が多い。
公式ドキュメント・関連Amazon CloudWatch User Guide ― Using metric math↗Amazon CloudWatch User Guide ― Add a text widget to a dashboard↗
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)