我想在 Windows 中的 AWS Elastic Beanstalk 环境中使用 Amazon CloudWatch 监控内存使用情况。
简短描述
您可以通过执行以下操作,预置 Elastic Beanstalk 配置文件(.ebextensions)来在搭载 IIS 的 Windows 服务器上监控适用于 .NET 的 CloudWatch 的内存利用率:
- 创建 .ebextensions 目录。
- 在 .ebextensions 目录中创建并保存配置文件。
- 部署您的应用程序并查看您的指标。
**注意:**统一的 CloudWatch 代理默认安装在运行平台版本 2.0.1 或更高版本的所有 Elastic Beanstalk Windows 环境上。
解决方法
创建 .ebextensions 目录
- 在应用程序包的根目录中,创建名为 .ebextensions 的隐藏目录。
示例:此示例演示了应用程序源包结构,其中 .ebextensions 目录位于项目目录的顶层。
~/workspace/my-application/
|-- Content
|-- .ebextensions
|
|-- archive.xml
`-- systemInfo.xml
在 .ebextensions 目录中创建并保存配置文件
- 在您作为应用程序源包的一部分创建的 .ebextensions 目录内创建名为 01_cw-memory-metrics.config 的文件。
示例:此示例扩展了 CloudWatch 代理配置文件 - Metrics(指标)部分。
files:
"C:\\Program Files\\Amazon\\AmazonCloudWatchAgent\\cw-memory-config.json":
content: |
{
"metrics": {
"append_dimensions": {
"AutoScalingGroupName": "${aws:AutoScalingGroupName}",
"ImageId": "${aws:ImageId}",
"InstanceId": "${aws:InstanceId}",
"InstanceType": "${aws:InstanceType}"
},
"metrics_collected": {
"Memory": {
"measurement": [
"% Committed Bytes In Use"
],
"metrics_collection_interval": 10
}
}
}
}
container_commands:
01_set_config_and_reinitialize_cw_agent:
command: powershell.exe cd 'C:\Program Files\Amazon\AmazonCloudWatchAgent'; powershell.exe -ExecutionPolicy Bypass -File ./amazon-cloudwatch-agent-ctl.ps1 -a append-config -m ec2 -c file:cw-memory-config.json -s; powershell.exe -ExecutionPolicy Bypass -File ./amazon-cloudwatch-agent-ctl.ps1 -a start; exit
01_cw-memory-config.config 配置文件将执行以下操作:
**注意:**有关 Amazon EC2 的受支持 CloudWatch 指标的列表,请参阅 CloudWatch 内置指标。
**示例:**此示例演示了包含 01_cw-memory-metrics.config 的应用程序源包结构。
~/workspace/my-application/
|-- Content
|-- .ebextensions
| |--01_cw-memory-metrics.config
|
|-- archive.xml
`-- systemInfo.xml
部署您的应用程序并查看您的指标
- 部署已更新的 Elastic Beanstalk 应用程序。
- 查看内存利用率指标:
- 打开 CloudWatch 控制台,在导航窗格中,选择 Metrics(指标),然后选择 All metrics(所有指标)。您可以在标记为 CWAgent 的自定义命名空间中查看您的指标。