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
评论