亚马逊AWS官方博客

使用 Amazon CloudWatch 整合混合云、多云和本地指标



现在,您可以使用 Amazon CloudWatch 整合来自混合、多云和本地数据来源的指标,并以一致、统一的方式进行处理。您可以对所有指标进行查询、可视化和发出警报,无论其来源如何。除了为您提供统一视图外,这项新功能还将帮助您识别跨基础设施多个部分和方面的趋势和问题。

当我第一次听说这个新功能时,我想:“等等,我可以用 PutMetricData 做到这一点,有什么大不了的?” 事实证明,有很多地方。PutMetricData 将指标存储在 CloudWatch 中,但这个很酷的新功能可以根据需要直接从来源获取指标。

无需存储数据,而是选择并配置连接器,从 Amazon Managed Service for Prometheus、通用 PrometheusAmazon OpenSearch ServiceAmazon RDS for MySQLAmazon RDS for PostgreSQL、存储在 Amazon Simple Storage Service(Amazon S3)中的 CSV 文件和 Microsoft Azure Monitor 中提取数据。每个连接器都是从 AWS CloudFormation 模板部署的 AWS Lambda 函数。CloudWatch 会根据需要调用相应的 Lambda 函数,并立即使用返回的指标,这些指标不会被缓冲或保留。

创建和使用连接器
首先,我打开 CloudWatch 控制台,单击所有指标,并激活多源查询选项卡,然后单击创建和管理数据来源

然后我再做一次:

然后我选择一种数据来源类型:

然后,CloudWatch 将提示我输入为数据来源创建和设置连接器所需的详细信息。例如,如果我选择 Amazon RDS – MySQL,我将为数据来源命名,选择 RDS 数据库实例,然后指定连接信息:

当我单击创建数据来源时,系统将在我的账户中创建 Lambda 函数、Lambda 权限、IAM 角色、Secrets Manager 密钥、日志组和 AWS CloudFormation 堆栈:

然后,当我准备好引用数据来源并使用它提供的指标时,我输入一个 SQL 查询,查询将返回指标的时间戳和值:

在 Lambda 函数中
自定义 – 入门模板的代码简短、简单且易于理解。它为两个事件实现了处理程序:

DescribeGetMetricData – 此处理程序返回一个字符串,其中包含连接器的名称、其他处理程序参数的默认值以及 Markdown 格式的文本描述(显示在 CloudWatch 控制台的自定义数据来源查询生成器中)。

GetMetricData – 此处理程序返回一个指标名称,时间戳和指标值的一维数组,所有这些都作为参数提供给处理程序的时间范围。

如果您花几分钟时间研究这段代码,就会知道如何编写函数来连接自己的数据来源。

注意事项
对于这项强大的新功能,需要注意以下几点:

区域 – 您可以在所有商业 AWS 区域创建和使用数据连接器;在一个区域运行的连接器可以连接到其他区域和其他 AWS 账户中的服务和端点,并从中检索数据。

定价 – 连接器不收取额外费用。您需要为调用 Lambda 函数和您创建的任何其他 AWS 基础设施付费。

Jeff