

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マネージドナレッジベースのオブザーバビリティ
<a name="kb-managed-observability"></a>

マネージドナレッジベースの場合、Amazon Bedrock は運用メトリクスと取り込みログを AWS アカウントに発行し、ナレッジベースのヘルスと使用状況をモニタリングできるようにします。ランタイムメトリクスを使用すると、ナレッジベース API オペレーションのリクエストボリューム、エラー、スロットリングを追跡でき、取り込みログを使用すると、データ取り込みジョブ中の個々のドキュメントのステータスを追跡できます。以下のセクションでは、使用可能なオブザーバビリティデータとそのアクセス方法について説明します。

## マネージドナレッジベースのランタイムメトリクス
<a name="kb-managed-observability-runtime-metrics"></a>

Amazon Bedrock は、ナレッジベース API オペレーションのランタイムメトリクスを `AWS/Bedrock/KnowledgeBases`名前空間の Amazon CloudWatch に発行します。これらのメトリクスを使用して、 などのオペレーションの呼び出しボリューム、エラー率、スロットリングをモニタリングします`Retrieve`。メトリクスは追加料金なしでアカウントに発行され、CloudWatch コンソールに表示されます。

次の表は、Amazon Bedrock がマネージドナレッジベース用に公開するランタイムメトリクスを示しています。


