How it works
An AI model writes the widget in the format CloudWatch dashboards already use, so CloudPeek queries and draws it like any dashboard widget, and you could paste it into a dashboard.
- The model looks up your metrics. It lists the metrics in the account (CloudWatch
ListMetrics) to use the real namespace, metric, dimension and resource names. - It writes the widget, and CloudPeek checks it. CloudPeek loads the widget's data from the account. If the query fails or finds nothing, the model is told why and tries again, up to 8 requests to the model in all.
- You check it. The preview shows it at every size, with any note from the model about it. Rename it if you like, then add it.
Once added, an AI widget refreshes like any other, without the model.
Write a widget
- On the Widgets tab, tap Create Widget, choose the account (with only one, it's chosen already), then AI Generated.
- Under Describe the widget, say what you want to see, in up to 500 characters. Or tap one of the examples under Try.
- Tap Generate. CloudPeek says what it's doing, such as Looking at your AWS/Lambda metrics… or Checking “…” loads…. Stop cancels it.
- Check the preview, change the Title if you like, and tap Add Widget.
To change an AI widget later, choose Edit Description from its More menu (⋯) or its own screen. Create Widget opens at its description; tap Generate again, and Update Widget replaces it, keeping its place, so Home Screen widgets showing it carry on. Rename changes only its title.
With the Anthropic API, the first Generate asks Share with Anthropic? first: see What the model sees. Amazon Bedrock doesn't ask, as it runs in your own AWS account.
Describing what you want
- Name the service and the metric: “Errors for each Lambda function in the last day” works better than “are my functions OK?”.
- Say how to show it if it matters: “Average EC2 CPU as a gauge”, “… as a table”, “… as a number”.
- Say the time range if it isn't the last 3 hours: “DynamoDB read and write throttles this week”.
- Name a resource to narrow it down: “p99 latency of the checkout API”.
The model writes metric widgets: line, stacked area, bar, pie, number, gauge and table, with metric math and SEARCH where they help. It doesn't write alarm lists or text widgets: use the alarm presets or a dashboard for alarms.
Choose where the model runs
In CloudPeek's Settings, under AI Widgets, choose the Service:
| Service | Model | Billed to | Needs |
|---|---|---|---|
| Amazon Bedrock (the default) | Kimi K2.5, by Moonshot AI | The AWS account the widget is for. Requests are signed with that account's sign-in on your device. | bedrock:InvokeModel, which is in CloudPeek's policy. Nothing to enable or sign up for in Bedrock. |
| Anthropic API | Choose under Model: Claude Sonnet 5.5 (the default), Claude Opus 5.5 or Claude Haiku 5.5 | Your Anthropic account | An Anthropic API key: paste it under API key and tap Save API Key. No extra AWS permission. |
- Claude Sonnet 5.5 is reliable with CloudWatch's metric math and
SEARCHsyntax, and quick enough to wait for on a phone. Claude Opus 5.5 is the most capable, at about twice the price; Claude Haiku 5.5 is the fastest and cheapest. - Your Anthropic API key stays in this device's Keychain and is only sent to Anthropic. Remove API Key deletes it.
- The sample account has no AWS credentials, so it can only write AI widgets with the Anthropic API.
Regions and permissions
On Amazon Bedrock, CloudPeek calls Kimi K2.5 in the account's default region if Bedrock offers it there, and otherwise in a fixed region near it:
| Account's default region | Where the model runs |
|---|---|
us-east-1, us-east-2, us-west-2, eu-west-2, eu-north-1, ap-northeast-1, ap-south-1, ap-southeast-2, sa-east-1 | The same region |
Any other Europe (eu-), Middle East (me-, il-) or Africa (af-) region | eu-north-1 (Stockholm) |
Other ap-northeast- and ap-east- regions | ap-northeast-1 (Tokyo) |
Other ap-south- regions | ap-south-1 (Mumbai) |
Other Asia Pacific (ap-) regions | ap-southeast-2 (Sydney) |
Other us-west- regions | us-west-2 (Oregon) |
Other South America (sa-) regions | sa-east-1 (São Paulo) |
Any other region, such as ca-central-1 | us-east-1 (N. Virginia) |
AWS China (cn-), AWS GovCloud (US) (us-gov-) and isolated regions | Not available: use the Anthropic API |
Moonshot AI's models aren't sold through AWS Marketplace, so there's no model access to request, use case form or subscription: the IAM permission is all an account needs. A service control policy in AWS Organizations can still deny it.
Allow only CloudPeek's model
CloudPeek's policy allows any model in Bedrock. To allow only the one CloudPeek uses, take bedrock:InvokeModel out of the CloudPeek statement and add this statement after it:
{
"Sid": "CloudPeekBedrock",
"Effect": "Allow",
"Action": "bedrock:InvokeModel",
"Resource": "arn:aws:bedrock:*::foundation-model/moonshotai.kimi-k2.5"
}
Set up before AI widgets existed?
Add cloudwatch:ListMetrics and bedrock:InvokeModel to the policy or permission set, or deploy the updated template from Get started. Without ListMetrics, the model writes from standard AWS metric names, which works less often for your own resources.
What it costs
- A widget usually takes two or three requests to the model: about a cent with Amazon Bedrock, or a few cents with Claude Sonnet 5.5. You pay once, when it's written.
- After that it costs the same to refresh as any other widget: see What it costs.
What the model sees
Only when you tap Generate, CloudPeek sends the model:
- your description;
- the account's default region;
- the names and dimensions of the metrics the model looks up in the account, which can include resource names such as function or queue names. It usually looks in the default region, but can look in any region of the account;
- for each widget it writes, whether it found data (and, when it found none, the date and time its time range started), or the error CloudWatch returned.
It never sees your AWS credentials, your metrics' values or your dashboards.
- Amazon Bedrock runs in your own AWS account, in the region in the table above, under your agreement with AWS.
- The Anthropic API receives it from your device with your API key, under Anthropic's privacy policy and your agreement with Anthropic. Before the first time, CloudPeek asks Share with Anthropic?, and only sends anything once you tap Allow.
See also Permissions and security and the privacy policy.
If it doesn't work
Messages about Bedrock permissions, regions, API keys, or a model that couldn't make a widget that loads, are explained in Troubleshooting › AI widgets.