@levinzhang
2017-10-08T06:15:33.000000Z
字数 1874
阅读 518
by
Amazon Web Services(AWS)最近新增了以编码的方式创建和维护CloudWatch dashboard和widget的功能,从而支持动态资源生命周期跟踪和一致的跨账户仪表盘维护。
Amazon Web Services(AWS)最近新增了以编码的方式创建和维护CloudWatch dashboard和widget的功能,从而支持动态资源生命周期跟踪和一致的跨账户仪表盘维护。
Amazon CloudWatch Dashboards是AWS账户级别的Amazon CloudWatch特性(之前曾经介绍过),它提供了“自定义首页”的功能,其中包含了指标、告警和运行过程(runbooks)信息,便于跨不同的region监控AWS资源。Dashboard widgets能够将一组CloudWatch指标展现为单独的值、线图或堆积面积图(stacked area charts),还能以GitHub Flavored Markdown格式展现文本,共享运维的过程数据(playbooks),包括链接至其他dashboard或外部资源。
与以往不同的是,AWS当时并没有立即发布通过控制台创建这个交互式dashboard的API,因此阻碍了以基础设施即代码(infrastructure as code)的方式重用和动态提供dashboards的功能,难以实现与监控资源的同步。现在这个不足已经得到了弥补,我们能够通过对API、 CLI和CloudFormation的支持以命令式或声明式的方法创建和操作dashboard。dashboard以JSON结构进行表述,还能通过AWS控制台进行访问,这样的话,就为我们自己的应用提供了一个很好的起点,用户可以很容易地导出手动创建的dashboard,以便于稍后的自动化使用。
dashboard主体结构和语法非常简洁,大多数属性根据名字就能判断其作用,我们可以使用这些属性定位和配置widget。dashboard由24个单元格的表格组成,其高度可以按需增加,一个widget可以跨越整数个单元格。为了应对前面的指标中可能重复出现的指标数组和值,作为一种简写形式,在随后的指标中可以使用“.“形式的简写:
{
"widgets": [
{
"type": "metric",
"x": 0, "y": 0, "width": 6, "height": 6,
"properties": {
"view": "timeSeries",
"stacked": false,
"metrics": [
[
"AWS/EC2", "NetworkIn", "AutoScalingGroupName", "ECS-ClusterASG-ZGR8VLF5QBLQ"
],
[
".", "NetworkOut", ".", "."
]
],
"region": "ap-southeast-2"
}
}
]
}
更为综合的例子包含在cloudwatch-dashboards-cloudformation-sample中,它还阐述了如何使用AWS::CloudWatch::Dashboard资源结合AWS CloudFormation提供dashboard,后者是AWS自己提供的基础设施即代码管理工具。另外,跨平台的开源替代方案Terraform也提供了aws_cloudwatch_dashboard资源。
在与此相关的新闻中,Amazon CloudWatch为图形新增了水平注释(horizontal annotation)功能,它可以作为“超过预定义值的快速可视化检查,比如SLA限制,或者为解释性的指标值提供上下文信息”。线图可以按照手动或编码方式在Y轴上添加key值,线之间的区域可以选择性地添加阴影。用户提供的注释能够完善AWS在本年稍早发布的在dashboard上可视化CloudWatch告警的功能。
Amazon CloudWatch的文档提供了用户指南,包含了使用dashboard章节、AWS CLI参考和API参考。相关的支持可以通过Amazon CloudWatch论坛获取。用户可以免费创建三个dashboard,每个dashboard最多包含50个指标,额外的dashboard和超过100万次之后的API调用会按照标准进行计费。
查看英文原文:Amazon CloudWatch Dashboards Gains API and CloudFormation Support