awslabs / awslabs/agentcore-samples
01-tutorials - [Content Improvement] - Add Datadog LLM Observability tutorial for AgentCore Runtime with Strands Agents.
- Dominant language
- Python
- Stars
- 3.4k
- Forks
- 1.3k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 30
Description
**Which component is impacted by this improvement?**
- [ ] 01-AgentCore-runtime
- [ ] 02-AgentCore-gateway
- [ ] 03-AgentCore-identity
- [ ] 04-AgentCore-memory
- [ ] 05-AgentCore-tools
- [x] 06-AgentCore-observability
- [ ] 07-AgentCore-E2E
**Improvement Description**
A clear and concise description of the improvement.
```
Add a Datadog LLM Observability integration tutorial for AgentCore Runtime with Strands Agents. This builds on the existing Datadog APM integration in PR #737 by adding a dedicated tutorial that routes traces to Datadog LLM Observability using dd-otlp-source=llmobs, which provides GenAI-specific trace views including prompt/response content, token usage tracking, and model performance analysis.
The tutorial includes:
- Step-by-step Jupyter notebook for deploying agents with Datadog LLM Observability telemetry
- Strands agent implementation with direct OpenTelemetry SDK TracerProvider configuration
- DISABLE_ADOT_OBSERVABILITY=true to replace AgentCore's built-in ADOT pipeline with a custom Datadog OTLP exporter
- OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental for OpenTelemetry v1.37+ GenAI semantic conventions
This enables users to leverage Datadog's LLM Observability platform for their AgentCore-hosted agents, providing purpose-built views for GenAI applications as an alternative to both the default AgentCore observability and standard APM tracing.
**Note on dependency:** This tutorial lives under Datadog/llm-observability/ alongside the Datadog APM tutorial from PR #737. My branch (feature/datadog-llm-obs-tutorial) is based on that PR's branch, once that's in, I can open a PR to add the LLM Observability tutorial on top of it.
I've also included a fix in my branch that addresses the review comment on PR #737 about moving OTEL environment variables from code-level to deployment-level configuration. The OTEL endpoint, headers, protocol, and semantic convention settings are now passed as env_vars in launch() rather than hardcoded in the agent code.
```
Contributor guide
Assessment
This issue has not been assessed yet.