

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

# Managed Service for Apache Flink 中的指标和维度
<a name="metrics-dimensions"></a>

当您的适用于 Apache Flink 的托管服务处理数据源时，适用于 Apache Flink 的托管服务会向亚马逊报告以下指标和维度。 CloudWatch

**Flink 2.2 指标发生了变化**  
Flink 2.2 引入的指标更改可能会影响您的监控和警报。升级前请查看以下更改：  
该`fullRestarts`指标已被删除。请改用 `numRestarts`。
`uptime`和`downtime`指标已被弃用，并将在未来的版本中删除。迁移到新的州特定指标。
Kinesis Data Streams 连接器 6.0.0 的`bytesRequestedPerFetch`指标已被删除。

## 应用程序指标
<a name="metrics-dimensions-jobs"></a>


| 指标 | 单位 | 说明 | 级别 | 使用说明 | 
| --- | --- | --- | --- | --- | 
| backPressuredTimeMsPerSecond\$1 | 毫秒 | 该任务或运算符每秒受到反向压力的时间（以毫秒为单位）。 | 任务、运算符、并行度 | \$1仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。 这些指标可用于识别应用程序中的瓶颈。 | 
| busyTimeMsPerSecond\$1 | 毫秒 | 该任务或运算符每秒忙碌的时间（以毫秒为单位）（既没有空闲也没有反向压力）。如果无法计算该值，则可以为 NaN。 | 任务、运算符、并行度 | \$1仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。 这些指标可用于识别应用程序中的瓶颈。 | 
| cpuUtilization | 百分比 | 任务管理器中 CPU 利用率的总体百分比。例如，如果有五个任务管理器，则 Managed Service for Apache Flink 将在每个报告间隔内发布该指标的五个样本。 | 应用程序 | 您可以使用此指标来监控应用程序中的最低、平均和最大 CPU 利用率。该CPUUtilization指标仅考虑容器内运行的 TaskManager JVM 进程的 CPU 使用率。 | 
| containerCPUUtilization | 百分比 | Flink 应用程序集群中任务管理器容器中 CPU 利用率的总体百分比。例如，如果有五个任务管理器，则相应地有五个 TaskManager 容器，而适用于 Apache Flink 的托管服务每 1 分钟报告间隔就会发布 2 \$1 5 个该指标的样本。 | 应用程序 | 每个容器的计算公式为： *容器消耗的 CPU 总时间（以秒为单位）\$1 100 /容器 CPU 限制（以 CPUs /秒为单位）* 该`CPUUtilization`指标仅考虑容器内运行的 TaskManager JVM 进程的 CPU 使用率。JVM 之外还有其他组件在同一个容器内运行。该`containerCPUUtilization`指标可让您更全面地了解容器 CPU 耗尽以及由此导致的故障，包括所有进程。  | 
| containerMemoryUtilization | 百分比 | Flink 应用程序集群中任务管理器容器中内存利用率的总体百分比。例如，如果有五个任务管理器，则相应地有五个 TaskManager 容器，而适用于 Apache Flink 的托管服务每 1 分钟报告间隔就会发布 2 \$1 5 个该指标的样本。 | 应用程序 | 每个容器的计算公式为： *容器内存使用量（字节）\$1 100 /容器内存限制（按照 Pod 部署规范）（以字节为单位）* `HeapMemoryUtilization`和`ManagedMemoryUtilzations`指标仅考虑特定的内存指标，例如 TaskManager JVM 的堆内存使用量或托管内存（[RocksD](https://flink.apache.org/2021/01/18/rocksdb.html#:~:text=Conclusion-,The%20RocksDB%20state%20backend%20(i.e.%2C%20RocksDBStateBackend)%20is%20one%20of,with%20exactly%2Donce%20processing%20guarantees.) B State Backend 等本机进程在 JVM 之外的内存使用情况）。该`containerMemoryUtilization`指标包括工作集内存，可以更好地跟踪总内存耗尽情况，从而更全面地了解工作集内存。当它耗尽后，它就会进入`Out of Memory Error` TaskManager 吊舱。  | 
| containerDiskUtilization | 百分比 | Flink 应用程序集群中任务管理器容器中磁盘利用率的总体百分比。例如，如果有五个任务管理器，则相应地有五个 TaskManager 容器，而适用于 Apache Flink 的托管服务每 1 分钟报告间隔就会发布 2 \$1 5 个该指标的样本。 | 应用程序 | 每个容器的计算公式为： *磁盘使用量（以字节为单位）\$1 100 /容器的磁盘限制（以字节为单位）* 对于容器，它表示在其中设置容器根卷的文件系统的利用率。  | 
| currentInputWatermark | 毫秒 | 上次收到application/operator/task/thread的水印 | 应用程序、运算符、任务、并行度 | 此记录仅针对具有两个输入的维度发出。这是上次收到的水印的最小值。 | 
| currentOutputWatermark | 毫秒 | application/operator/task/thread它发出的最后一个水印 | 应用程序、运算符、任务、并行度 |  | 
| downtime[已弃用] | 毫秒 | 对于目前处于困 failing/recovering 境中的工作，则是在这次停机期间所经过的时间。 | 应用程序 | 该指标测量任务发生故障或恢复时经过的时间。该指标为运行的任务返回 0，并为完成的任务返回 -1。如果该指标不是 0 或 -1，则表明应用程序的 Apache Flink 任务无法运行。**在 Flink 2.2 中已弃用。** and/or `failingTime`改用`restartingTime``cancellingTime`、、。 | 
| failingTime | 毫秒 | 应用程序处于失败状态的时间（以毫秒为单位）。使用此指标来监控应用程序故障并触发警报。 | 应用程序、流程 | 可从 Flink 2.2 中获得。替换部分已弃用的downtime指标。 | 
| heapMemoryUtilization | 百分比 | 任务管理器的总体堆内存利用率。例如，如果有五个任务管理器，则 Managed Service for Apache Flink 将在每个报告间隔内发布该指标的五个样本。 | 应用程序 | 您可以使用此指标来监控应用程序中的最低、平均和最大堆内存利用率。HeapMemoryUtilization仅考虑特定的内存指标，例如 TaskManager JVM 的堆内存使用情况。 | 
| idleTimeMsPerSecond\$1 | 毫秒 | 此任务或运算符每秒处于空闲状态（没有要处理的数据）的时间（以毫秒为单位）。空闲时间不包括反向压力时间，因此，如果任务受到反向压力，则不会处于空闲状态。 | 任务、运算符、并行度 | \$1仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。 这些指标可用于识别应用程序中的瓶颈。 | 
| lastCheckpointSize | 字节 | 上一个检查点的总大小 | 应用程序 | 您可以使用该指标确定运行的应用程序存储使用率。如果该指标的值不断增加，则可能表明应用程序出现问题，例如内存泄漏或瓶颈。 | 
| lastCheckpointDuration | 毫秒 | 完成上一个检查点所花的时间 | 应用程序 | 该指标测量完成最近的检查点所花的时间。如果该指标的值不断增加，则可能表明应用程序出现问题，例如内存泄漏或瓶颈。在某些情况下，您可以禁用检查点以解决该问题。 | 
| managedMemoryUsed\$1 | 字节 | 当前使用的托管内存量。 | 应用程序、运算符、任务、并行度 | \$1仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。 这与 Flink 在 Java 堆之外托管的内存有关。它用于 RocksDB 状态后端，也可供应用程序使用。 | 
| managedMemoryTotal\$1 | 字节 | 托管内存的总量。 | 应用程序、运算符、任务、并行度 | \$1仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。 这与 Flink 在 Java 堆之外托管的内存有关。它用于 RocksDB 状态后端，也可供应用程序使用。该`ManagedMemoryUtilzations`指标仅考虑特定的内存指标，例如托管内存（[RocksDB 状态后端](https://flink.apache.org/2021/01/18/rocksdb.html#:~:text=Conclusion-,The%20RocksDB%20state%20backend%20(i.e.%2C%20RocksDBStateBackend)%20is%20one%20of,with%20exactly%2Donce%20processing%20guarantees.)等本机进程在 JVM 外部的内存使用情况） | 
| managedMemoryUtilization\$1 | 百分比 | 派生自 managedMemoryUsed/managedMemoryTotal | 应用程序、运算符、任务、并行度 | \$1仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。 这与 Flink 在 Java 堆之外托管的内存有关。它用于 RocksDB 状态后端，也可供应用程序使用。 | 
| numberOfFailedCheckpoints | 计数 | 检查点失败的次数。 | 应用程序 | 您可以使用此指标来监控应用程序的运行状况和进度。检查点可能由于应用程序问题（例如吞吐量或权限问题）而失败。 | 
| numRecordsIn\$1 | 计数 | 该应用程序、运算符或任务收到的总记录数。 | 应用程序、运算符、任务、并行度 | \$1要在一段时间（秒/分钟）内应用 SUM 统计数据，请执行以下操作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/managed-flink/latest/java/metrics-dimensions.html) 该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务收到的记录总数。 | 
| numRecordsInPerSecond\$1 | 计数/秒 | 该应用程序、运算符或任务每秒收到的总记录数。 | 应用程序、运算符、任务、并行度 | \$1要在一段时间（秒/分钟）内应用 SUM 统计数据，请执行以下操作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/managed-flink/latest/java/metrics-dimensions.html) 该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务每秒收到的记录总数。 | 
| numRecordsOut\$1 | 计数 | 该应用程序、运算符或任务发出的总记录数。 | 应用程序、运算符、任务、并行度 |  \$1要在一段时间（秒/分钟）内应用 SUM 统计数据，请执行以下操作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/managed-flink/latest/java/metrics-dimensions.html) 该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务发出的记录总数。 | 
| numLateRecordsDropped\$1 | 计数 | 应用程序、运算符、任务、并行度 |  | \$1要在一段时间（秒/分钟）内应用 SUM 统计数据，请执行以下操作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/managed-flink/latest/java/metrics-dimensions.html) 由于到达延迟，该操作符或任务丢弃的记录数。 | 
| numRecordsOutPerSecond\$1 | 计数/秒 | 该应用程序、运算符或任务每秒发出的总记录数。 | 应用程序、运算符、任务、并行度 |  \$1要在一段时间（秒/分钟）内应用 SUM 统计数据，请执行以下操作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/managed-flink/latest/java/metrics-dimensions.html) 该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务每秒发出的记录总数。 | 
| oldGenerationGCCount | 计数 | 所有任务管理器中发生的旧垃圾回收操作总数。 | 应用程序 |  | 
| oldGenerationGCTime | 毫秒 | 执行旧垃圾回收操作所花费的总时间。 | 应用程序 | 您可以使用此指标来监控垃圾回收的总时间、平均时间和最大时间。 | 
| threadsCount | 计数 | 应用程序使用的实时线程总数。 | 应用程序 | 该指标衡量应用程序代码使用的线程数。这与应用程序并行度不同。 | 
| cancellingTime | 毫秒 | 应用程序处于取消状态的时间（以毫秒为单位）。使用此指标来监控应用程序取消操作。 | 应用程序、流程 | 可从 Flink 2.2 中获得。替换部分已弃用的downtime指标。 | 
| restartingTime | 毫秒 | 应用程序在重启状态下所花费的时间（以毫秒为单位）。使用此指标来监控应用程序的重启行为。 | 应用程序、流程 | 可从 Flink 2.2 中获得。替换部分已弃用的downtime指标。 | 
| runningTime | 毫秒 | 应用程序不间断运行的时间（以毫秒为单位）。替换已弃用的uptime指标。 | 应用程序、流程 | 可从 Flink 2.2 中获得。用作已弃用uptime指标的直接替代品。 | 
| uptime[已弃用] | 毫秒 | 任务不间断运行的时间。 | 应用程序 | 您可以使用此指标来确定任务是否成功运行。该指标为完成的任务返回 -1。**在 Flink 2.2 中已弃用。**请改用 `runningTime`。 | 
| jobmanagerFileDescriptorsMax | 计数 | 可供使用的文件描述符的最大数量。 JobManager | 应用程序、流程、主机 | 使用此指标来监控文件描述符容量。 | 
| jobmanagerFileDescriptorsOpen | 计数 | 的当前打开文件描述符的 JobManager数量。 | 应用程序、流程、主机 | 使用此指标来监控文件描述符的使用情况并检测潜在的资源耗尽情况。 | 
| taskmanagerFileDescriptorsMax | 计数 | 每个 TaskManager文件描述符可用的最大数量。 | 应用程序、流程、主机、tm\$1id | 使用此指标来监控文件描述符容量。 | 
| taskmanagerFileDescriptorsOpen | 计数 | 每个 TaskManager文件描述符的当前打开文件描述符的数量。 | 应用程序、流程、主机、tm\$1id | 使用此指标来监控文件描述符的使用情况并检测潜在的资源耗尽情况。 | 
| KPUs\$1 | 计数 | 应用程序 KPUs 使用的总数。 | 应用程序 | \$1此指标在每个账单周期（一小时）接收一个示例。要可视化一段 KPUs 时间内的数量，请在至少一 (1) 小时内使用 MAX 或 AVG。 KPU 计数包括 `orchestration` KPU。有关更多信息，请参阅 [Managed Service for Apache Flink 定价](https://aws.amazon.com/managed-service-apache-flink/pricing/)。 | 

**Flink 2.2 指标迁移指南**  
**从 FullRestarts 迁移：**该`fullRestarts`指标已在 Flink 2.2 中删除。改用该`numRestarts`指标。该`numRestarts`指标提供同等功能，无需调整阈值即可直接替代 CloudWatch 警报。  
**从正常运行时间迁移：**该`uptime`指标已在 Flink 2.2 中弃用，并将在未来的版本中删除。改用该`runningTime`指标。该`runningTime`指标提供同等功能，无需调整阈值即可直接替代 CloudWatch 警报。  
**停机后迁移：**该`downtime`指标已在 Flink 2.2 中弃用，并将在未来的版本中删除。根据您要监控的内容，使用以下一个或多个指标：  
`restartingTime`: 监控重启应用程序所花费的时间
`cancellingTime`：监控取消应用程序所花费的时间
`failingTime`: 监控在故障状态下所花费的时间

## Kinesis Data Streams 连接器指标
<a name="metrics-dimensions-stream"></a>

AWS 除以下内容外，还会发出 Kinesis Data Streams 的所有记录：


| 指标 | 单位 | 说明 | 级别 | 使用说明 | 
| --- | --- | --- | --- | --- | 
| millisbehindLatest | 毫秒 | 使用者落后流开头的毫秒数，表示使用者落后当前时间有多远。 | 应用程序（对于 Stream）、并行度（适用于） ShardId | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/managed-flink/latest/java/metrics-dimensions.html)  | 

