To find out if this integration is available in your organization, see your Datadog Integrations page or ask your organization administrator.

To initiate an exception request to enable this integration for your organization, email support@ddog-gov.com.

概要

Amazon Bedrock を使うと、チャット ボットやデータ抽出ツールなど、LLM を活用したアプリケーションを監視し、トラブルシューティングし、評価できます。

LLM アプリケーションを構築している場合は、LLM Observability を使って問題の根本原因を調査し、運用パフォーマンスを監視し、LLM アプリケーションの品質、プライバシー、安全性を評価できます。

トレースをどのように調査できるかの例については、LLM Observability のトレーシング画面の動画 を参照してください。

Amazon Bedrock は、Amazon や主要な AI スタートアップの 基盤モデル (FM) を API 経由で利用できるようにするフル マネージド サービスです。さまざまな FM から、ユース ケースに最適なモデルを選べます。

このインテグレーションを有効にすると、Bedrock のすべてのメトリクスを Datadog で確認できます。

セットアップ

LLM Observability: Amazon Bedrock を使って LLM アプリケーションをエンド ツー エンドで可視化する

LLM Observability はさまざまな環境で有効化できます。利用シナリオに応じて、該当するセットアップ手順に従ってください:

Python 向けインストール

Datadog Agent がない場合:
  1. ddtrace パッケージをインストールします:
  pip install ddtrace
  1. 次のコマンドで Agentless mode を有効にしてアプリケーションを起動します:
  DD_SITE=<YOUR_DATADOG_SITE> DD_API_KEY=<YOUR_API_KEY> DD_LLMOBS_ENABLED=1 DD_LLMOBS_AGENTLESS_ENABLED=1 DD_LLMOBS_ML_APP=<YOUR_ML_APP_NAME> ddtrace-run python <YOUR_APP>.py
すでに Datadog Agent をインストールしている場合:
  1. Agent が起動しており、APM と StatsD が有効になっていることを確認します。たとえば、Docker では次のコマンドを使用します:
docker run -d \
  --cgroupns host \
  --pid host \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -v /proc/:/host/proc/:ro \
  -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
  -e DD_API_KEY=<DATADOG_API_KEY> \
  -p 127.0.0.1:8126:8126/tcp \
  -p 127.0.0.1:8125:8125/udp \
  -e DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true \
  -e DD_APM_ENABLED=true \
  gcr.io/datadoghq/agent:latest
  1. まだであれば、ddtrace パッケージをインストールします:
  pip install ddtrace
  1. ddtrace-run コマンドでアプリケーションを起動すると、トレーシングが自動的に有効になります:
   DD_SITE=<YOUR_DATADOG_SITE> DD_API_KEY=<YOUR_API_KEY> DD_LLMOBS_ENABLED=1 DD_LLMOBS_ML_APP=<YOUR_ML_APP_NAME> ddtrace-run python <YOUR_APP>.py

: Agent がカスタム ホストまたはポートで動作している場合は、DD_AGENT_HOSTDD_TRACE_AGENT_PORT を適切に設定します。

サーバーレス環境 (AWS Lambda) で LLM Observability を実行する場合:
  1. AWS Lambda のセットアップの一環として、Datadog-PythonDatadog-Extension の Lambda レイヤーをインストールします。
  2. 次の環境変数を設定して LLM Observability を有効にします:
   DD_SITE=<YOUR_DATADOG_SITE> DD_API_KEY=<YOUR_API_KEY> DD_LLMOBS_ENABLED=1 DD_LLMOBS_ML_APP=<YOUR_ML_APP_NAME>

: サーバーレス環境では、Lambda 関数の実行完了時に Datadog が span を自動的に flush します。

Amazon Bedrock の自動トレーシング

LLM Observability を設定すると、Amazon Bedrock インテグレーションは自動的に有効になります。これにより、Amazon Bedrock 呼び出しのレイテンシー、エラー、入力/出力メッセージ、トークン使用量が取得されます。

同期処理とストリーミング処理の両方で、次の Amazon Bedrock 操作がトレース対象になります:

  • InvokeModel()
  • InvokeModelWithResponseStream()

これらのメソッドでは追加設定は不要です。

検証

LLM Observability が span を正しく取得していることは、アプリケーション ログで span の生成成功を確認することで検証できます。ddtrace インテグレーションの状態は、次のコマンドでも確認できます:

ddtrace-run --info

セットアップ確認のため、次のメッセージが表示されることを確認します:

Agent error: None
デバッグ

セットアップ中に問題が発生した場合は、--debug フラグを付けて debug logging を有効にします:

ddtrace-run --debug

これにより、Amazon Bedrock のトレースに関する問題を含め、データ送信や instrumentation に関するエラーを確認できます。

Node.js 向けインストール

Datadog Agent がない場合:
  1. dd-trace パッケージをインストールします:

      npm install dd-trace
    
  2. 次のコマンドで agentless mode を有効にしてアプリケーションを起動します:

      DD_SITE=<YOUR_DATADOG_SITE> DD_API_KEY=<YOUR_API_KEY> DD_LLMOBS_ENABLED=1 DD_LLMOBS_AGENTLESS_ENABLED=1 DD_LLMOBS_ML_APP=<YOUR_ML_APP_NAME> node -r 'dd-trace/init' <your_app>.js
    
