4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Bedrock AgentCore Observability】AIエージェントのログをCloudWatchに出力しよう!

Posted at

どうもこんにちは。
今回の記事では、Bedrock AgentCore Observabilityを使用してAIエージェントのログを出力してみました。

私のAIエージェント開発環境

私は珍しいタイプで、Bedrock AgentCore スターターツールキットを使用せずにAIエージェント構築をしているので、最初にどんな構成でAIエージェントを構築しているか、説明しておきます。

AIエージェントフレームワーク: Strands Agents
言語: Python3.13
エージェントサーバ: Docker × FastAPI × unicorn
デプロイ先: Amazon Bedrock AgentCore Runtime

おそらく多くの方が、エージェントサーバでBedrockAgentCoreAppを使用しているんじゃないかなと思っています。

そのため、Dockerfileは以下のようになっています。

# Use uv's ARM64 Python base image
FROM --platform=linux/arm64 ghcr.io/astral-sh/uv:python3.13-bookworm-slim

WORKDIR /app

# Copy uv files
COPY pyproject.toml uv.lock ./

# Install dependencies (including strands-agents)
RUN uv sync --frozen --no-cache

# Copy agent file
COPY agent.py ./

# Expose port
EXPOSE 8080

# Run application with OpenTelemetry instrumentation
CMD ["uv", "run", "uvicorn", "agent:app", "--host", "0.0.0.0", "--port", "8080"]

デプロイにもスターターツールキットは使用せず、boto3でデプロイをしています。

client = boto3.client('bedrock-agentcore-control', region_name=region_name)

今回は、BedrockAgentCoreAppを使用せずにAIエージェントをデプロイしている場合に、Bedrock AgentCore Observabilityを使用する方法を紹介します。(AIエージェント構築の説明は省略します。)

AIエージェントの構築は以下の「bedrock-agentcore-starter-toolkit なしバージョン」で構築を行なっています。

手順

0. CloudWatchでの設定

予め、CloudWatchで「トランザクション検索」を有効にしておく必要があります。

1. Dockerfileに環境変数を追加する

Dockerfileに必要な環境変数を記述します。

# OpenTelemetry / CloudWatch Observability Configuration
ENV AGENT_OBSERVABILITY_ENABLED="true"
ENV OTEL_PYTHON_DISTRO="aws_distro"
ENV OTEL_PYTHON_CONFIGURATOR="aws_configurator"
ENV OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"
# `sample_agent`の部分をエージェント名に置き換える
ENV OTEL_EXPORTER_OTLP_LOGS_HEADERS="x-aws-log-group=aws/spans,x-aws-log-stream=default,x-aws-metric-namespace=Bedrock-AgentCore/sample_agent::DEFAULT"
ENV OTEL_RESOURCE_ATTRIBUTES="service.name=sample_agent"

2. DockerfileのCMD行を編集する

最終行のCMD行を以下のように編集します。

CMD ["uv", "run", "opentelemetry-instrument", "uvicorn", "agent:app", "--host", "0.0.0.0", "--port", "8080"]

上記が完了したら、デプロイを実行するだけです。

ログストリームを確認

まず、AIエージェントをデプロイしたRuntimeの詳細画面へ遷移します。遷移したら、バージョンが最新のものになっていることを確認します。

スクリーンショット 2025-12-31 21.12.44.png

次に、エンドポイントにDEFAULTとなっていることを確認し、「Logs」をクリックします。クリックすると、CloudWatchのロググループ画面へ遷移します。

遷移すると、以下のようなログストリームのレコードが表示されています。

スクリーンショット 2025-12-31 21.15.36.png

オブサーバビリティダッシュボードを確認

Runtimeの詳細画面へ遷移し、エンドポイント行の「Dashboard」をクリックします。クリックすると、CloudWatchのGenAI ObservabilityのBedrock AgentCore ダッシュボードへ遷移します。

遷移したら、「セッション」タブをクリックすると、デプロイしたエージェントに存在しているセッションの一覧が表示されます。

image.png

トレース」タブをクリックすると、デプロイしたエージェントに対して行われた処理の詳細を確認することができます。

image.png

以上

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?