**注意**  
该`bytesRequestedPerFetch`指标已在 Flink AWS 连接器版本 6.0.0（唯一与 Flink 2.2 兼容的连接器版本）中删除。Flink 2.2 中唯一可用的 Kinesis Data Streams 连接器指标是。`millisBehindLatest`

## Amazon MSK 连接器指标
<a name="metrics-dimensions-msk"></a>

AWS 除以下内容外，还会发出 Amazon MSK 的所有记录：


| 指标 | 单位 | 说明 | 级别 | 使用说明 | 
| --- | --- | --- | --- | --- | 
| currentoffsets | 不适用 | 使用者的当前读取偏移量（对于每个分区）。可以按主题名称和分区 ID 来指定特定分区的指标。 | 应用程序（用于主题）、并行度（用于） PartitionId |  | 
| commitsFailed | 不适用 | 如果启用了偏移提交和检查点功能，则向 Kafka 提交偏移失败的总数。 | 应用程序、运算符、任务、并行度 | 将偏移量提交回 Kafka 只是显示使用者进度的一种手段，因此提交失败不会影响 Flink 的检查点分区偏移量的完整性。 | 
| commitsSucceeded | 不适用 | 如果启用了偏移提交和检查点功能，则向 Kafka 提交偏移成功的总数。 | 应用程序、运算符、任务、并行度 |  | 
| committedoffsets | 不适用 | 上次成功提交的 Kafka 偏移量（对于每个分区）。可以按主题名称和分区 ID 来指定特定分区的指标。 | 应用程序（用于主题）、并行度（用于） PartitionId |  | 
| records\$1lag\$1max | 计数 | 最大延迟，以该窗口中的任何分区的记录数表示 | 应用程序、运算符、任务、并行度 |  | 
| bytes\$1consumed\$1rate | 字节 | 主题平均每秒使用的字节数 | 应用程序、运算符、任务、并行度 |  | 

