사용자별 활동 조회
사용자 활동 리포트로 관리자가 조직의 Kiro 사용 현황을 감사하고 추적하는 방법을 안내합니다.
조직에 속한 Kiro 구독자의 사용자별 활동 텔레메트리를 수집하도록 Kiro를 구성하고, 이를 일별 CSV 리포트로 전달받을 수 있습니다. 이 리포트를 사용해 사용량을 감사하고, 라이선스 할당을 최적화하며, 크레딧 및 초과 사용량을 추적하고, 개별 사용자가 여러 클라이언트에서 Kiro와 어떻게 상호작용하는지 파악할 수 있습니다.
리포트 소개
매일 협정 세계시(UTC) 오전 2시(02:00)에 Kiro는 클라이언트 유형(IDE, CLI, Plugin)별로 CSV 리포트를 생성하여 사용자의 S3 버킷에 기록합니다.
s3://bucketName/prefix/AWSLogs/accountId/KiroLogs/user_report/region/year/month/day/00/clientType_accountId_user_report_timestamp.csv
사용자 활동 리포트 활성화
사전 준비
사용자 활동 리포트 CSV 파일을 저장할 Amazon S3 버킷을 생성합니다. 버킷은 다음 조건을 충족해야 합니다.
- Kiro 프로필이 설치된 AWS 리전에 있어야 합니다. 이 프로필은 처음으로 IAM Identity Center 워크포스 사용자를 Kiro Pro에 구독시킬 때 설치됩니다. 이 프로필과 지원되는 리전에 대한 자세한 내용은 Kiro 프로필과 지원 리전을 참고하세요.
- 사용자가 구독된 AWS 계정에 있어야 합니다. 여러 AWS 계정에 사용자가 구독되어 있다면 각 계정마다 버킷을 생성해야 합니다. 교차 계정(cross-account) 버킷은 지원되지 않습니다.
- (선택 사항이지만 권장) 사용자 프롬프트 로깅에 사용하는 버킷과는 별개의 버킷을 사용하는 것이 좋습니다.
- Kiro가 CSV 파일을 저장할 접두사(prefix, 하위 폴더라고도 함)를 포함해야 합니다. CSV 파일은 버킷 루트에 저장할 수 없습니다.
- 아래와 같은 버킷 정책을 가지고 있어야 합니다.
bucketName,prefix,region,accountId를 사용자 환경의 값으로 교체하세요. 정책의Condition블록에 있는region과accountId는 Kiro 프로필이 설치된 리전 및 사용자가 구독된 AWS 계정과 일치해야 합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "KiroLogsWrite",
"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:*"
}
}
}
]
}
Amazon S3 버킷의 데이터를 보호하는 방법은 Amazon Simple Storage Service 사용 설명서의 암호화를 통한 데이터 보호를 참고하세요.
사용자 활동 리포트를 활성화하려면
- AWS 콘솔에 로그인합니다.
- Kiro 콘솔로 전환합니다. Kiro 콘솔을 사용하려면 정책: 관리자가 Kiro를 구성하고 사용자를 구독하도록 허용에 정의된 권한이 필요합니다.
- Settings를 선택합니다.
- Kiro user activity reports에서 Edit을 선택합니다.
- Collect granular metrics per user를 토글합니다.
- S3 location에 CSV 리포트를 저장할 Amazon S3 URI를 입력합니다. 예:
s3://amzn-s3-demo-bucket/user-activity-reports/
활성화 후
첫 CSV 리포트는 리포트를 활성화한 이후 처음 도래하는 UTC 오전 2시에 생성되며, 이후 매일 새 파일이 기록됩니다. 리포트가 버킷에 쌓이면 Amazon Athena로 쿼리하거나, Amazon QuickSight로 추세를 시각화하거나, 기존 분석 파이프라인으로 가져올 수 있습니다.
사용자별 상세 없이 Kiro 사용 현황을 한눈에 보려면 대시보드에서 Kiro 사용량 조회를 참고하세요. 사용자 프롬프트의 내용까지 수집하려면 프롬프트 로깅을 참고하세요.
사용자 활동 리포트 지표
다음 표는 Kiro가 생성하는 사용자 활동 리포트에 포함된 지표를 설명합니다.
| 지표 이름 | 설명 |
|---|---|
| Date | 리포트 활동 날짜 |
| UserId | 활동이 보고되는 사용자의 ID |
| Client_Type | KIRO_IDE, KIRO_CLI 또는 PLUGIN |
| Chat_Conversations | 해당 일자에 사용자가 진행한 대화 수 |
| Credits_Used | 해당 일자에 사용자 구독 플랜에서 소비된 크레딧 |
| Overage_Cap | Overage_Enabled가 true일 때 관리자가 설정한 초과 사용 한도. 초과 사용이 활성화되지 않은 경우, 이 필드는 구독 플랜에 포함된 최대 크레딧을 사전 설정값으로 표시합니다 |
| Overage_Credits_Used | 초과 사용이 활성화된 경우 사용자가 사용한 초과 크레딧 총량 |
| Overage_Enabled | 해당 사용자에 대해 초과 사용이 활성화되어 있는지 여부 |
| ProfileId | 사용자 활동과 연결된 프로필 |
| Subscription_Tier | Kiro 구독 플랜 - Pro, ProPlus, ProMax, Power |
| Total_Messages | Kiro와 주고받은 메시지 수. 사용자 프롬프트, 도구 호출, Kiro 응답을 포함합니다 |
| New_User | 사용자 구독이 신규인지 여부. 사용자가 리포트 날짜에 Kiro 구독을 활성화한 경우 이 지표는 true입니다 |
| User_Email | 사용자의 이메일 주소 |
model_name_messages | 특정 모델이 사용자에 대해 처리한 메시지 수(Auto 포함) |
리포트 구조
- 리포트는 정적 열(모델 메시지를 제외한 모든 필드)과 동적 열(모델 메시지)로 구성됩니다.
- 모델 메시지 열의 개수는 리포트 날짜에 사용된 모델 수에 따라 달라집니다.
- 모델 메시지 열 이름은 소문자 모델명을 알파벳 순으로 나열하며, Auto부터 시작합니다.
- 모델 메시지 열 값은 해당 리포트 날짜에 그 모델이 사용자에 대해 처리한 메시지 수입니다. 사용자가 특정 모델을 사용하지 않았다면 열 값은 0으로 표시됩니다.
레거시 사용자 활동 리포트 지표
레거시 사용자 활동 리포트는 새로운 클라이언트별 리포트와 함께 계속 실행됩니다. 이 리포트에는 CLI 및 플러그인 사용 데이터만 포함됩니다. 일별 CSV 파일은 동일한 S3 버킷의 다음 경로에 게시됩니다.
s3://bucketName/prefix/AWSLogs/accountId/KiroLogs/by_user_analytic/Region/year/month/day/00/accountId_by_user_analytic_timestamp.csv
CSV 파일의 구성은 다음과 같습니다.
clientType별로 하나의 CSV 파일이 생성되며, 해당 일자에 그 클라이언트와 상호작용한 모든 사용자를 포함합니다.- 각 행은 해당 일자에 Kiro와 상호작용한 사용자를 나타냅니다.
- 각 열은 아래 표에 설명된 지표를 나타냅니다. 지표는 하루 동안 수집된 사용자 텔레메트리를 기반으로 계산됩니다.
- 하루에 1,000명을 초과하는 사용자가 Kiro와 상호작용한 경우, Kiro는 데이터를 사용자 1,000명씩 여러 CSV 파일로 분할합니다. 파일에는
part_1,part_2등의 접미사가 붙습니다.
경로의 00 세그먼트는 UTC 오전 2시 쓰기 시각을 반영하는 고정 시간 파티션입니다.
다음 표는 Kiro가 생성하는 레거시 사용자 활동 리포트에 포함된 지표를 설명합니다.
| 지표 이름 | 설명 |
|---|---|
| Chat_AICodeLines | Kiro가 제안하고 사용자가 수락한 코드 줄 수. Kiro 채팅(인라인 채팅 아님)을 통해 생성되어 IDE에 삽입된 코드가 포함됩니다. |
| Chat_MessagesInteracted | 사용자가 Kiro와 긍정적으로 상호작용한 채팅 메시지 수. 긍정적 상호작용의 예: 링크 클릭, 제안 삽입, Kiro 응답에 대한 추천(upvote). Kiro 채팅(인라인 채팅 아님)에서 생성된 메시지가 포함됩니다. |
| Chat_MessagesSent | Kiro와 주고받은 메시지 수. Kiro 채팅(인라인 채팅 아님)의 사용자 프롬프트와 Kiro 응답이 포함됩니다. |
| CodeFix_AcceptanceEventCount | Kiro가 제안하고 사용자가 수락한 코드 수정 수. 코드 리뷰 기능으로 생성된 코드 수정에 적용됩니다. |
| CodeFix_AcceptedLines | Kiro가 제안하고 사용자가 수락한 코드 줄 수. 코드 리뷰 기능으로 생성된 코드 줄에 적용됩니다. |
| CodeFix_GeneratedLines | Kiro가 제안한 코드 줄 수. 코드 리뷰 기능으로 생성된 코드 줄에 적용됩니다. |
| CodeFix_GenerationEventCount | Kiro가 제안한 코드 수정 수. 코드 리뷰 기능으로 생성된 코드 수정에 적용됩니다. |
| CodeReview_FailedEventCount | 발견되었으나 Kiro가 코드 수정을 제안하지 못한 코드 이슈 수. 코드 리뷰 기능으로 발견된 코드 이슈에 적용됩니다. |
| CodeReview_FindingsCount | Kiro가 발견한 코드 이슈 수. 코드 리뷰 기능으로 발견된 코드 이슈에 적용됩니다. |
| CodeReview_SucceededEventCount | 발견되어 Kiro가 코드 수정 제안을 생성할 수 있었던 코드 이슈 수. 코드 리뷰 기능으로 발견된 코드 이슈에 적용됩니다. |
| Dev_AcceptanceEventCount | Kiro가 제안하고 사용자가 수락한 코드 기능 수. /dev 명령으로 생성된 코드 기능에 적용됩니다. |
| Dev_AcceptedLines | Kiro가 제안하고 사용자가 수락한 코드 줄 수. /dev 명령으로 생성된 코드 줄에 적용됩니다. |
| Dev_GeneratedLines | Kiro가 제안한 코드 줄 수. /dev 명령으로 생성된 코드 줄에 적용됩니다. |
| Dev_GenerationEventCount | Kiro가 제안한 코드 기능 수. /dev 명령으로 생성된 코드 기능에 적용됩니다. |
| DocGeneration_AcceptedFileUpdates | Kiro가 제안하고 사용자가 수락한 파일 업데이트 수. /doc 명령으로 생성된 파일 업데이트에 적용됩니다. |
| DocGeneration_AcceptedFilesCreations | Kiro가 제안하고 사용자가 수락한 파일 생성 수. /doc 명령으로 생성된 파일 생성에 적용됩니다. |
| DocGeneration_AcceptedLineAdditions | Kiro가 제안하고 사용자가 수락한 문서 추가 줄 수. /doc 명령으로 생성된 문서에 적용됩니다. |
| DocGeneration_AcceptedLineUpdates | Kiro가 제안하고 사용자가 수락한 문서 업데이트 줄 수. /doc 명령으로 생성된 문서에 적용됩니다. |
| DocGeneration_EventCount | 사용자가 /doc 명령으로 Kiro를 사용한 횟수. |
| DocGeneration_RejectedFileCreations | Kiro가 제안했으나 사용자가 거부한 파일 생성 수. /doc 명령으로 생성된 파일 생성에 적용됩니다. |
| DocGeneration_RejectedFileUpdates | Kiro가 제안했으나 사용자가 거부한 파일 업데이트 수. /doc 명령으로 생성된 파일 업데이트에 적용됩니다. |
| DocGeneration_RejectedLineAdditions | Kiro가 제안했으나 사용자가 거부한 문서 추가 줄 수. /doc 명령으로 생성된 문서에 적용됩니다. |
| DocGeneration_RejectedLineUpdates | Kiro가 제안했으나 사용자가 거부한 문서 업데이트 줄 수. /doc 명령으로 생성된 문서에 적용됩니다. |
| InlineChat_AcceptedLineAdditions | Kiro가 제안하고 사용자가 수락한 코드 추가 줄 수. 인라인 채팅(Kiro 채팅 아님)으로 생성된 코드 추가가 포함됩니다. |
| InlineChat_AcceptedLineDeletions | Kiro가 제안하고 사용자가 수락한 코드 삭제 줄 수. 인라인 채팅(Kiro 채팅 아님)으로 제안된 코드 삭제가 포함됩니다. |
| InlineChat_AcceptanceEventCount | 사용자가 수락한 인라인 채팅(Kiro 채팅 아님) 제안 수. |
| InlineChat_DismissalEventCount | 사용자가 무시(abandon)한 인라인 채팅(Kiro 채팅 아님) 제안 수. '무시'란 코드 제안이 표시되었지만 사용자가 계속 입력하거나 IDE에서 다른 작업을 수행하며 코드 제안을 명시적으로 수락하거나 거부하지 않은 경우를 의미합니다. |
| InlineChat_DismissedLineAdditions | Kiro가 제안했으나 사용자가 무시한 코드 추가 줄 수. '무시'의 의미는 위와 같습니다. 인라인 채팅(Kiro 채팅 아님)으로 생성된 코드 추가가 포함됩니다. |
| InlineChat_DismissedLineDeletions | Kiro가 제안했으나 사용자가 무시한 코드 삭제 줄 수. '무시'의 의미는 위와 같습니다. 인라인 채팅(Kiro 채팅 아님)으로 제안된 코드 삭제가 포함됩니다. |
| InlineChat_EventCount | 사용자가 참여한 인라인 채팅(Kiro 채팅 아님) 세션 수. |
| InlineChat_RejectedLineAdditions | Kiro가 제안했으나 사용자가 거부한 코드 추가 줄 수. 인라인 채팅(Kiro 채팅 아님)으로 생성된 코드 추가가 포함됩니다. |
| InlineChat_RejectedLineDeletions | Kiro가 제안했으나 사용자가 거부한 코드 삭제 줄 수. 인라인 채팅(Kiro 채팅 아님)으로 제안된 코드 삭제가 포함됩니다. |
| InlineChat_RejectionEventCount | 사용자가 거부한 인라인 채팅(Kiro 채팅 아님) 제안 수. |
| Inline_AICodeLines | Kiro가 제안하고 사용자가 수락한 코드 줄 수. 인라인 제안으로 수락된 코드가 포함됩니다. |
| Inline_AcceptanceCount | 사용자가 수락한 인라인 제안 수. |
| Inline_SuggestionsCount | 사용자에게 표시된 인라인 제안 수. |
| TestGeneration_AcceptedLines | Kiro가 제안하고 사용자가 수락한 코드 줄 수. /test 명령으로 생성된 코드 줄에 적용됩니다. |
| TestGeneration_AcceptedTests | Kiro가 제안하고 사용자가 수락한 단위 테스트 수. /test 명령으로 생성된 단위 테스트에 적용됩니다. |
| TestGeneration_EventCount | 사용자가 /test 명령으로 Kiro를 사용한 횟수. |
| TestGeneration_GeneratedLines | Kiro가 제안한 코드 줄 수. /test 명령으로 생성된 코드 줄에 적용됩니다. |
| TestGeneration_GeneratedTests | Kiro가 제안한 단위 테스트 수. /test 명령으로 생성된 단위 테스트에 적용됩니다. |
| Transformation_EventCount | 사용자가 /transform 명령으로 Kiro를 사용한 횟수. 명령줄에서 코드를 변환한 경우는 제외됩니다. |
| Transformation_LinesGenerated | Kiro가 제안한 코드 줄 수. /transform 명령으로 생성된 코드에 적용되며, 명령줄에서 변환된 코드는 제외됩니다. |
| Transformation_LinesIngested | 변환을 위해 Kiro에 제공된 코드 줄 수. /transform 명령으로 제공된 코드에 적용되며, 명령줄에서 변환을 위해 제공된 코드나 SQL 변환은 제외됩니다. |