CloudWatch Dashboard监控EMR Serverless Job

本节的监控仅用于Spark类型的application

我们将创建一个 EMR Serverless application以及一个 CloudWatch Dashboard来监控 EMR Serverless application的资源利用率。提交作业后,我们将访问Dashboard以更好地了解如何监控 EMR Serverless 指标

CloudWatch Dashboard会提供预初始化容量按需容量(on-demand)的概述,以及 Spark 驱动程序和执行程序的 CPU、内存和磁盘使用情况的深入指标。预初始化容量(pre-initialized capacity)是 EMR Serverless 的一项可选功能,可以预先初始化并在几秒钟内做好响应准备,此Dashboard可以帮助了解预初始化容量是否得到有效使用。

此外,还可以查看每个application job级别指标。

部署CloudFormation

打开 https://github.com/aws-samples/emr-serverless-samples/blob/main/cloudformation/emr-serverless-cloudwatch-dashboard/emr_serverless_cloudwatch_dashboard.yaml

下载到本地:

image-20231221144617888

创建stack:

image-20231221144706444

使用上面下载的yaml文件:

image-20231221144744970

为stack命名为emr-serverless-dashboard,填写之前运行spark时的application id:

image-20231221144910142

application id可以在EMR console上找到:

image-20231221144847018

其他参数保持默认,进行创建stack。

创建stack后,将在 CloudWatch Dashboard下看到名为 emr-serverless-dashboard-<APPLICATION_ID> :

image-20231221145031132

检查 Cloudwatch Dashboard功能

先clone几个job运行:

image-20231221145228453

几分钟后,检查Cloudwatch Dashboard,里面有这几个维度的监控:

image-20231221145716656

例如Job Runs是application每分钟job状态的聚合视图,包括待处理、正在运行和失败的作业

继续往下拉,Application Metrics 显示application使用的容量,包括:

  • 正在运行的 Worker 的时间线视图
  • CPU 分配的时间线视图
  • 已分配内存的时间线视图
  • 已分配磁盘的时间线视图

image-20231221150040919

预初始化容量指标 - 显示预初始化容量的利用率,包括:

  • Worker总数的时间线视图

  • 空闲 Worker 的时间线视图

image-20231221150144176

Driver指标

  • Running Drivers的时间线视图
  • CPU 分配的时间线视图
  • 已分配内存的时间线视图
  • 已分配磁盘的时间线视图

image-20231221150232820

** Executor Metric**:

  • Running Executors的时间线视图
  • CPU 分配的时间线视图
  • 已分配内存的时间线视图
  • 已分配磁盘的时间线视图

image-20231221150304370

Job指标:

  • 正在运行的作业的时间线视图
  • 成功Job的时间线视图
  • 失败Job的时间线视图
  • 已取消Job的时间线视图

image-20231221150342202