## Apache Zeppelin 指标
<a name="metrics-dimensions-zeppelin"></a>

对于 Studio 笔记本电脑，会在应用程序级别 AWS 发出以下指标：`KPUs``cpuUtilization`、`heapMemoryUtilization`、、`oldGenerationGCTime``oldGenerationGCCount`、和`threadCount`。此外，它还会在应用程序级别发布下表所示的指标。


****  

| 指标 | 单位 | 说明 | Prometheus 名称 | 
| --- | --- | --- | --- | 
| zeppelinCpuUtilization | 百分比 | Apache Zeppelin 服务器中 CPU 利用率的总体百分比。 | process\$1cpu\$1usage | 
| zeppelinHeapMemoryUtilization | 百分比 | Apache Zeppelin 服务器中堆内存利用率的总体百分比。 | jvm\$1memory\$1used\$1bytes | 
| zeppelinThreadCount | 计数 | Apache Zeppelin 服务器使用的实时线程总数。 | jvm\$1threads\$1live\$1threads | 
| zeppelinWaitingJobs | 计数 | 排队等待线程的 Apache Zeppelin 任务数量。 | jetty\$1threads\$1jobs | 
| zeppelinServerUptime | 秒 | 服务器启动和运行的总时间。 | process\$1uptime\$1seconds | 