将 CloudWatch 指标与 Amazon Managed Service for Prometheus 集成 - Amazon Managed Service for Prometheus

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 CloudWatch 指标与 Amazon Managed Service for Prometheus 集成

将所有指标集中在一个地方会有所帮助。Amazon Managed Service for Prometheus 不会自动摄取 Amazon CloudWatch 指标。不过,您可以使用 Amazon Data Firehose 和 AWS Lambda 将 CloudWatch 指标推送到 Amazon Managed Service for Prometheus。

本节介绍如何检测 Amazon CloudWatch 指标流以及使用 Amazon Data FirehoseAWS Lambda 将指标摄取到 Amazon Managed Service for Prometheus。

您将使用 AWS 云开发工具包(CDK)设置堆栈,以创建 Firehose 传输流、Lambda 和 Amazon S3 存储桶来演示完整的场景。

基础设施

首先,您必须为该配方设置基础设施。

通过 CloudWatch 指标流可以将流式指标数据转发到 HTTP 终端节点或 Amazon S3 桶

设置基础设施涵盖 4 个步骤:

  • 配置先决条件

  • 创建 Amazon Managed Service for Prometheus 工作区。

  • 安装依赖项

  • 部署堆栈

先决条件

创建 Amazon Managed Service for Prometheus 工作区
  1. 此配方中的演示应用程序将基于 Amazon Managed Service for Prometheus 运行。通过以下命令创建 Amazon Managed Service for Prometheus 工作区:

    aws amp create-workspace --alias prometheus-demo-recipe
  2. 使用以下命令确保您的工作区已创建:

    aws amp list-workspaces

    有关 Amazon Managed Service for Prometheus 的更多信息,请参阅 Amazon Managed Service for Prometheus 用户指南。

安装依赖项
  1. 安装依赖项

    aws-o11y-recipes 存储库的根目录中,使用以下命令将您的目录更改为 CWMetricStreamExporter

    cd sandbox/CWMetricStreamExporter

    今后,这将被视为存储库的根目录。

  2. 通过以下命令将目录更改为 /cdk

    cd cdk
  3. 通过以下命令安装 CDK 依赖项。

    npm install
  4. 将目录更改回存储库的根目录,然后使用以下命令将目录更改为 /lambda

    cd lambda
  5. 进入 /lambda 文件夹后,使用以下命令安装 Go 依赖项:

    go get

    所有依赖项现已安装完毕。

部署堆栈
  1. 在存储库的根目录中,打开 config.yaml,将 {workspace} 替换为新创建的工作区 ID,将区域替换为您的 Amazon Managed Service for Prometheus 工作区所在的区域,从而修改 Amazon Managed Service for Prometheus 工作区 URL。

    例如,修改以下内容:

    AMP: remote_write_url: "https://aps-workspaces.us-east-2.amazonaws.com/workspaces/{workspaceId}/api/v1/remote_write" region: us-east-2

    根据自己的喜好更改 Firehose 传输流和 Amazon S3 存储桶的名称。

  2. 要构建 AWS CDK 和 Lambda 代码,请在存储库的根目录中运行以下命令:

    npm run build

    此构建步骤可确保构建 Go Lambda 二进制文件,并将 CDK 部署到 CloudFormation。

  3. 要完成部署,请查看并接受堆栈所需的 IAM 更改。

  4. (可选)可以运行以下命令确认堆栈是否已创建。

    aws cloudformation list-stacks

    名为 CDK Stack 的堆栈将出现在列表中。

创建 Amazon CloudWatch 流

现在,您已经有一个用来处理这些指标的 lambda 函数,您可以从 Amazon CloudWatch 创建指标流。

创建 CloudWatch 指标流
  1. 导航到 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/home#metric-streams:streamsList,然后选择创建指标流

  2. 选择所需的指标,可以是所有指标,也可以仅仅是选定命名空间中的指标。

  3. Configuration 下,选择选择您的账户拥有的现有 Firehose

  4. 您将使用之前通过 CDK 创建的 Firehose。在选择您的 Kinesis Data Firehose 流下拉列表中,选择之前创建的流。其名字将为 CdkStack-KinesisFirehoseStream123456AB-sample1234

  5. 将输出格式设置为 JSON

  6. 为指标流创建一个对您有意义的名称。

  7. 选择 Create metric filter(创建指标流)

  8. (可选)要验证 Lambda 函数的调用,请导航到 Lambda 控制台并选择函数 KinesisMessageHandler。选择监控选项卡和 Logs 子选项卡,在最近调用下应该有所触发的 Lambda 函数的条目。

    注意

    最长可能需要 5 分钟,调用才会开始显示在监控选项卡中。

现在,您的指标应该在从 Amazon CloudWatch 传输到 Amazon Managed Service for Prometheus。

清理

您可能需要清除您在本示例中使用的资源。以下步骤将说明如何操作。这将停止您创建的指标流。

清理资源
  1. 首先使用以下命令删除 CloudFormation 堆栈:

    cd cdk cdk destroy
  2. 删除 Amazon Managed Service for Prometheus 工作区:

    aws amp delete-workspace --workspace-id \ `aws amp list-workspaces --alias prometheus-sample-app --query 'workspaces[0].workspaceId' --output text`
  3. 最后,使用 Amazon CloudWatch 控制台删除 Amazon CloudWatch 指标流。