Monitora le knowledge base utilizzando CloudWatch i log - Amazon Bedrock

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Monitora le knowledge base utilizzando CloudWatch i log

Amazon Bedrock supporta un sistema di monitoraggio per aiutarti a comprendere l’esecuzione di qualsiasi processo di importazione dei dati per le tue knowledge base. Le seguenti sezioni spiegano come abilitare e configurare il sistema di registrazione per le knowledge base di Amazon Bedrock utilizzando Console di gestione AWS sia CloudWatch l'API che. Puoi ottenere visibilità sull’importazione dei dati delle risorse della tua knowledge base con questo sistema di registrazione di log.

Registrazione di log delle knowledge base tramite la console

Per abilitare la registrazione di log per Knowledge Base per Amazon Bedrock utilizzando Console di gestione AWS:

  1. Crea una base di conoscenza: utilizza Console di gestione AWS per Amazon Bedrock per creare una nuova base di conoscenza.

  2. Aggiungi un’opzione di consegna dei log: dopo aver creato la knowledge base, modifica o aggiorna la knowledge base per aggiungere un’opzione di consegna dei log.

    Nota

    Le consegne di log non sono supportate durante la creazione di una knowledge base con un datastore strutturato o per un Indice GenAI di Kendra.

    Configura i dettagli di consegna dei log: inserisci i dettagli per la consegna dei log, tra cui:

    • Destinazione di registrazione ( CloudWatch Logs, Amazon S3, Amazon Data Firehose)

    • (Se si utilizza CloudWatch Logs come destinazione di registrazione) Nome del gruppo di log

    • (Se utilizzi Amazon S3 come destinazione della registrazione di log) Nome del bucket

    • (Se utilizzi Amazon Data Firehose come destinazione della registrazione di log) Flusso Firehose

  3. Includi le autorizzazioni di accesso: l’utente che ha effettuato l’accesso alla console deve disporre delle autorizzazioni necessarie per scrivere i log raccolti nella destinazione scelta.

    Il seguente esempio di policy IAM può essere allegato all'utente che ha effettuato l'accesso alla console per concedere le autorizzazioni necessarie quando si utilizza Logs CloudWatch

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:CreateDelivery", "Resource": [ "arn:aws:logs:us-east-1:123456789012:delivery-source:*", "arn:aws:logs:us-east-1:123456789012:delivery:*", "arn:aws:logs:us-east-1:123456789012:delivery-destination:*" ] } ] }
  4. Conferma lo stato di consegna: verifica che lo stato di consegna dei log sia “Consegna attiva” nella console.

Registrazione delle basi di conoscenza tramite l'API CloudWatch

Per abilitare la registrazione per una knowledge base Amazon Bedrock utilizzando l' CloudWatch API:

  1. Ottieni l’ARN della tua knowledge base: dopo aver creato una knowledge base utilizzando l’API Amazon Bedrock o la console Amazon Bedrock, ottieni l’ARN della knowledge base. Puoi ottenere l'Amazon Resource Name chiamando GetKnowledgeBasel'API. Una knowledge base Amazon Resource Name segue questo formato: arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge-base-id

  2. Chiamata PutDeliverySource: utilizza l'PutDeliverySourceAPI fornita da Amazon CloudWatch per creare una fonte di distribuzione per la knowledge base. Passa l’ARN della knowledge base come resourceArn. logType specifica APPLICATION_LOGS come tipi di log che vengono raccolti. APPLICATION_LOGStengono traccia dello stato corrente dei file durante un processo di importazione.

    { "logType": "APPLICATION_LOGS", "name": "my-knowledge-base-delivery-source", "resourceArn": "arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge_base_id" }
  3. Chiamata PutDeliveryDestination: utilizza l'PutDeliveryDestinationAPI fornita da Amazon CloudWatch per configurare dove verranno archiviati i log. Puoi scegliere CloudWatch Logs, Amazon S3 o Amazon Data Firehose come destinazione per l'archiviazione dei log. È necessario specificare l’ARN di una delle opzioni di destinazione in cui saranno archiviati i log. Puoi scegliere l’outputFormat dei log tra uno dei seguenti: json, plain, w3c, raw, parquet. Di seguito è riportato un esempio di configurazione dei log da archiviare in un bucket Amazon S3 e in formato JSON.

    { "deliveryDestinationConfiguration": { "destinationResourceArn": "arn:aws:s3:::bucket-name" }, "name": "string", "outputFormat": "json", "tags": { "key" : "value" } }

    Tieni presente che se distribuisci log su più account, devi utilizzare l'PutDeliveryDestinationPolicyAPI per assegnare una policy AWS Identity and Access Management (IAM) all'account di destinazione. La policy IAM consente la consegna da un account a un altro.

  4. Chiamata CreateDelivery: utilizza la chiamata CreateDeliveryAPI per collegare l'origine di consegna alla destinazione creata nei passaggi precedenti. Questa operazione API associa l’origine di consegna alla destinazione finale.

    { "deliveryDestinationArn": "string", "deliverySourceName": "string", "tags": { "string" : "string" } }
