Amazon 新增对 CloudWatch Dashboards Gains API 和 CloudFormation 的支持

  • Steffen Opel
  • 张卫滨

2017 年 10 月 10 日

话题:AWSDevOps语言 & 开发

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

AWSDevOps语言 & 开发