ログ分析
AI-Starter は、アプリケーションの動作状況や利用状況を把握するために、ログを CloudWatch Logs に出力します。 このログを分析することで、問題解決やサービス改善に役立てることができます。
本稿では、CloudWatch Logs Insights を用いたログ分析方法について解説します。
アプリケーションログの分析
CloudWatch Logs Insights では、強力なクエリ機能を用いてログデータを柔軟に分析できます。
分析手順
- AWS マネジメントコンソールにログインします。
- 東京リージョンの App Runner サービス画面を開きます。
- 対象の AI-Starter のリソース(例:cmais-prd-ar-ai-starter)を選択します。
- [ログ]タブ配下にある、[アプリケーションログ]欄の[CloudWatch で表示]をクリックします。
- CloudWatch のサービス画面に遷移し、AI-Starter のリソースのロググループが表示されます。
- [Logs Insights で表示]をクリックします。
- 表示されたクエリ入力欄に、分析したい内容に応じたクエリを入力し実行します。
クエリ例
利用者数
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 では、頻繁に利用するクエリを保存し、再利用できます。
クエリの保存方法
- CloudWatch Logs Insights のクエリ画面で、保存したいクエリを作成します。
- 画面上部の[保存]をクリックします。
- [新しいクエリを保存する]ダイアログボックスで、クエリ名を入力し[保存]をクリックします。
- クエリ名には、クエリ内容を分かりやすく表現した名前を設定しましょう。
- この操作では、ロググループとクエリテキストが保存されます。期間は保存されない点にご注意ください。
保存したクエリの利用方法
- CloudWatch Logs Insights のクエリ画面を開きます。
- 画面右側の[クエリ]アイコンをクリックします。
- [保存されたクエリ]から利用したいクエリを選択します。
- 選択したクエリのロググループとクエリテキストが画面に設定されます。
- 必要に応じてクエリの期間を調整し、[クエリの実行]をクリックします。
ポイント
- 保存したクエリは、いつでも編集・削除できます。
- チームで共通して利用するクエリを保存しておくと、分析作業の効率化につながります。