View a markdown version of this page

Monitore as bases de conhecimento usando CloudWatch registros - 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 CloudWatch registros

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

Pré-requisitos

Antes de ativar o registro em uma base de conhecimento da Amazon Bedrock, confirme o seguinte:

  • A conta de usuário conectada ao console tem a bedrock:AllowVendedLogDeliveryForResource permissão. Essa permissão permite que os registros sejam entregues para o recurso da base de conhecimento. Para ver um exemplo de política do IAM com todas as permissões necessárias, consulte Permissões de registros vendidos para diferentes destinos de entrega. Siga o exemplo de role/permission política do IAM para seu destino de registro, incluindo permitir atualizações em seu recurso de destino de registro específico (seja CloudWatch Logs, Amazon S3 ou Amazon Data Firehose).

  • Verifique se há limites de cota para CloudWatch chamadas de API relacionadas à entrega de registros. Para obter mais informações, consulte a documentação de cotas do serviço CloudWatch Logs. Se você exceder um limite, isso resultará em um ServiceQuotaExceededException erro.

Tipos de log compatíveis

As bases de conhecimento do Amazon Bedrock permitem os seguintes tipos de log:

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

Habilitar o registro em uma base de conhecimento do Amazon Bedrock (console)

Para habilitar o registro usando o console
  1. Crie uma base de conhecimento. Para obter instruções, consulte Criar uma base de conhecimento.

  2. Edite sua base de conhecimento para adicionar uma opção de entrega de registros.

    nota

    Não é possível usar entregas de logs ao criar uma base de conhecimento com um armazenamento de dados estruturados ou para um Índice GenAI do Kendra.

  3. Configure os detalhes da entrega do log, incluindo:

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

    • (Se estiver usando CloudWatch registros) Nome do grupo de registros

    • (Se estiver usando o Amazon S3) Nome do bucket

    • (Se estiver usando o Amazon Data Firehose) Stream do Firehose

  4. Anexe uma política do IAM à sua conta para conceder permissões para gravar registros no destino.

    O exemplo de política do IAM a seguir concede as permissões necessárias ao usar CloudWatch registros:

    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:*" ] } ] }
  5. Verifique se o status de entrega do log mostra Entrega ativa no console.

Habilitando o registro em uma base de conhecimento (CloudWatch API) do Amazon Bedrock

Para ativar o registro usando a CloudWatch API
  1. Crie uma base de conhecimento usando a API Amazon Bedrock ou o console Amazon Bedrock. Para obter instruções, consulte Criar uma base de conhecimento.

  2. Obtenha o ARN da sua base de conhecimento. Chame a GetKnowledgeBase API para recuperar o ARN. Uma base de conhecimento ARN segue este formato: arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge-base-id

  3. Ligue para a PutDeliverySource API para criar uma fonte de entrega para a base de conhecimento. Passe o ARN da base de conhecimento como o. resourceArn logTypeDefina comoAPPLICATION_LOGS, que rastreia o status 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" }
  4. Chame a PutDeliveryDestination API para configurar onde os registros são armazenados.

    1. Escolha CloudWatch Logs, Amazon S3 ou Amazon Data Firehose como destino.

    2. Especifique o ARN do destino escolhido.

    3. outputFormatDefina como uma das seguintes opções:json,plain,w3c,raw,parquet.

    O exemplo a seguir armazena registros em um bucket do Amazon S3 no formato JSON:

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

    Para entregar registros entre contas, use a PutDeliveryDestinationPolicy API para atribuir uma política do IAM à conta de destino. A política permite a entrega de uma conta para outra.

  5. Ligue para a CreateDelivery API para vincular a fonte de entrega ao destino. Isso associa a origem da entrega ao destino final.

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

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

ResourceArn é KnowledgeBaseARN, e LogType deve ser APPLICATION_LOGS como o tipo de log compatível.

Exemplos de logs da base de conhecimento

Existem logs em nível da ingestão de dados e logs em nível de recursos para bases de conhecimento do Amazon Bedrock.

Este é um exemplo de um log de trabalho de ingestão de dados.

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

Este é um exemplo de um log em nível de recursos.

{ "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 do recurso pode ser um dos seguintes:

  • SCHEDULED_FOR_INGESTION, SCHEDULED_FOR_DELETION, SCHEDULED_FOR_UPDATE, SCHEDULED_FOR_METADATA_UPDATE: estes 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: este valor de status indica se o recurso foi ignorado para processamento e o motivo está detalhado na propriedade status_reasons.

  • EMBEDDING_STARTED e EMBEDDING_COMPLETED: estes valores de status indicam quando a incorporação de vetores de um recurso foi iniciada e concluída.

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

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

  • METADATA_UPDATE_STARTED e METADATA_UPDATE_COMPLETED: estes valores de status indicam quando a atualização dos metadados de um recurso foi iniciada e concluída.

  • EMBEDDING_FAILED, INDEXING_FAILED, DELETION_FAILED e METADATA_UPDATE_FAILED: estes valores de status indicam que o processamento de um recurso falhou e os motivos estão detalhados dentro da propriedade status_reasons.

  • INDEXED, DELETED, PARTIALLY_INDEXED, METADATA_PARTIALLY_INDEXED, FAILED: depois que o processamento de um documento for finalizado, um log será publicado com o status final do documento, além do resumo do processamento dentro da propriedade chunk_statistics.

  • CRAWLED,RESOURCE_CRAWLED,RESOURCE_FETCHED,CRAWLING_COMPLETED,CONNECTOR_CRAWLING_COMPLETED: Esses valores de status indicam que o recurso foi rastreado ou obtido do conector da fonte de dados.

  • PENDING,STARTING,IN_PROGRESS: Esses valores de status indicam que o recurso está na fila ou está sendo processado no momento.

  • DELETE_IN_PROGRESS,DELETING: Esses valores de status indicam que o recurso está em processo de exclusão.

  • INGESTION_JOB_STARTED,INGESTION_JOB_FAILED: Esses valores de status indicam o início ou a falha do trabalho geral de ingestão do recurso.

  • GRAPH_ENTITY_EXTRACTION_STARTED,GRAPH_ENTITY_EXTRACTION_COMPLETED,GRAPH_ENTITY_EXTRACTION_FAILED: Esses valores de status indicam o progresso da extração de entidades gráficas para bases de conhecimento que usam um armazenamento de dados gráfico.

Exemplos de consultas comuns para depurar logs da base de conhecimento

Você pode interagir com logs 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.

A seguir estão algumas consultas comuns que podem ser usadas para depurar os registros gerados usando o Logs Insights CloudWatch :

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

    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 ocorridas durante a incorporação de vetores dos documentos.

    filter event.status = "EMBEDDING_FAILED"

  • Consulte todas as exceções ocorridas durante a indexação de documentos no banco de dados de vetores.

    filter event.status = "INDEXING_FAILED"

  • Consulte todas as exceções ocorridas durante a exclusão de documentos do banco de dados de vetores.

    filter event.status = "DELETION_FAILED"

  • Consulte todas as exceções ocorridas durante a atualização dos metadados do documento no banco de dados de vetores.

    filter event.status = "DELETION_FAILED"

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

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