メインコンテンツまでスキップ

ログ分析

AI-Starter は、アプリケーションの動作状況や利用状況を把握するために、ログを CloudWatch Logs に出力します。 このログを分析することで、問題解決やサービス改善に役立てることができます。

本稿では、CloudWatch Logs Insights を用いたログ分析方法について解説します。

アプリケーションログの分析

CloudWatch Logs Insights では、強力なクエリ機能を用いてログデータを柔軟に分析できます。

分析手順

  1. AWS マネジメントコンソールにログインします。
  2. 東京リージョンの App Runner サービス画面を開きます。
  3. 対象の AI-Starter のリソース(例:cmais-prd-ar-ai-starter)を選択します。
  4. [ログ]タブ配下にある、[アプリケーションログ]欄の[CloudWatch で表示]をクリックします。
  5. CloudWatch のサービス画面に遷移し、AI-Starter のリソースのロググループが表示されます。
  6. [Logs Insights で表示]をクリックします。
  7. 表示されたクエリ入力欄に、分析したい内容に応じたクエリを入力し実行します。

クエリ例

利用者数

fields @timestamp, @message, user
| filter !isBlank(user)
| stats count_distinct(user) as daily_active_users by datefloor(@timestamp, 1d)

このクエリは、日毎にユニークなユーザー数を集計し、日別の利用者数を表示します。

利用者別チャット回数

fields @timestamp, @message, user
| filter !isBlank(user)
| filter @message like /Saved/
| stats count(*) as chat_count by user
| sort chat_count desc

このクエリは、ユーザーごとにチャット回数を集計し、チャット回数が多い順に表示します。

利用アシスタント内訳

fields @timestamp, @message, user, selectedAssistant.id, selectedAssistant.model
| filter !isBlank(user)
| filter @message like /Saved/
| stats count(*) as total by selectedAssistant.id, selectedAssistant.model
| sort by total desc

このクエリは、アシスタントごとの利用回数を集計し、利用回数が多い順に表示します。

エラーログ

fields @timestamp, @message, @logStream, @log
| filter @message like 'Error'
| sort @timestamp desc
| limit 100

このクエリは、「Error」を含むログを抽出し、新しい順に 100 件表示します。 エラー発生時の状況把握に役立ちます。

クエリの保存と再利用

CloudWatch Logs Insights では、頻繁に利用するクエリを保存し、再利用できます。

クエリの保存方法

  1. CloudWatch Logs Insights のクエリ画面で、保存したいクエリを作成します。
  2. 画面上部の[保存]をクリックします。
  3. [新しいクエリを保存する]ダイアログボックスで、クエリ名を入力し[保存]をクリックします。
    • クエリ名には、クエリ内容を分かりやすく表現した名前を設定しましょう。
    • この操作では、ロググループとクエリテキストが保存されます。期間は保存されない点にご注意ください。

保存したクエリの利用方法

  1. CloudWatch Logs Insights のクエリ画面を開きます。
  2. 画面右側の[クエリ]アイコンをクリックします。
  3. [保存されたクエリ]から利用したいクエリを選択します。
  4. 選択したクエリのロググループとクエリテキストが画面に設定されます。
  5. 必要に応じてクエリの期間を調整し、[クエリの実行]をクリックします。

ポイント

  • 保存したクエリは、いつでも編集・削除できます。
  • チームで共通して利用するクエリを保存しておくと、分析作業の効率化につながります。