[アップデート] Amazon Q Developer Pro でユーザーアクティビティを記録する日次レポートが出力出来るようになりました
いわさです。
ソフトウェア開発アシスタントである Amazon Q Developer には、Free と Pro の 2 つの Tier が存在しています。
Free はいくつか制限がありますが無料で利用が可能で、より制限が緩和されていたり組織によるユーザー管理を行いたい場合は有料の Pro Tier を使うことも出来ます。
そんな Amazon Q Developer の Pro Tier で、ユーザーの使用状況を日次でレポート出力し、管理者が一括で管理化のユーザーが Q Developer のどの機能をどの程度使っているのかを把握出来るようになりました。
こちらを有効化して使ってみましたので、設定方法とどのように出力されるのかを調べてみます。
設定方法
このレポートですが、日次で S3 バケットに出力されます。
なので大きな流れとしては事前に S3 バケットを作成し、Q Developer の設定画面で S3 バケットを指定するような感じとなります。
セットアップ済みの Amazon Q Developer で設定画面を開きます。
新しく「Q Developer user activity report」という設定エリアが追加されています。
こちらの編集ボタンを押してレポートの設定を行いましょう。
指定可能な項目は設定の有効/無効と有効時の出力先 S3 バケットのみです。
「Collect granular metrics per user」を ON にして S3 バケットを入力して保存します。
出力内容やタイミングの設定などは出来ないみたいです。
ちなみに、Amazon Q から S3 バケットに書き込みを行う関係上、サービスプリンシパルに対してアクセス許可が必要です。
正しくバケットポリシーが設定されてないないと保存時に次のようなエラーとなります。
こんな感じでバケットポリシーを設定しましょう。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "QDeveloperLogsWrite",
"Effect": "Allow",
"Principal": {
"Service": "q.amazonaws.com"
},
"Action": [
"s3:PutObject"
],
"Resource": [
"arn:aws:s3:::bucketName/prefix/*"
],
"Condition": {
"StringEquals": {
"aws:SourceAccount": "accountId"
},
"ArnLike": {
"aws:SourceArn": "arn:aws:codewhisperer:region:accountId:*"
}
}
}
]
}
バケットポリシーの設定が正しければ ON の状態で保存されるはずです。(あるいは KMS 暗号化を有効化している場合はキーポリシーの設定も必要)
Q を使い、レポートを確認する
Visual Studio Code で Q Developer Pro ユーザーでサインインします。
事前に PRO ユーザー何人かプロビジョニング済みです。
今回追加されたレポートには提案されたコード行数や Q とやり取りしたメッセージ数などいくつかの数値情報がレポートとして出力される形になります。出力される各情報の詳細は次の公式ドキュメントを確認してください。
ということで、今回は Q といくつか対話をしてみました。
そして後日 S3 バケットを見てみるとレポートが出力されていることが確認出来ました。
日次で出力されるのですが、時間を見る感じだと日本時間の朝 9 時以降に順に出力されるようです。
年月日のプレフィックスつきで CSV が出力されていました。
内容は次のような情報です。
UserId,Date,Chat_MessagesSent
"54188478-4031-7018-75f3-f68e5bac479f",11-14-2024,3
メッセージ数が記録されていますね。
この構造、Athena でパーティション切りながらうまく集計も出来そうですね。
さいごに
本日は Amazon Q Developer Pro でユーザーアクティビティを記録する日次レポートが出力出来るようになったので使ってみました。
管理者の方が使用状況を把握するために使うような感じですね。
ちなみに Q Developer はクライアント側の設定で使用状況を AWS に送信するどうかをオプトアウト出来るのですが、送信オプトアウトしていても今回の管理者向けユーザーアクティビティは記録されるようです。