| メトリクス名 | Unit | 説明 | 
| --- | --- | --- | 
| 呼び出し | カウント | ナレッジベースオペレーションへのリクエストの数。このメトリクスは、エラーが発生するリクエストを含め、すべてのリクエストに対して発行されます。 | 
| ClientErrors | カウント | クライアント側のエラー (スロットリング以外の HTTP `4xx`レスポンス) が発生したリクエストの数。 | 
| ServerErrors | カウント | サーバー側のエラー (HTTP `5xx`レスポンス) が発生したリクエストの数。 | 
| Throttles | カウント | スロットリングされたリクエストの数 (HTTP `429`レスポンス）。スロットリングされたリクエストは、 `ClientErrors`または としてカウントされません`ServerErrors`。 | 

`ClientErrors`、、および `Throttles`メトリクスは`ServerErrors`、対応する条件が発生した場合にのみ発行されます。`Invocations` メトリクスは、リクエストごとに発行されます。

### AgenticRetrieveStream オペレーションの追加メトリクス
<a name="kb-managed-observability-runtime-metrics-agentic"></a>

前の表のメトリクスに加えて、 `AgenticRetrieveStream`オペレーションは次のメトリクスを発行します。


| メトリクス名 | Unit | 説明 | 
| --- | --- | --- | 
| TotalIterationCount | カウント | リクエスト中に実行されたエージェント取り出しの反復の合計数。このメトリクスは、リクエストが正常に完了したときに、 `AgenticRetrieveStream`オペレーションに対してのみ発行されます。 | 

このメトリクスは、値 の `Operation`ディメンションを使用します`AgenticRetrieveStream`。

### マネージドナレッジベースメトリクスのディメンション
<a name="kb-managed-observability-runtime-metrics-dimensions"></a>

Amazon Bedrock は、マネージドナレッジベースのランタイムメトリクスに次のディメンションを使用します。


| ディメンション | 説明 | 
| --- | --- | 
| 運用 | メトリクスが公開されるナレッジベース API オペレーション。指定できる値は `Retrieve` および `AgenticRetrieveStream` です。 | 
| KnowledgeBaseId | リクエストがターゲットとするナレッジベース。形式は です`knowledge-base/{{knowledge-base-id}}`。このディメンションは、単一のナレッジベースをターゲットとする `Retrieve`オペレーションに含まれます。単一のナレッジベースをターゲットとしないオペレーションは、 `Operation`ディメンションでのみ公開されます。 | 

### メトリクスを発行するためのアクセス許可
<a name="kb-managed-observability-runtime-metrics-permissions"></a>

Amazon Bedrock は、リクエストに関連付けられた認証情報を使用して、これらのメトリクスをアカウントに発行します。
+ `Retrieve` オペレーションでは、Amazon Bedrock はナレッジベースサービスロールを使用します。
+ その他のオペレーションでは、Amazon Bedrock は転送アクセスセッションを通じて呼び出し元の ID (オペレーションを呼び出す IAM ユーザーまたはロール) の認証情報を使用します。

メトリクスを発行するには、その ID が`AWS/Bedrock/KnowledgeBases`名前空間`cloudwatch:PutMetricData`の を呼び出すことを許可する必要があります。このアクセス許可を付与するポリシーをナレッジベースサービスロールとナレッジベースオペレーションを呼び出す任意の ID にアタッチします。次の の例では、必要なアクセス許可を付与します。

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "cloudwatch:PutMetricData",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "cloudwatch:namespace": "AWS/Bedrock/KnowledgeBases"
                }
            }
        }
    ]
}
```

メトリクスの発行はベストエフォートです。ID に必要なアクセス許可がない場合、対応するメトリクスは発行されませんが、ナレッジベースリクエスト自体は影響を受けません。

### ランタイムメトリクスを表示する
<a name="kb-managed-observability-runtime-metrics-view"></a>

ナレッジベースのメトリクスは、 AWS マネジメントコンソール、、 AWS CLIまたは CloudWatch API を使用して取得できます。CloudWatch API は、 AWS Software Development Kit (SDKsまたは CloudWatch API ツールのいずれかを使用して使用できます。

CloudWatch コンソールでマネージドナレッジベースのメトリクスを表示するには、ナビゲーションペインのメトリクスセクションに移動し、すべてのメトリクスオプションを選択し、`AWS/Bedrock/KnowledgeBases`名前空間を検索します。

CloudWatch でナレッジベースをモニタリングするには、適切な CloudWatch アクセス許可が必要です。詳細については、*「Amazon CloudWatch ユーザーガイド」*の[「Authentication and Access Control for Amazon CloudWatch」](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/auth-and-access-control-cw.html)(Amazon CloudWatch に対する認証とアクセスコントロール) を参照してください。

## マネージドナレッジベースのストレージメトリクス
<a name="kb-managed-observability-storage-metrics"></a>

マネージドナレッジベースの場合、Amazon Bedrock は `AWS/Bedrock/KnowledgeBases`名前空間の Amazon CloudWatch にストレージメトリクスを発行します。このメトリクスは、ナレッジベースに保存されているソースデータの合計 raw サイズをレポートし、データ取り込みジョブの完了後にアカウントに発行されるため、ナレッジベースに保存されているデータ量を経時的に追跡できます。

次の表は、Amazon Bedrock がマネージドナレッジベース用に公開するストレージメトリクスを示しています。


| メトリクス名 | Unit | 説明 | 
| --- | --- | --- | 
| RawDataSize  | Gigabytes | ナレッジベースに保存されているソースデータの合計 raw サイズをギガバイト単位で表します。このメトリクスは、データ取り込みジョブの完了後に発行されます。 | 

ストレージメトリクスは、 形式の `KnowledgeBaseId`ディメンションを使用します`knowledge-base/{{knowledge-base-id}}`。

## マネージドナレッジベースの取り込みオブザーバビリティ
<a name="kb-managed-observability-ingestion"></a>

Amazon Bedrock は、全体的なジョブステータスや処理される各ドキュメントのステータスなど、マネージドナレッジベースのデータ取り込みジョブの進行状況を追跡するログを出力します。これらのログを使用して、取り込まれたドキュメントの確認、取得結果でドキュメントが返されなかった理由の調査、および取り込み失敗のトラブルシューティングを行うことができます。

ログは、設定した送信先 (CloudWatch Logs、Amazon S3、または Amazon Data Firehose) に配信されます。以下のセクションでは、ログ配信を有効にする方法、取り込み中のドキュメントのライフサイクル、出力されるログタイプ、クエリの例について説明します。

### 取り込みログ配信を有効にする
<a name="kb-managed-observability-ingestion-enable"></a>

取り込みログを受信するには、 AWS マネジメントコンソール または CloudWatch API を使用してナレッジベースのログ配信を設定します。CloudWatch Logs、Amazon S3、または Amazon Data Firehose にログを配信できます。

#### コンソールを使用してログ配信を有効にする
<a name="kb-managed-observability-ingestion-enable-console"></a>

1. **ナレッジベースを開く**: Amazon Bedrock コンソールで、モニタリングするマネージドナレッジベースを開きます。

1. **ログ配信の追加**: ナレッジベースを編集してログ配信を追加し、次の詳細を設定します。
   + ログ記録先 (CloudWatch Logs、Amazon S3、または Amazon Data Firehose)。
   + (CloudWatch Logs) ロググループ名。
   + (Amazon S3) バケット名。
   + (Amazon Data Firehose) Firehose ストリーム。

1. **配信ステータスの確認**: コンソールでログ配信ステータスが*配信アクティブ*であることを確認します。

#### CloudWatch API を使用してログ配信を有効にする
<a name="kb-managed-observability-ingestion-enable-api"></a>

1. **ナレッジベースの ARN を取得する**: [GetKnowledgeBase](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_GetKnowledgeBase.html) API を呼び出して、ナレッジベースの Amazon リソースネーム (ARN) を取得します。ナレッジベースの ARN の形式は、{{arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge-base-id}} です。

1. を**呼び`PutDeliverySource`**出す: [PutDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html) API を使用して、ナレッジベースの配信ソースを作成します。ナレッジベース ARN を として渡し`resourceArn`、 を `APPLICATION_LOGS`として指定します`logType`。

   ```
   {
       "logType": "APPLICATION_LOGS",
       "name": "my-knowledge-base-delivery-source",
       "resourceArn": "arn:aws:bedrock:your-region:your-account-id:knowledge-base/knowledge_base_id"
   }
   ```

1. を**呼び`PutDeliveryDestination`**出す: [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html) API を使用して、ログの保存先を設定します。CloudWatch Logs、Amazon S3、または Amazon Data Firehose の送信先の ARN を指定します。は、、`json`、`plain`、`w3c`、`raw`または `outputFormat`に設定できます`parquet`。

   ```
   {
      "deliveryDestinationConfiguration": {
         "destinationResourceArn": "arn:aws:s3:::bucket-name"
      },
      "name": "my-knowledge-base-delivery-destination",
      "outputFormat": "json"
   }
   ```

   別のアカウントにログを配信する場合は、 `PutDeliveryDestinationPolicy` API を使用して (IAM) ポリシーを送信先アカウントにアタッチ AWS Identity and Access Management します。

1. を**呼び`CreateDelivery`**出す: [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html) API を使用して、配信ソースを配信先にリンクします。

   ```
   {
      "deliveryDestinationArn": "string",
      "deliverySourceName": "my-knowledge-base-delivery-source"
   }
   ```

#### サポートされているログタイプとアクセス許可
<a name="kb-managed-observability-ingestion-enable-logtypes"></a>

マネージドナレッジベースは、次のログタイプをサポートしています。
+ `APPLICATION_LOGS`: 取り込みジョブのステータスと、ジョブ中に処理される各ドキュメントのステータスを追跡するログ。
+ `TRACES`: ランタイムオペレーションの分散トレース (スパン）。トレースは `Retrieve`オペレーションに対してのみ出力され、 AWS X-Ray に配信されます。詳細については、「[マネージドナレッジベースのトレースオブザーバビリティ](#kb-managed-observability-traces)」を参照してください。

ログ配信を有効にするには、ユーザーまたはロールに、選択した宛先への書き込みに必要な`bedrock:AllowVendedLogDeliveryForResource`アクセス許可に加えて、ナレッジベースリソースのアクセス許可が必要です。各送信先の IAM ポリシーの例については、*Amazon CloudWatch Logs ユーザーガイド」の*[「さまざまな配信先の Vended Logs アクセス許可](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-vended-logs-permissions-V2)」を参照してください。

### 取り込み中のドキュメントのライフサイクル
<a name="kb-managed-observability-ingestion-lifecycle"></a>

データ取り込みジョブ中、各ドキュメントは 3 つのステージを移動し、ドキュメントのログには各ステージのステータスが記録されます。
+ **クロール** (`crawl_status`): Amazon Bedrock はデータソースからドキュメントを取得し、追加、更新、または削除する必要があるかどうかを判断します。`crawl_action` フィールドは、`ADD`、`DELETE`、または に設定されます`UNMODIFIED`。残りのステージでスキップ`UNMODIFIED`されるドキュメント。
+ **Sync** (`sync_status`): ドキュメントはナレッジベースで処理するために送信されます。
+ **インデックス** (`index_status`): ドキュメントはチャンク化され、埋め込まれ、ナレッジベースに保持されます。`chunk_statistics` フィールドは、作成または削除されたチャンクを要約します。

各ステージのステータスは `SUCCESS`または です`FAILED`。`connector_document_status` フィールドはドキュメントの統合ステータスを報告し、`error_message`フィールドはドキュメントが処理に失敗した場合にのみ入力されます。

### ログタイプと例
<a name="kb-managed-observability-ingestion-example-log"></a>

Amazon Bedrock は、マネージドナレッジベース取り込みジョブの 2 種類のログエントリを `event_type`フィールドで識別して出力します。
+ `StartIngestionJob.StatusChanged` – クロールの開始時や完了時など、取り込みジョブ全体の進行状況を記録するジョブレベルのログ。`message` フィールドには、 `Crawling started`や など、人間が読めるステータスが含まれます`Crawling completed`。
+ `StartIngestionJob.ResourceStatusChanged` – 個々のドキュメントの処理ステータスを記録するドキュメントレベルのログ。

以下は、ジョブレベルのステータスログの例です。

```
{
    "event_timestamp": 1718677300000,
    "event": {
        "ingestion_job_id": "<IngestionJobId>",
        "data_source_id": "<DataSourceId>",
        "knowledge_base_arn": "arn:aws:bedrock:<region>:<accountId>:knowledge-base/<KnowledgeBaseId>",
        "message": "Crawling started"
    },
    "event_version": "1.0",
    "event_type": "StartIngestionJob.StatusChanged",
    "level": "INFO"
}
```

以下は、1 つのドキュメントの処理ステータスを記録するドキュメントレベルのログの例です。

```
{
    "event_timestamp": 1718677342332,
    "event": {
        "ingestion_job_id": "<IngestionJobId>",
        "data_source_id": "<DataSourceId>",
        "knowledge_base_arn": "arn:aws:bedrock:<region>:<accountId>:knowledge-base/<KnowledgeBaseId>",
        "document_id": "<DocumentId>",
        "source_uri": "<SourceUri>",
        "content_type": "<ContentType>",
        "crawl_action": "ADD" | "DELETE" | "UNMODIFIED",
        "index_status": { "Status": "SUCCESS" | "FAILED", "UpdatedTime": "<epochMillis>" },
        "crawl_status": { "Status": "SUCCESS" | "FAILED", "UpdatedTime": "<epochMillis>" },
        "sync_status": { "Status": "SUCCESS" | "FAILED", "UpdatedTime": "<epochMillis>" },
        "chunk_statistics": {
            "created": int,
            "deleted": int,
            "failed_to_create": int,
            "failed_to_delete": int
        },
        "error_message": "<ErrorMessage>"
    },
    "event_version": "1.0",
    "event_type": "StartIngestionJob.ResourceStatusChanged",
    "level": "INFO" | "ERROR"
}
```

`error_message` フィールドは、ドキュメントが処理に失敗した場合にのみ存在します。`chunk_statistics` フィールドは、ドキュメントに対して作成または削除されたチャンクを要約します。

一部のドキュメントレベルのログでは、上記のステータスフィールドではなくコネクタステータスメッセージがレポートされます。これらのログには、人間が読める説明 (ドキュメントを取得または削除できなかったことを示すメッセージなど) を含む`message`フィールドと、`INFO`、`WARN`、または `level`の が含まれます`ERROR`。

### クエリの例
<a name="kb-managed-observability-ingestion-queries"></a>

CloudWatch Logs にログを配信する場合、CloudWatch Logs Insights を使用してナレッジベースの取り込みログをクエリできます。以下は、一般的なクエリです。
+ 取り込み中に処理に失敗したすべてのドキュメントを、エラーメッセージとともに一覧表示します。

  `filter event.connector_document_status.Status = "FAILED" | fields event.document_id, event.source_uri, event.error_message, @timestamp | sort @timestamp desc`
+ 特定のドキュメントのすべてのログエントリをソースの場所別に検索します。

  `filter event.source_uri = "s3://<bucketName>/<objectKey>" | fields event.document_id, event.connector_document_status.Status, @timestamp | sort @timestamp desc`
+ 特定の取り込みジョブによって処理されたすべてのドキュメントを一覧表示します。

  `filter event.ingestion_job_id = "<IngestionJobId>" | fields event.document_id, event.connector_document_status.Status, @timestamp | sort @timestamp desc`
+ クロールの開始時と完了時など、取り込みジョブの全体的な進行状況を表示します。

  `filter event_type = "StartIngestionJob.StatusChanged" | fields event.message, @timestamp | sort @timestamp asc`

## マネージドナレッジベースのトレースオブザーバビリティ
<a name="kb-managed-observability-traces"></a>

Amazon Bedrock はナレッジベースのランタイムオペレーション用に分散トレース (スパン) を出力できるため、リクエストのレイテンシーとリクエストの内部ステップを分析できます。トレースは `Retrieve`オペレーションに対してのみ出力され、[AWS X-Ray](https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html) に配信されます。トレース配信は、ログタイプと X-Ray 配信先を使用して、取り込みログと同じ販売`TRACES`済みログ配信パイプラインを使用します。

### CloudWatch API を使用してトレース配信を有効にする
<a name="kb-managed-observability-traces-enable"></a>

 AWS X-Ray にトレースを配信するには、以下の手順に従って CloudWatch API を使用して配信を作成します。

1. を**呼び`PutDeliverySource`**出す: [PutDeliverySource](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliverySource.html) API を使用して、ナレッジベースの配信ソースを作成します。ナレッジベース ARN を として渡し`resourceArn`、 を `TRACES`として指定します`logType`。

1. を**呼び`PutDeliveryDestination`**出す: `deliveryDestinationType`の で [PutDeliveryDestination](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutDeliveryDestination.html) API を使用します`XRAY`。X-Ray はマネージド送信先であるため、 を指定しません`destinationResourceArn`。レスポンスで返される ARN を書き留めます。

1. を**呼び`CreateDelivery`**出す: [CreateDelivery](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateDelivery.html) API を使用して、配信ソース名を X-Ray 配信先 ARN にリンクします。

**注記**  
これらの API コールはべき等です。リソースが既に存在する場合は、 `ConflictException`または を安全に無視できます`ResourceAlreadyExistsException`。

### トレース配信のアクセス許可
<a name="kb-managed-observability-traces-permissions"></a>

トレース配信を有効にするには、ユーザーまたはロールに、X-Ray への AWS 配信に必要な`bedrock:AllowVendedLogDeliveryForResource`アクセス許可に加えて、ナレッジベースリソースのアクセス許可が必要です。

### トレースの表示
<a name="kb-managed-observability-traces-view"></a>

トレース配信を有効にしたら、 `Retrieve`オペレーションを呼び出してトレースを生成し、 AWS X-Ray コンソールで表示します。

## マネージドナレッジベースの AgentCore オブザーバビリティ
<a name="kb-managed-observability-agentcore"></a>

Amazon Bedrock は、マネージドナレッジベースのオブザーバビリティデータを Amazon Bedrock AgentCore オブザーバビリティエクスペリエンスと統合し、ナレッジベースのメトリクスとトレースを他の AgentCore テレメトリとともに統合表示できるようにします。

この統合に追加の設定は必要ありません。前のセクションで説明したようにランタイムメトリクスとトレース配信を有効にすると、AgentCore オブザーバビリティページに、対応するナレッジベースデータが自動的に入力されます。実行する追加のアクションはありません。

**注記**  
AgentCore オブザーバビリティ統合は、マネージドナレッジベースでのみ使用できます。

## カスタマーサポートとトラブルシューティング
<a name="kb-managed-observability-support"></a>

Amazon Bedrock マネージドナレッジベースは、顧客が報告した問題に応じてデバッグサポートを提供するためにのみ、顧客クエリと関連する取得データを一時的に保存します。サポート契約中にお客様が明示的に同意しない限り、AWS はこのデータにアクセスしません。Amazon Bedrock は、基盤となるモデルのトレーニングや改善にこのデータを使用しません。