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 がない場合:
ddtrace パッケージをインストールします:
- 次のコマンドで 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 をインストールしている場合:
- 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
- まだであれば、
ddtrace パッケージをインストールします:
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_HOST と DD_TRACE_AGENT_PORT を適切に設定します。
サーバーレス環境 (AWS Lambda) で LLM Observability を実行する場合:
- AWS Lambda のセットアップの一環として、Datadog-Python と Datadog-Extension の Lambda レイヤーをインストールします。
- 次の環境変数を設定して 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 インテグレーションの状態は、次のコマンドでも確認できます:
セットアップ確認のため、次のメッセージが表示されることを確認します:
デバッグ
セットアップ中に問題が発生した場合は、--debug フラグを付けて debug logging を有効にします:
これにより、Amazon Bedrock のトレースに関する問題を含め、データ送信や instrumentation に関するエラーを確認できます。
Node.js 向けインストール
Datadog Agent がない場合:
dd-trace パッケージをインストールします:
次のコマンドで 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 をインストールしている場合:
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
Datadog APM Node.js ライブラリをインストールします。
-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_HOST と DD_TRACE_AGENT_PORT を適切に設定します。
サーバーレス環境 (AWS Lambda) で LLM Observability を実行する場合:
次の環境変数を設定して 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 の実行が終了する前に、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 インテグレーション を設定してください。
メトリクス収集
- AWS integration page の
Metric Collection タブで、Bedrock が有効になっていることを確認します。 - 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