Pantau basis pengetahuan menggunakan CloudWatch Log - Amazon Bedrock

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pantau basis pengetahuan menggunakan CloudWatch Log

Amazon Bedrock mendukung sistem pemantauan untuk membantu Anda memahami pelaksanaan pekerjaan pengambilan data apa pun untuk basis pengetahuan Anda. Bagian berikut mencakup cara mengaktifkan dan mengonfigurasi sistem logging untuk basis pengetahuan Amazon Bedrock menggunakan CloudWatch API AWS Management Console dan API. Anda dapat memperoleh visibilitas ke dalam konsumsi data sumber daya basis pengetahuan Anda dengan sistem logging ini.

Pencatatan basis pengetahuan menggunakan konsol

Untuk mengaktifkan logging untuk basis pengetahuan Amazon Bedrock menggunakan: AWS Management Console

  1. Buat basis pengetahuan: Gunakan AWS Management Console for Amazon Bedrock untuk membuat basis pengetahuan baru.

  2. Tambahkan opsi pengiriman log: Setelah membuat basis pengetahuan, edit atau perbarui basis pengetahuan Anda untuk menambahkan opsi pengiriman log.

    Konfigurasikan detail pengiriman log: Masukkan detail untuk pengiriman log, termasuk:

    • Tujuan pencatatan (baik CloudWatch Log, Amazon S3, Amazon Data Firehose)

    • (Jika menggunakan CloudWatch Log sebagai tujuan logging) Nama grup log

    • (Jika menggunakan Amazon S3 sebagai tujuan logging) Nama bucket

    • (Jika menggunakan Amazon Data Firehose sebagai tujuan logging) Firehose stream

  3. Sertakan izin akses: Pengguna yang masuk ke konsol harus memiliki izin yang diperlukan untuk menulis log yang dikumpulkan ke tujuan yang dipilih.

    Contoh berikut kebijakan IAM dapat dilampirkan ke pengguna yang masuk ke konsol untuk memberikan izin yang diperlukan saat menggunakan Log CloudWatch

    { "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. Konfirmasikan status pengiriman: Verifikasi bahwa status pengiriman log adalah “Pengiriman aktif” di konsol.

Pencatatan basis pengetahuan menggunakan CloudWatch API

Untuk mengaktifkan logging untuk basis pengetahuan Amazon Bedrock menggunakan CloudWatch API:

  1. Dapatkan ARN basis pengetahuan Anda: Setelah membuat basis pengetahuan menggunakan Amazon Bedrock API atau konsol Amazon Bedrock, dapatkan Nama Sumber Daya Amazon dari basis pengetahuan. Anda bisa mendapatkan Nama Sumber Daya Amazon dengan memanggil GetKnowledgeBaseAPI. Basis pengetahuan Nama Sumber Daya Amazon mengikuti format ini: arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge-base-id

  2. Panggilan PutDeliverySource: Gunakan PutDeliverySourceAPI yang disediakan oleh Amazon CloudWatch untuk membuat sumber pengiriman untuk basis pengetahuan. Lulus basis pengetahuan Nama Sumber Daya Amazon sebagairesourceArn. logTypemenentukan APPLICATION_LOGS sebagai jenis log yang dikumpulkan. APPLICATION_LOGSmelacak status file saat ini selama pekerjaan konsumsi.

    { "logType": "APPLICATION_LOGS", "name": "my-knowledge-base-delivery-source", "resourceArn": "arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge_base_id" }
  3. Panggilan PutDeliveryDestination: Gunakan PutDeliveryDestinationAPI yang disediakan oleh Amazon CloudWatch untuk mengonfigurasi tempat log akan disimpan. Anda dapat memilih CloudWatch Log, Amazon S3, atau Amazon Data Firehose sebagai tujuan untuk menyimpan log. Anda harus menentukan Nama Sumber Daya Amazon dari salah satu opsi tujuan tempat log Anda akan disimpan. Anda dapat memilih log untuk menjadi salah satu dari yang berikut:json,plain,w3c,raw,parquet. outputFormat Berikut ini adalah contoh konfigurasi log yang akan disimpan dalam bucket Amazon S3 dan dalam format JSON.

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

    Perhatikan bahwa jika Anda mengirimkan log lintas akun, Anda harus menggunakan PutDeliveryDestinationPolicy API untuk menetapkan kebijakan AWS Identity and Access Management (IAM) ke akun tujuan. Kebijakan IAM memungkinkan pengiriman dari satu akun ke akun lain.

  4. Panggilan CreateDelivery: Gunakan panggilan CreateDeliveryAPI untuk menautkan sumber pengiriman ke tujuan yang Anda buat di langkah sebelumnya. Operasi API ini mengaitkan sumber pengiriman dengan tujuan akhir.

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

Jika Anda ingin menggunakan AWS CloudFormation, Anda dapat menggunakan yang berikut:

ResourceArnIni adalahKnowledgeBaseARN, dan LogType harus APPLICATION_LOGS sebagai jenis log yang didukung.

Jenis log yang didukung

Basis pengetahuan Amazon Bedrock mendukung jenis log berikut:

  • APPLICATION_LOGS: Log yang melacak status file tertentu saat ini selama pekerjaan pengambilan data.

Izin dan batasan pengguna

Untuk mengaktifkan pencatatan untuk basis pengetahuan Amazon Bedrock, izin berikut diperlukan untuk akun pengguna yang masuk ke konsol:

  1. bedrock:AllowVendedLogDeliveryForResource— Diperlukan untuk memungkinkan log dikirimkan untuk sumber daya basis pengetahuan.

    Anda dapat melihat contoh kebijakan peran/izin IAM dengan semua izin yang diperlukan untuk tujuan pencatatan spesifik Anda. Lihat Izin log penjual untuk tujuan pengiriman yang berbeda, dan ikuti contoh kebijakan peran/izin IAM untuk tujuan pencatatan Anda, termasuk mengizinkan pembaruan ke sumber daya tujuan pencatatan tertentu (baik Log, CloudWatch Amazon S3, atau Amazon Data Firehose).

Anda juga dapat memeriksa apakah ada batasan kuota untuk membuat panggilan API terkait pengiriman CloudWatch log dalam dokumentasi kuota layanan CloudWatch Log. Batas kuota menetapkan jumlah maksimum kali Anda dapat memanggil API atau membuat sumber daya. Jika Anda melebihi batas, itu akan mengakibatkan ServiceQuotaExceededException kesalahan.

Contoh log basis pengetahuan

Ada log tingkat konsumsi data dan log tingkat sumber daya untuk basis pengetahuan Amazon Bedrock.

Berikut ini adalah contoh log pekerjaan konsumsi data.

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

Berikut ini adalah contoh log tingkat sumber daya.

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

statusUntuk sumber daya dapat menjadi salah satu dari yang berikut:

  • SCHEDULED_FOR_INGESTION,SCHEDULED_FOR_DELETION,SCHEDULED_FOR_UPDATE,SCHEDULED_FOR_METADATA_UPDATE: Nilai status ini menunjukkan bahwa sumber daya dijadwalkan untuk diproses setelah menghitung perbedaan antara keadaan basis pengetahuan saat ini dan perubahan yang dibuat dalam sumber data.

  • RESOURCE_IGNORED: Nilai status ini menunjukkan bahwa sumber daya diabaikan untuk diproses, dan alasannya dirinci di dalam status_reasons properti.

  • EMBEDDING_STARTEDdanEMBEDDING_COMPLETED: Nilai status ini menunjukkan kapan penyematan vektor untuk sumber daya dimulai dan diselesaikan.

  • INDEXING_STARTEDdanINDEXING_COMPLETED: Nilai status ini menunjukkan kapan pengindeksan sumber daya dimulai dan diselesaikan.

  • DELETION_STARTEDdanDELETION_COMPLETED: Nilai status ini menunjukkan kapan penghapusan sumber daya dimulai dan diselesaikan.

  • METADATA_UPDATE_STARTEDdanMETADATA_UPDATE_COMPLETED: Nilai status ini menunjukkan kapan pembaruan metadata untuk sumber daya dimulai dan diselesaikan.

  • EMBEDDING_FAILED,INDEXING_FAILED,DELETION_FAILED, danMETADATA_UPDATE_FAILED: Nilai status ini menunjukkan bahwa pemrosesan sumber daya gagal, dan alasannya dirinci di dalam status_reasons properti.

  • INDEXEDDELETED,PARTIALLY_INDEXED,METADATA_PARTIALLY_INDEXED,,FAILED: Setelah pemrosesan dokumen diselesaikan, log diterbitkan dengan status akhir dokumen, dan ringkasan pemrosesan di dalam chunk_statistics properti.

Contoh kueri umum untuk men-debug log basis pengetahuan

Anda dapat berinteraksi dengan log menggunakan kueri. Misalnya, Anda dapat menanyakan semua dokumen dengan status acara RESOURCE_IGNORED selama menelan dokumen atau data.

Berikut ini adalah beberapa kueri umum yang dapat digunakan untuk men-debug log yang dihasilkan menggunakan Wawasan CloudWatch Log:

  • Kueri untuk semua log yang dihasilkan untuk dokumen S3 tertentu.

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

  • Kueri untuk semua dokumen diabaikan selama pekerjaan konsumsi data.

    filter event.status = "RESOURCE_IGNORED"

  • Kueri untuk semua pengecualian yang terjadi saat vektor menyematkan dokumen.

    filter event.status = "EMBEDDING_FAILED"

  • Kueri untuk semua pengecualian yang terjadi saat mengindeks dokumen ke dalam database vektor.

    filter event.status = "INDEXING_FAILED"

  • Kueri untuk semua pengecualian yang terjadi saat menghapus dokumen dari database vektor.

    filter event.status = "DELETION_FAILED"

  • Kueri untuk semua pengecualian yang terjadi saat memperbarui metadata dokumen Anda dalam database vektor.

    filter event.status = "DELETION_FAILED"

  • Kueri untuk semua pengecualian yang terjadi selama pelaksanaan pekerjaan konsumsi data.

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