Nota

Se desideri utilizzareCloudFormation, puoi utilizzare quanto segue:

ResourceArn è KnowledgeBaseARN e LogType deve essere APPLICATION_LOGS come tipo di log supportato.

Tipi di log supportati

Knowledge Base per Amazon Bedrock supporta i seguenti tipi di log:

  • APPLICATION_LOGS: log che tengono traccia dello stato corrente di un file specifico durante un processo di importazione dei dati.

Autorizzazioni e limiti degli utenti

Per abilitare la registrazione di log per Knowledge Base per Amazon Bedrock, sono necessarie le seguenti autorizzazioni per l’account utente connesso alla console:

  1. bedrock:AllowVendedLogDeliveryForResource: necessario per consentire la consegna dei log per la risorsa knowledge base.

    Puoi visualizzare un esempio di role/permissions politica IAM con tutte le autorizzazioni richieste per la tua destinazione di registrazione specifica. Consulta le autorizzazioni dei log di Vend per diverse destinazioni di consegna e segui l'esempio della role/permission policy IAM per la tua destinazione di registrazione, inclusa l'autorizzazione degli aggiornamenti alla tua risorsa di destinazione di registrazione specifica (che si tratti di Logs CloudWatch , Amazon S3 o Amazon Data Firehose).

Puoi anche verificare se esistono limiti di quota per effettuare chiamate API relative alla consegna dei log nella documentazione sulle quote del servizio CloudWatch Logs. CloudWatch I limiti di quota impostano il numero massimo volte in cui puoi chiamare un’API o creare una risorsa. Se superi un limite, verrà generato un errore ServiceQuotaExceededException.

Esempi di log della knowledge base

Esistono log dei livelli di importazione dei dati e log dei livelli di risorse per Knowledge Base per Amazon Bedrock.

Di seguito è riportato un esempio di un log del processo di importazione dei dati.

{ "event_timestamp": 1718683433639, "event": { "ingestion_job_id": "<IngestionJobId>", "data_source_id": "<IngestionJobId>", "ingestion_job_status": "INGESTION_JOB_STARTED" | "STOPPED" | "COMPLETE" | "FAILED" | "CRAWLING_COMPLETED" "knowledge_base_arn": "arn:aws:bedrock:<region>:<accountId>:knowledge-base/<KnowledgeBaseId>", "resource_statistics": { "number_of_resources_updated": int, "number_of_resources_ingested": int, "number_of_resources_scheduled_for_update": int, "number_of_resources_scheduled_for_ingestion": int, "number_of_resources_scheduled_for_metadata_update": int, "number_of_resources_deleted": int, "number_of_resources_with_metadata_updated": int, "number_of_resources_failed": int, "number_of_resources_scheduled_for_deletion": int } }, "event_version": "1.0", "event_type": "StartIngestionJob.StatusChanged", "level": "INFO" }

Di seguito viene riportato un esempio di un log a livello di risorsa.

