Observability, Usage & Analytics

The CloudWatch Generative AI Observability Dashboard for Bedrock

AWS ships a pre-built dashboard for model traffic on Bedrock — no widgets to assemble. Knowing what it shows out of the box, and which drill-downs need extra plumbing, saves you from rebuilding it by hand or overtrusting it.

Claude 3P 101 · Updated July 2026 · Unofficial guide

CloudWatch's generative AI observability feature bundles pre-built views for two things: Model Invocations (inference traffic against Bedrock models — the view relevant to Claude API calls) and Bedrock AgentCore agents (latency, usage, errors, and end-to-end prompt tracing for agentic workloads). For an enterprise team that wants a "how is Claude doing today" screen without designing dashboards, this is the fastest path on AWS.

What the Model Invocations dashboard shows

AWS documents that the Model Invocations dashboard works with any models used for inference in Amazon Bedrock. Out of the box it displays:

That covers the operational basics: volume, cost drivers (tokens), capacity pressure (throttles), and health (errors). It is built on the same metrics you could chart yourself from the AWS/Bedrock namespace — the dashboard's value is assembly, not new data. Which also means it inherits that namespace's blind spot: traffic on the current bedrock-mantle endpoint publishes to a separate AWS/BedrockMantle namespace, so check coverage for your surface mix (see the namespace guide).

The prompt-content drill-down needs invocation logging first

The dashboard includes an invocation table with per-request drill-down into what was actually sent and received. This is the part teams expect to "just work" and it doesn't: viewing invocation input and output content requires that you first enable Bedrock model invocation logging with CloudWatch Logs as a destination. The dashboard reads the content from those log records and links per-request drill-downs into CloudWatch Logs Insights.

Two consequences follow:

Setup order that works: enable model invocation logging to CloudWatch Logs, apply a data-protection policy to the log group, then open the gen-AI dashboard. Doing it in that order means the first prompt ever displayed is already governed.

Extending with OpenTelemetry traces

The metrics-and-logs view answers "what happened per request." For agentic applications — multi-step chains where one user action fans out into several Claude calls and tool invocations — you want traces. CloudWatch gen-AI observability ingests structured traces from third-party frameworks (AWS documents Strands, LangChain, and LangGraph) instrumented with the AWS Distro for OpenTelemetry (ADOT) SDK, or via the AWS Lambda Layer for OpenTelemetry. Bedrock AgentCore goes further: its telemetry has built-in support for OTel and the GenAI semantic conventions — the emerging standard attribute names for model calls (provider, model, token usage) that make traces portable across observability vendors.

The practical pattern: keep the pre-built dashboard as your fleet-level view, and add ADOT instrumentation to the specific applications where per-conversation tracing matters. The two meet in CloudWatch, so an on-call engineer can go from "error spike on this model" to "this specific chain failed at step three" without switching tools.

Where to go next

For alarming rather than viewing, start from the Bedrock CloudWatch metrics reference and the log-delivery health metrics. For a cross-platform view of observability stacks, see the observability stack pattern.

Sources