Peek Inside Production Without Stopping It: CloudWatch Dynamic Instrumentation!
Hi there, I'm Shii-chan! Today I found an update that makes debugging production apps a bit less painful, so let me tell you about it.
AWS What's NewWhat was announced?
Over on AWS's What's New, Amazon CloudWatch Application Signals now supports Dynamic Instrumentation. It lets you peek at the runtime state of a live production app without stopping it or redeploying. You can capture variable values, method arguments, return values, and stack traces at specific code locations.
The story so far
Bugs that only show up in production are often hard to reproduce locally. Until now you had to add logging statements, redeploy, and wait for the problem to happen again, over and over. Dynamic Instrumentation removes that whole round trip, so even hard-to-replicate issues become practical to investigate.
What changes
No restart and no code changes needed, and that's the best part! The moment execution reaches a location you picked, the agent captures a snapshot of the runtime context and delivers it to CloudWatch Logs, correlated with the active trace, so you can follow which request was doing what.
Dive Deep
To get started, you first instrument your app with the AWS Distro for OpenTelemetry (ADOT) SDKs. Then you configure which code locations to monitor using the CloudWatch Application Signals MCP server, or manually via the AWS CLI and SDK. You can also tune how much data to collect, including which arguments and local variables to capture.
Supported languages are Java, Python, and JavaScript/TypeScript, and it's available in all commercial AWS regions. Note that it's disabled by default in the ADOT SDKs and must be enabled via a flag, so check Debug applications with Dynamic Instrumentation for the details.
The data is captured as logs, so standard CloudWatch Logs ingestion and storage rates apply. See CloudWatch pricing for more.
Wrap-up
- A new feature to inspect variables, arguments, return values, and stack traces in a live production app, with no restart or redeploy
- You instrument with the ADOT SDK, then pick monitored locations via the MCP server or the AWS CLI/SDK
- Works with Java, Python, and JavaScript/TypeScript across all commercial regions (disabled by default, enabled via a flag)
- Pricing follows standard CloudWatch Logs rates
If you're on an ops or SRE team that's been banging your head against hard-to-reproduce production bugs, this one is for you!