Les administrateurs Kiro peuvent activer la journalisation de toutes les suggestions en ligne et de toutes les conversations de clavardage que les utilisateurs ont dans l'IDE Kiro ou la CLI Kiro. Ces journaux peuvent contribuer à l'audit, au débogage, à l'analytique et à la conformité.
Lorsque la journalisation des requêtes est activée, Kiro consigne à la fois les requêtes des utilisateurs et les réponses de Kiro provenant de l'IDE et de la CLI. Kiro stocke les journaux dans un compartiment Amazon S3 de votre choix, dans votre propre compte. Pour des exemples et des explications sur le contenu des fichiers journaux, consultez les exemples de journaux de requêtes.
La fonctionnalité de journalisation des requêtes n'entraîne aucuns frais, à l'exception du coût de stockage du compartiment Amazon S3 utilisé pour conserver les journaux et de petits frais optionnels pour la clé KMS utilisée pour chiffrer le compartiment.
Créez un compartiment Amazon S3 pour conserver les journaux de requêtes. Le compartiment doit :
Se trouver dans la Région AWS où le profil Kiro a été installé. Ce profil a été installé lorsque vous avez abonné des utilisateurs à Kiro Pro pour la première fois. Pour en savoir plus sur ce profil et les Régions où il est prise en charge, consultez Concepts et Régions prises en charge.
Se trouver dans le compte AWS où les utilisateurs sont abonnés.
Avoir une politique de compartiment semblable à celle qui suit. Remplacez bucketName, Region, accountId et prefix par vos propres informations.
{ "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": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:codewhisperer:us-east-1:111122223333:*" } } } ] }
Pour en savoir plus sur la protection des données dans votre compartiment Amazon S3, consultez Protection des données par chiffrement dans le Guide de l'utilisateur Amazon Simple Storage Service.
s3://amzn-s3-demo-bucket/kiro-prompt-logs/Cette section fournit des exemples de journaux de requêtes générés par Kiro.
Après chaque exemple se trouve un tableau qui décrit les champs du fichier journal.
L'exemple suivant montre un fichier journal généré lorsqu'un utilisateur accepte une suggestion en ligne.
{ "records": [ { "generateCompletionsEventRequest": { "leftContext": "import * cdk from 'aws-cdk-lib';\r\nimport * s3 from 'aws-cdk-lib/aws-s3';\r\nimport { Stack, StackProps } from 'constructs';\r\nexport class MyStack extends Stack {\r\n constructor(scope: cdk.App, id: string, props?: StackProps) {\r\n super(scope, id, props);\r\n\r\n new s3.Bucket(this, 'XXXXXXXX', {\r\n versioned: true\r\n });\r\n }\r\n ", "rightContext": "", "fileName": "cdk-modified.ts", "customizationArn": null, "userId": "d-92675051d5.b8f1f340-9081-70ad-5fc5-0f37151937a6", "timeStamp": "2025-01-06T15:09:16.412719Z" }, "generateCompletionsEventResponse": { "completions": ["synth() {\n return cdk.App.prototype.synth.apply(this, arguments);\n }"], "requestId": "797c70ee-abc9-4cc7-a148-b9df17f6ce48" } } ] }
Le tableau suivant décrit les champs du fichier journal pour les suggestions en ligne.
| Field name | Description |
|---|---|
records | Champ de niveau supérieur qui contient un ensemble de suggestions en ligne, aussi appelées complétions en ligne. |
generateCompletionsEventRequest | Décrit la requête d'une suggestion de code en ligne. La requête est faite par Kiro, pour le compte de l'utilisateur. |
leftContext | Indique le code avant le curseur que Kiro utilise comme contexte pour générer une suggestion en ligne. |
rightContext | Indique le code après le curseur que Kiro utilise comme contexte pour générer une suggestion en ligne. |
fileName | Indique le nom du fichier dans lequel une suggestion en ligne a été demandée. |
userId | Indique l'ID de l'utilisateur qui a demandé une suggestion en ligne. |
timeStamp | Indique la date et l'heure à laquelle la suggestion en ligne a été demandée. L'horodatage est en temps universel coordonné (UTC). |
generateCompletionsEventResponse | Décrit la suggestion en ligne générée par Kiro. |
completions | Indique la suggestion en ligne fournie par Kiro et acceptée par l'utilisateur. |
requestId | L'ID de la requête en ligne qui identifie de façon unique l'événement. |
L'exemple suivant montre un fichier journal généré lorsqu'un utilisateur clavarde avec Kiro dans son IDE.
{ "records": [ { "generateAssistantResponseEventRequest": { "prompt": "Can you explain how to set up object-level access control in an S3 bucket using AWS CDK?", "chatTriggerType": "MANUAL", "customizationArn": null, "userId": "d-92675051d5.b8f1f340-9081-70ad-5fc5-0f37151937a6", "timeStamp": "2025-01-06T15:05:56.313070Z" }, "generateAssistantResponseEventResponse": { "assistantResponse": "I'll explain how to set up object-level access control for an S3 bucket using AWS CDK...", "followupPrompts": "How can you implement multi-factor authentication for S3 bucket access using AWS CDK?", "messageMetadata": { "conversationId": "491bd3cd-d70d-40c0-a452-5ef3f0878422", "utteranceId": null }, "codeReferenceEvents": [], "supplementaryWebLinksEvent": [ { "uri": "https://docs.aws.amazon.com/AmazonS3/latest/API/s3_example_s3_Scenario_ManageACLs_section.html", "title": "[1] Manage access control lists (ACLs) for Amazon S3 buckets using an AWS SDK", "snippet": "The following code example shows how to manage access control lists (ACLs) for Amazon S3 buckets..." } ], "requestId": "dad38fc0-815c-45f7-970a-db916cb7f131" } } ] }
| Field name | Description |
|---|---|
records | Champ de niveau supérieur qui contient un ensemble de requêtes et de réponses. |
generateAssistantResponseEventRequest | Décrit la requête saisie par l'utilisateur dans la fenêtre de clavardage de son IDE. |
prompt | Indique la requête que l'utilisateur a saisie dans la fenêtre de clavardage. |
chatTriggerType | MANUAL indique que l'utilisateur a saisi une requête dans la fenêtre de clavardage, ou a cliqué sur l'une des questions suggérées dans la fenêtre de clavardage. INLINE_CHAT indique que l'utilisateur a saisi une requête dans le petit écran de saisie de la fenêtre principale de programmation. |
userId | Indique l'ID de l'utilisateur qui a saisi la requête. |
timeStamp | Indique la date et l'heure à laquelle l'utilisateur a saisi la requête. L'horodatage est en temps universel (UTC). |
generateAssistantResponseEventResponse | Décrit la réponse générée par Kiro. |
assistantResponse | Indique la réponse que Kiro a fournie à la requête de l'utilisateur. |
followupPrompts | Indique les exemples de requêtes de suivi qui ont été affichés à l'utilisateur à la fin de la réponse. |
messageMetadata | Décrit les métadonnées associées à la réponse. |
conversationId | Indique l'ID de conversation de la réponse. L'ID de conversation regroupe les messages au sein d'une session de clavardage. |
utteranceId | Indique l'ID d'énoncé de la réponse. Un ID d'énoncé est une étiquette qui distingue une requête d'une autre au sein d'un dialogue ou d'un ensemble de données. |
codeReferenceEvents | Décrit les liens vers des références de code incluses dans la réponse. |
supplementaryWebLinksEvent | Indique les liens qui ont été affichés à l'utilisateur à la fin de la réponse. |
requestId | L'ID de la réponse qui identifie de façon unique l'événement. |
Journalisation des requêtes des utilisateurs