{ "event_timestamp": 1718677342332, "event": { "ingestion_job_id": "<IngestionJobId>", "data_source_id": "<IngestionJobId>", "knowledge_base_arn": "arn:aws:bedrock:<region>:<accountId>:knowledge-base/<KnowledgeBaseId>", "document_location": { "type": "S3", "s3_location": { "uri": "s3:/<BucketName>/<ObjectKey>" } }, "status": "<ResourceStatus>" "status_reasons": String[], "chunk_statistics": { "ignored": int, "created": int, "deleted": int, "metadata_updated": int, "failed_to_create": int, "failed_to_delete": int, "failed_to_update_metadata": int }, }, "event_version": "1.0", "event_type": "StartIngestionJob.ResourceStatusChanged", "level": "INFO" | "WARN" | "ERROR" }

Lo status per il nome della risorsa può essere uno dei seguenti:

  • SCHEDULED_FOR_INGESTION, SCHEDULED_FOR_DELETION, SCHEDULED_FOR_UPDATE, SCHEDULED_FOR_METADATA_UPDATE: questi valori di stato indicano che l’elaborazione della risorsa è programmata dopo aver calcolato la differenza tra lo stato corrente della knowledge base e le modifiche apportate all’origine dati.

  • RESOURCE_IGNORED: questo valore di stato indica che la risorsa è stata ignorata per l’elaborazione e il motivo è dettagliato all’interno della proprietà status_reasons.

  • EMBEDDING_STARTED e EMBEDDING_COMPLETED: questi valori di stato indicano quando l’embedding vettoriale per una risorsa è iniziato e completato.

  • INDEXING_STARTED e INDEXING_COMPLETED: questi valori di stato indicano quando l’indicizzazione di una risorsa è iniziata e completata.

  • DELETION_STARTED e DELETION_COMPLETED: questi valori di stato indicano quando l’eliminazione di una risorsa è iniziata e completata.

  • METADATA_UPDATE_STARTED e METADATA_UPDATE_COMPLETED: questi valori di stato indicano quando l’aggiornamento dei metadati di una risorsa è iniziato e completato.

  • EMBEDDING_FAILED, INDEXING_FAILED, DELETION_FAILED e METADATA_UPDATE_FAILED: questi valori di stato indicano che l’elaborazione di una risorsa non è riuscita e i motivi sono descritti in dettaglio all’interno della proprietà status_reasons.

  • INDEXED, DELETED, PARTIALLY_INDEXED, METADATA_PARTIALLY_INDEXED, FAILED: una volta completata l’elaborazione di un documento, viene pubblicato un log con lo stato finale del documento e il riepilogo dell’elaborazione all’interno della proprietà chunk_statistics.

Esempi di query comuni per il debug dei log della knowledge base

È possibile interagire con i log utilizzando le query. Ad esempio, è possibile eseguire una query per tutti i documenti con lo stato dell’evento RESOURCE_IGNORED durante l’importazione di documenti o dati.

Di seguito sono riportate alcune query comuni che possono essere utilizzate per eseguire il debug dei log generati utilizzando Logs Insights: CloudWatch

  • Query per tutti i log generati per uno specifico documento S3.

    filter event.document_location.s3_location.uri = "s3://<bucketName>/<objectKey>"

  • Query per tutti i documenti ignorati durante il processo di importazione dei dati.

    filter event.status = "RESOURCE_IGNORED"

  • Query per tutte le eccezioni che si sono verificate durante l’embedding vettoriale dei documenti.

    filter event.status = "EMBEDDING_FAILED"

  • Query per tutte le eccezioni che si sono verificate durante l’indicizzazione dei documenti nel database vettoriale.

    filter event.status = "INDEXING_FAILED"

  • Query per tutte le eccezioni che si sono verificate durante l’eliminazione dei documenti dal database vettoriale.

    filter event.status = "DELETION_FAILED"

  • Query per tutte le eccezioni che si sono verificate durante l’aggiornamento del documento nel database vettoriale.

    filter event.status = "DELETION_FAILED"

  • Query per tutte le eccezioni che si sono verificate durante l’esecuzione di un processo di importazione dei dati.

    filter level = "ERROR" or level = "WARN"