すでに Datadog Agent をインストールしている場合:
  1. Agent が起動しており、APM が有効になっていることを確認します。たとえば、Docker では次のコマンドを使用します:

    docker run -d \
      --cgroupns host \
      --pid host \
      -v /var/run/docker.sock:/var/run/docker.sock:ro \
      -v /proc/:/host/proc/:ro \
      -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
      -e DD_API_KEY=<DATADOG_API_KEY> \
      -p 127.0.0.1:8126:8126/tcp \
      -p 127.0.0.1:8125:8125/udp \
      -e DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true \
      -e DD_APM_ENABLED=true \
      gcr.io/datadoghq/agent:latest
    
  2. Datadog APM Node.js ライブラリをインストールします。

    npm install dd-trace
    
  3. -r dd-trace/init または NODE_OPTIONS='--require dd-trace/init' を使ってアプリケーションを起動すると、トレーシングが自動的に有効になります:

    DD_SITE=<YOUR_DATADOG_SITE> DD_API_KEY=<YOUR_API_KEY> DD_LLMOBS_ENABLED=1 DD_LLMOBS_ML_APP=<YOUR_ML_APP_NAME> node -r 'dd-trace/init' <your_app>.js
    

: Agent がカスタム ホストまたはポートで動作している場合は、DD_AGENT_HOSTDD_TRACE_AGENT_PORT を適切に設定します。

サーバーレス環境 (AWS Lambda) で LLM Observability を実行する場合:
  1. 次の環境変数を設定して LLM Observability を有効にします:

    DD_SITE=<YOUR_DATADOG_SITE> DD_API_KEY=<YOUR_API_KEY> DD_LLMOBS_ENABLED=1 DD_LLMOBS_ML_APP=<YOUR_ML_APP_NAME>
    
  2. Lambda の実行が終了する前に、llmobs.flush() を呼び出します:

    const llmobs = require('dd-trace').llmobs;
    // or, if dd-trace was not initialized via NODE_OPTIONS
    const llmobs = require('dd-trace').init({
      llmobs: {
        mlApp: <YOUR_ML_APP>,
      }
    }).llmobs; // with DD_API_KEY and DD_SITE being set at the environment level
    
    async function handler (event, context) {
      ...
      llmobs.flush()
      return ...
    }
    

APM: Python アプリケーションの使用状況メトリクスを取得する

まだ設定していない場合は、先に Amazon Web Services インテグレーション を設定してください。

メトリクス収集

  1. AWS integration pageMetric Collection タブで、Bedrock が有効になっていることを確認します。
  2. Datadog - Amazon Bedrock インテグレーション をインストールします。

収集データ

メトリクス

aws.bedrock.content_filtered_count
(count)
テキスト出力コンテンツがフィルタリングされた総回数
単位は time
aws.bedrock.input_token_count
(gauge)
モデルに対して実行されたプロンプトで使用された入力トークン数の平均
単位は token
aws.bedrock.input_token_count.minimum
(gauge)
モデルに対して実行されたプロンプトで使用された入力トークン数の最小値
単位は token
aws.bedrock.input_token_count.maximum
(gauge)
モデルに対して実行されたプロンプトで使用された入力トークン数の最大値
単位は token
aws.bedrock.input_token_count.sum
(count)
モデルに対して実行されたプロンプトで使用された入力トークン総数
単位は token
aws.bedrock.invocation_client_errors
(count)
呼び出し時に発生したクライアント エラー数
単位は error
aws.bedrock.invocation_latency
(gauge)
呼び出しレイテンシーの平均 (ミリ秒)
単位は millisecond
aws.bedrock.invocation_latency.minimum
(gauge)
1 分間における呼び出しレイテンシーの最小値
単位は millisecond
aws.bedrock.invocation_latency.maximum
(gauge)
1 分間における呼び出しレイテンシーの最大値
単位は millisecond
aws.bedrock.invocation_latency.p99
(gauge)
1 分間における呼び出しレイテンシーの 99 パーセンタイル値
単位は millisecond
aws.bedrock.invocation_latency.p95
(gauge)
1 分間における呼び出しレイテンシーの 95 パーセンタイル値
単位は millisecond
aws.bedrock.invocation_latency.p90
(gauge)
1 分間における呼び出しレイテンシーの 90 パーセンタイル値
単位は millisecond
aws.bedrock.invocation_server_errors
(count)
呼び出し時に発生したサーバー エラー数
単位は error
aws.bedrock.invocation_throttles
(count)
呼び出しのスロットリング発生回数
単位は throttle
aws.bedrock.invocations
(count)
モデル エンドポイントに送信された呼び出し回数
単位は invocation
aws.bedrock.output_image_count
(gauge)
1 分間において、モデル呼び出しで返された出力画像数の平均
単位は item
aws.bedrock.output_token_count
(gauge)
1 分間において、モデル呼び出しで返された出力トークン数の平均
単位は token
aws.bedrock.output_token_count.minimum
(gauge)
1 分間において、モデル呼び出しで返された出力トークン数の最小値
単位は token
aws.bedrock.output_token_count.maximum
(gauge)
1 分間において、モデル呼び出しで返された出力トークン数の最大値
単位は token
aws.bedrock.output_token_count.sum
(count)
すべてのモデル呼び出しで返された出力トークン総数
単位は token

イベント

Amazon Bedrock インテグレーションにはイベントは含まれません。

サービス チェック

Amazon Bedrock インテグレーションにはサービス チェックは含まれません。

トラブルシューティング

サポートが必要な場合は、Datadog サポート にお問い合わせください。

参考資料

役立つドキュメント、リンク、記事:

Further Reading

お役に立つドキュメント、リンクや記事: