複数のLambdaがCloudWatch LogsへJSON形式のログを書き込み、各ログにlevelとserviceフィールドを含めている。
既存ログの直近1時間を対話的に調査し、levelがERRORの件数をservice別に集計したい。
最も適切な機能はどれか。
CloudWatch Logs Insightsで複数ログをクエリし、ERRORの発生傾向を集計する。
詳細解説
Metrics Insightsはメトリクスのクエリ機能であり、CloudWatch Logsの本文を検索しない。
対象ロググループと直近1時間を指定し、filterでERRORに絞り、statsでservice別の件数を集計できる。
メトリクスフィルターは作成後に到着するログを評価する。既存ログを遡って集計する用途には合わない。
AWS API操作の監査であり、Lambdaが出力したアプリケーションログの本文を集計する機能ではない。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
CloudWatch Logs Insightsの公式説明を確認する。
参考にした公式資料
確認できる内容
ログ収集先とクエリによる分析機能を区別できる。
理解のポイント
- CloudWatch Logs Insights
- ロググループ
- ERROR検索
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
フィルターと集計をつなぐ
対象ロググループと時間範囲を指定し、filter level = "ERROR" | stats count(*) by service として集計できる。serviceのような集計キーをログへ含めておくことが前提になる。
過去ログの調査と継続監視
Logs Insightsは保存済みログの調査に使う。メトリクスフィルターは新しく到着したログから数値を作るため、遡及検索の代替にはならない。必要なグループと時間範囲に絞ってスキャン量を抑える。