Monitore as bases de conhecimento usando o CloudWatch Logs - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Monitore as bases de conhecimento usando o CloudWatch Logs

O Amazon Bedrock oferece suporte a um sistema de monitoramento para ajudar você a entender a execução de qualquer trabalho de ingestão de dados para suas bases de conhecimento. As seções a seguir abordam como habilitar e configurar o sistema de registro para as bases de conhecimento do Amazon Bedrock usando o AWS Management Console CloudWatch APIe. Você pode obter visibilidade da ingestão de dados dos recursos da sua base de conhecimento com esse sistema de registro.

Registro de bases de conhecimento usando o console

Para habilitar o registro em uma base de conhecimento do Amazon Bedrock usando o AWS Management Console:

  1. Crie uma base de conhecimento: use o AWS Management Console para que o Amazon Bedrock crie uma nova base de conhecimento.

  2. Adicionar uma opção de entrega de registros: depois de criar a base de conhecimento, edite ou atualize sua base de conhecimento para adicionar uma opção de entrega de registros.

    Configurar detalhes da entrega do registro: insira os detalhes da entrega do registro, incluindo:

    • Destino de registro ( CloudWatch Logs, Amazon S3, Amazon Data Firehose)

    • (Se estiver usando CloudWatch Logs como destino de registro) Nome do grupo de registros

    • (Se estiver usando o Amazon S3 como destino de registro) Nome do bucket

    • (Se estiver usando o Amazon Data Firehose como destino de registro) Firehose stream

  3. Incluir permissões de acesso: o usuário que está conectado ao console deve ter as permissões necessárias para gravar os registros coletados no destino escolhido.

    O exemplo de IAM política a seguir pode ser anexado ao usuário conectado ao console para conceder as permissões necessárias ao usar o CloudWatch Logs.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "logs:CreateDelivery", "Resource": [ "arn:aws:logs:your-region:your-account-id:delivery-source:*", "arn:aws:logs:your-region:your-account-id:delivery:*", "arn:aws:logs:your-region:your-account-id:delivery-destination:*" ] }] }
  4. Confirme o status da entrega: verifique se o status de entrega do log é “Entrega ativa” no console.

Registro de bases de conhecimento usando o CloudWatch API

Para habilitar o registro em uma base de conhecimento do Amazon Bedrock usando: CloudWatch API

  1. Obtenha a base ARN de conhecimento da sua base de conhecimento: depois de criar uma base de conhecimento usando o console Amazon Bedrock API ou Amazon Bedrock, obtenha o Nome do recurso Amazon da base de conhecimento. Você pode obter o nome de recurso da Amazon ligando para GetKnowledgeBaseAPI. A base de conhecimento Amazon Resource Name segue este formato: arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge-base-id

  2. Ligue PutDeliverySource: Use o PutDeliverySourceAPIfornecido pela Amazon CloudWatch para criar uma fonte de entrega para a base de conhecimento. Passe o Amazon Resource Name da base de conhecimento como resourceArn o. logTypeespecifica APPLICATION_LOGS como o tipo de registros que são coletados. APPLICATION_LOGSrastreia o status atual dos arquivos durante um trabalho de ingestão.

    { "logType": "APPLICATION_LOGS", "name": "my-knowledge-base-delivery-source", "resourceArn": "arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge_base_id" }
  3. Chamada PutDeliveryDestination: Use o PutDeliveryDestinationAPIfornecido pela Amazon CloudWatch para configurar onde os registros serão armazenados. Você pode escolher CloudWatch Logs, Amazon S3 ou Amazon Data Firehose como destino para armazenar registros. Você deve especificar o nome de recurso da Amazon de uma das opções de destino para onde seus registros serão armazenados. Você pode escolher um outputFormat dos registros como um dos seguintes:json,plain,w3c,raw,parquet. Veja a seguir um exemplo de configuração de logs para serem armazenados em um bucket do Amazon S3 e JSON em formato.

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

    Observe que, se você estiver entregando registros entre contas, deverá usar o PutDeliveryDestinationPolicy API para atribuir um AWS Identity and Access Management (IAM) política para a conta de destino. A IAM política permite a entrega de uma conta para outra.

  4. Chamada CreateDelivery: use a CreateDeliveryAPIchamada para vincular a fonte de entrega ao destino que você criou nas etapas anteriores. Essa API operação associa a fonte de entrega ao destino final.

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

Se você quiser usar AWS CloudFormation, você pode usar o seguinte:

O ResourceArn é o KnowledgeBaseARN e LogType deve ser APPLICATION_LOGS o tipo de registro suportado.

Tipos de registro compatíveis

As bases de conhecimento do Amazon Bedrock oferecem suporte aos seguintes tipos de registro:

  • APPLICATION_LOGS: registros que rastreiam o status atual de um arquivo específico durante um trabalho de ingestão de dados.

