Dashboard ​
The Dashboard resource lets you manage AWS CloudWatch Dashboards for visualizing metrics and logs in AWS.
Minimal Example ​
Create a basic CloudWatch Dashboard with essential properties:
ts
import AWS from "alchemy/aws/control";
const cloudWatchDashboard = await AWS.CloudWatch.Dashboard("basicDashboard", {
DashboardName: "MainMetricsDashboard",
DashboardBody: JSON.stringify({
widgets: [
{
type: "metric",
x: 0,
y: 0,
width: 6,
height: 6,
properties: {
metrics: [
["AWS/EC2", "CPUUtilization", "InstanceId", "i-1234567890abcdef0"],
["AWS/EC2", "DiskReadOps", "InstanceId", "i-1234567890abcdef0"]
],
view: "timeSeries",
stacked: false,
region: "us-east-1",
title: "EC2 Instance Metrics"
}
}
]
})
});
Advanced Configuration ​
Configure a dashboard with multiple widgets and a custom layout:
ts
const advancedDashboard = await AWS.CloudWatch.Dashboard("advancedDashboard", {
DashboardName: "AdvancedMetricsDashboard",
DashboardBody: JSON.stringify({
widgets: [
{
type: "metric",
x: 0,
y: 0,
width: 4,
height: 6,
properties: {
metrics: [["AWS/S3", "NumberOfObjects", "BucketName", "my-bucket"]],
view: "timeSeries",
stacked: false,
region: "us-west-2",
title: "S3 Object Count"
}
},
{
type: "text",
x: 4,
y: 0,
width: 8,
height: 6,
properties: {
markdown: "# Welcome to Your Dashboard\nThis dashboard displays key metrics."
}
},
{
type: "metric",
x: 0,
y: 6,
width: 12,
height: 6,
properties: {
metrics: [["AWS/Lambda", "Invocations", "FunctionName", "myLambdaFunction"]],
view: "timeSeries",
stacked: true,
region: "us-east-1",
title: "Lambda Function Invocations"
}
}
]
})
});
Updating an Existing Dashboard ​
Use the adopt
property to update an existing dashboard without failing if it already exists:
ts
const updatedDashboard = await AWS.CloudWatch.Dashboard("updatedDashboard", {
DashboardName: "MainMetricsDashboard",
DashboardBody: JSON.stringify({
widgets: [
{
type: "metric",
x: 0,
y: 0,
width: 6,
height: 6,
properties: {
metrics: [["AWS/EC2", "NetworkIn", "InstanceId", "i-1234567890abcdef0"]],
view: "timeSeries",
stacked: false,
region: "us-east-1",
title: "Network In"
}
}
]
}),
adopt: true
});