ストーリー
高橋アーキテクトがクイズを用意してくれた。
クイズの説明
Step 3 で学んだ内容の理解度をチェックします。
- 全8問
- 合格ライン: 80%(7問正解)
- 不合格の場合は復習してから再挑戦してください
問題
Q1. HTTPリクエストの総数を記録するのに適切なメトリクスの種類はどれですか?
- A) Gauge
- B) Counter
- C) Histogram
- D) Summary
解答と解説
正解: B
Counterは単調に増加する累積値を記録するメトリクスです。HTTPリクエストの総数のように、増え続ける値の記録に適しています。Gaugeは増減する値(接続数等)、Histogramは値の分布(レスポンスタイム等)に使います。
Q2. REDメソッドの3つの指標の正しい組み合わせはどれですか?
- A) Reliability, Efficiency, Durability
- B) Rate, Errors, Duration
- C) Request, Error, Deployment
- D) Resource, Endpoint, Database
解答と解説
正解: B
REDメソッドはサービスの健全性を「Rate(リクエスト率)」「Errors(エラー率)」「Duration(処理時間)」の3つの指標で監視するアプローチです。マイクロサービスのダッシュボード設計の基本フレームワークとして広く使われています。
Q3. Prometheusのメトリクス収集方式として正しいものはどれですか?
- A) アプリがPrometheusにメトリクスをPushする
- B) Prometheusがアプリの/metricsエンドポイントからPullする
- C) メトリクスは共有データベースに書き込む
- D) メッセージキューを介してメトリクスを送信する
解答と解説
正解: B
PrometheusはPull型のアーキテクチャを採用しています。各アプリケーションが/metricsエンドポイントでメトリクスを公開し、Prometheusが定期的にそのエンドポイントにアクセスしてメトリクスを収集します。Pull型の利点として、ターゲットがダウンした場合にそれ自体が検知できることがあります。
Q4. PromQLで「5分間のリクエスト率(1秒あたり)」を計算する関数はどれですか?
- A)
count(http_requests_total[5m]) - B)
sum(http_requests_total[5m]) - C)
rate(http_requests_total[5m]) - D)
avg(http_requests_total[5m])
解答と解説
正解: C
rate()はCounterメトリクスの1秒あたりの増加率を計算する関数です。rate(http_requests_total[5m])は「過去5分間の平均リクエスト率(1秒あたり)」を返します。Counterの変化量を時間で割った値で、パフォーマンス分析の基本となる関数です。
Q5. アラート疲れ(Alert Fatigue)の最も効果的な対策はどれですか?
- A) アラートの通知先を増やす
- B) アラートの閾値をすべて下げる
- C) アクションが必要なアラートだけに絞り、SLOベースにする
- D) アラートの数を0にする
解答と解説
正解: C
アラート疲れの最も効果的な対策は、「すべてのアラートにアクションを伴うようにする」ことと「SLO(ユーザー影響)ベースのアラートに変更する」ことです。原因ベース(CPU高い等)ではなく症状ベース(エラー率が高い等)のアラートを優先することで、本当に対応が必要な場合のみ通知されます。
Q6. Grafanaダッシュボードで、レスポンスタイムの分布を時間軸で表示するのに最適なパネルタイプはどれですか?
- A) Stat
- B) Bar Chart
- C) Table
- D) Heatmap
解答と解説
正解: D
Heatmapは2次元の密度分布を表示するパネルタイプで、X軸に時間、Y軸にレスポンスタイムのバケット、色の濃さでリクエスト数を表現します。レスポンスタイムの分布の時間変化を直感的に把握でき、外れ値や分布の変化を発見するのに最適です。
Q7. アラートルールのfor句の目的として正しいものはどれですか?
- A) アラートの有効期限を設定する
- B) 条件が一定時間継続した場合にのみアラートを発火させる
- C) アラートの再通知間隔を設定する
- D) アラートのクエリ実行間隔を設定する
解答と解説
正解: B
for句は、アラート条件が指定した期間継続した場合にのみアラートを発火させるためのものです。例えばfor: 5mと設定すると、条件を5分間連続で満たした場合にアラートが発火します。一瞬のスパイクによる誤報を防ぐ効果があります。
Q8. USEメソッドはどのような対象の監視に適していますか?
- A) マイクロサービスのAPI
- B) ユーザーの行動分析
- C) インフラストラクチャリソース(CPU、メモリ、ディスク等)
- D) ビジネスKPI
解答と解説
正解: C
USEメソッドはインフラストラクチャリソースの監視フレームワークで、Utilization(使用率)、Saturation(飽和度)、Errors(エラー数)の3つの指標で監視します。CPU、メモリ、ディスク、ネットワークなどのインフラリソースに適しています。サービスの監視にはREDメソッドが適しています。
結果
7問以上正解の場合
合格です。おめでとうございます。
Step 3「メトリクスとアラート設計」を完了しました。 次は Step 4「分散トレーシング」に進みましょう。
6問以下の場合
もう少し復習しましょう。
間違えた問題の内容を、該当するセクションで復習してください:
| 問題 | 復習セクション |
|---|---|
| Q1 | step3_1 メトリクスの種類と収集 |
| Q2 | step3_1 メトリクスの種類と収集 |
| Q3 | step3_2 Prometheusによるメトリクス収集 |
| Q4 | step3_2 Prometheusによるメトリクス収集 |
| Q5 | step3_4 アラート設計のベストプラクティス |
| Q6 | step3_3 Grafanaによる可視化 |
| Q7 | step3_2 Prometheusによるメトリクス収集 |
| Q8 | step3_1 メトリクスの種類と収集 |
Step 3 完了
お疲れさまでした。
学んだこと
- メトリクスの4種類(Counter, Gauge, Histogram, Summary)と使い分け
- Prometheusによるメトリクス収集とPromQL
- Grafanaによるダッシュボード設計
- アラート疲れを避ける効果的なアラート設計
次のステップ
Step 4: 分散トレーシング(5時間)
オブザーバビリティの第3の柱「トレース」を深掘りします。
推定所要時間: 30分