Permissões e limites do usuário

Para habilitar o registro em uma base de conhecimento do Amazon Bedrock, as seguintes permissões são necessárias para a conta de usuário conectada ao console:

  1. bedrock:AllowVendedLogDeliveryForResource— Necessário para permitir que os registros sejam entregues para o recurso da base de conhecimento.

    Você pode ver um exemplo de política IAM de função/permissões com todas as permissões necessárias para seu destino de registro específico. Veja as permissões de registros do Vended para diferentes destinos de entrega e siga o exemplo da política de IAM função/permissão para seu destino de registro, incluindo a permissão de atualizações para seu recurso de destino de registro específico (seja Logs, CloudWatch Amazon S3 ou Amazon Data Firehose).

Você também pode verificar se há algum limite de cota para fazer API chamadas relacionadas à entrega de CloudWatch registros na documentação de cotas do serviço de CloudWatch registros. Os limites de cota definem um número máximo de vezes que você pode chamar um recurso API ou criar um. Se você exceder um limite, isso resultará em um ServiceQuotaExceededException erro.

Exemplos de registros da base de conhecimento

Há registros de nível de ingestão de dados e registros de nível de recursos para as bases de conhecimento do Amazon Bedrock.

Veja a seguir um exemplo de um registro de tarefas de ingestão de dados.

{ "event_timestamp": 1718683433639, "event": { "ingestion_job_id": "<IngestionJobId>", "data_source_id": "<IngestionJobId>", "ingestion_job_status": "INGESTION_JOB_STARTED" | "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" }

Veja a seguir um exemplo de um registro em nível de recurso.

{ "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" }

O status para o recurso pode ser um dos seguintes:

  • SCHEDULED_FOR_INGESTION,SCHEDULED_FOR_DELETION,SCHEDULED_FOR_UPDATE,SCHEDULED_FOR_METADATA_UPDATE: Esses valores de status indicam que o recurso está programado para processamento após o cálculo da diferença entre o estado atual da base de conhecimento e as alterações feitas na fonte de dados.

  • RESOURCE_IGNORED: esse valor de status indica que o recurso foi ignorado para processamento e o motivo está detalhado na status_reasons propriedade.

  • EMBEDDING_STARTEDeEMBEDDING_COMPLETED: Esses valores de status indicam quando a incorporação vetorial de um recurso foi iniciada e concluída.

  • INDEXING_STARTEDeINDEXING_COMPLETED: Esses valores de status indicam quando a indexação de um recurso foi iniciada e concluída.

  • DELETION_STARTEDeDELETION_COMPLETED: Esses valores de status indicam quando a exclusão de um recurso foi iniciada e concluída.

  • METADATA_UPDATE_STARTEDeMETADATA_UPDATE_COMPLETED: Esses valores de status indicam quando a atualização de metadados de um recurso foi iniciada e concluída.

  • EMBEDDING_FAILED,INDEXING_FAILED,DELETION_FAILED, eMETADATA_UPDATE_FAILED: Esses valores de status indicam que o processamento de um recurso falhou e os motivos estão detalhados na status_reasons propriedade.

  • INDEXED,DELETED,PARTIALLY_INDEXED,METADATA_PARTIALLY_INDEXED,FAILED: Depois que o processamento de um documento é finalizado, um registro é publicado com o status final do documento e o resumo do processamento interno da chunk_statistics propriedade.

Exemplos de consultas comuns para depurar registros da base de conhecimento

Você pode interagir com os registros usando consultas. Por exemplo, você pode consultar todos os documentos com o status do evento RESOURCE_IGNORED durante a ingestão de documentos ou dados.

Veja a seguir algumas consultas comuns que podem ser usadas para depurar os registros gerados usando o Logs Insights CloudWatch :

  • Consulte todos os registros gerados para um documento específico do S3.

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

  • Consulte todos os documentos ignorados durante o trabalho de ingestão de dados.

    filter event.status = "RESOURCE_IGNORED"

  • Consulte todas as exceções que ocorreram durante a incorporação vetorial de documentos.

    filter event.status = "EMBEDDING_FAILED"

  • Consulte todas as exceções que ocorreram durante a indexação de documentos no banco de dados vetoriais.

    filter event.status = "INDEXING_FAILED"

  • Consulte todas as exceções que ocorreram ao excluir documentos do banco de dados vetoriais.

    filter event.status = "DELETION_FAILED"

  • Consulte todas as exceções que ocorreram ao atualizar os metadados do seu documento no banco de dados vetoriais.

    filter event.status = "DELETION_FAILED"

  • Consulte todas as exceções que ocorreram durante a execução de um trabalho de ingestão de dados.

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