适用于 Apache Flink 的托管服务中的指标和维度 - Managed Service for Apache Flink

Amazon Managed Service for Apache Flink 之前称为 Amazon Kinesis Data Analytics for Apache Flink。

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

适用于 Apache Flink 的托管服务中的指标和维度

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

应用程序指标

指标 单位 描述 级别 使用说明
backPressuredTimeMsPerSecond* 毫秒 该任务或运算符每秒受到反向压力的时间(以毫秒为单位)。 任务、运算符、并行度

*仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。

这些指标可用于识别应用程序中的瓶颈。

busyTimeMsPerSecond* 毫秒 该任务或运算符每秒忙碌的时间(以毫秒为单位)(既没有空闲也没有反向压力)。如果无法计算该值,则可以为 NaN。 任务、运算符、并行度

*仅适用于运行 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 * 5 个该指标的样本。 应用程序

每个容器的计算公式为:

容器消耗的总CPU时间(以秒为单位)* 100 /容器CPU限制(以 CPUs /秒为单位)

CPUUtilization指标仅考虑容器内运行的 TaskManager JVM进程的CPU使用情况。在同一个容器JVM内还有其他组件在外面运行。该containerCPUUtilization指标可以让您更全面地了解容器CPU耗尽情况以及由此导致的故障,包括所有流程。

containerMemoryUtilization 百分比 Flink 应用程序集群中任务管理器容器中内存利用率的总体百分比。例如,如果有五个任务管理器,则相应地有五个 TaskManager 容器,而适用于 Apache Flink 的托管服务每 1 分钟报告间隔就会发布 2 * 5 个该指标的样本。 应用程序

每个容器的计算公式为:

容器内存使用量(字节)* 100 /容器内存限制(按照 Pod 部署规范)(以字节为单位)

HeapMemoryUtilizationManagedMemoryUtilzations指标仅考虑特定的内存指标,例如堆内存使用率 TaskManager JVM或托管内存(RocksDB St ate Backen JVM d 等本机进程的外部内存使用情况)。该containerMemoryUtilization指标包括工作集内存,可以更好地跟踪总内存耗尽情况,从而更全面地了解工作集内存。当它耗尽后,它就会进入Out of Memory Error TaskManager 吊舱。

containerDiskUtilization 百分比 Flink 应用程序集群中任务管理器容器中磁盘利用率的总体百分比。例如,如果有五个任务管理器,则相应地有五个 TaskManager 容器,而适用于 Apache Flink 的托管服务每 1 分钟报告间隔就会发布 2 * 5 个该指标的样本。 应用程序

每个容器的计算公式为:

磁盘使用量(以字节为单位)* 100 /容器的磁盘限制(以字节为单位)

对于容器,它表示在其中设置容器根卷的文件系统的利用率。

currentInputWatermark 毫秒 该应用程序/运算符/任务/线程上次收到的水印 应用程序、运算符、任务、并行度 此记录仅针对具有两个输入的维度发出。这是上次收到的水印的最小值。
currentOutputWatermark 毫秒 该应用程序/运算符/任务/线程上次发出的水印 应用程序、运算符、任务、并行度
downtime 毫秒 对于当前处于故障/恢复状态的任务,在该中断期间经过的时间。 应用程序 该指标测量任务发生故障或恢复时经过的时间。该指标为运行的任务返回 0,并为完成的任务返回 -1。如果该指标不是 0 或 -1,则表明应用程序的 Apache Flink 任务无法运行。
fullRestarts 计数 自提交以来,此任务完全重启的总次数。该指标不能衡量精细的重启情况。 应用程序 您可以使用此指标来评估应用程序的总体运行状况。Managed Service for Apache Flink 在内部维护期间可能会发生重启。重启次数高于正常值可能表示应用程序出现问题。
heapMemoryUtilization 百分比 任务管理器的总体堆内存利用率。例如,如果有五个任务管理器,则 Managed Service for Apache Flink 将在每个报告间隔内发布该指标的五个样本。 应用程序 您可以使用此指标来监控应用程序中的最低、平均和最大堆内存利用率。HeapMemoryUtilization仅考虑特定的内存指标,例如堆内存使用情况。 TaskManager JVM
idleTimeMsPerSecond* 毫秒 此任务或运算符每秒处于空闲状态(没有要处理的数据)的时间(以毫秒为单位)。空闲时间不包括反向压力时间,因此,如果任务受到反向压力,则不会处于空闲状态。 任务、运算符、并行度

*仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。

这些指标可用于识别应用程序中的瓶颈。

lastCheckpointSize 字节 上一个检查点的总大小 应用程序 您可以使用该指标确定运行的应用程序存储使用率。

如果该指标的值不断增加,则可能表明应用程序出现问题,例如内存泄漏或瓶颈。

lastCheckpointDuration 毫秒 完成上一个检查点所花的时间 应用程序 该指标测量完成最近的检查点所花的时间。如果该指标的值不断增加,则可能表明应用程序出现问题,例如内存泄漏或瓶颈。在某些情况下,您可以禁用检查点以解决该问题。
managedMemoryUsed* 字节 当前使用的托管内存量。 应用程序、运算符、任务、并行度

*仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。

这与 Flink 在 Java 堆之外托管的内存有关。它用于 RocksDB 状态后端,也可供应用程序使用。

managedMemoryTotal* 字节 托管内存的总量。 应用程序、运算符、任务、并行度

*仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。

这与 Flink 在 Java 堆之外托管的内存有关。它用于 RocksDB 状态后端,也可供应用程序使用。该ManagedMemoryUtilzations指标仅考虑特定的内存指标,例如托管内存(RocksDB St ate Backend 等本机进程的外部JVM内存使用情况)

managedMemoryUtilization* 百分比 派生自 managedMemoryUsed/managedMemoryTotal 应用程序、运算符、任务、并行度

*仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。

这与 Flink 在 Java 堆之外托管的内存有关。它用于 RocksDB 状态后端,也可供应用程序使用。

numberOfFailedCheckpoints 计数 检查点失败的次数。 应用程序 您可以使用此指标来监控应用程序的运行状况和进度。检查点可能由于应用程序问题(例如吞吐量或权限问题)而失败。
numRecordsIn* 计数 该应用程序、运算符或任务收到的总记录数。 应用程序、运算符、任务、并行度

*要在一段时间(秒/分钟)内应用SUM统计数据,请执行以下操作:

  • 选择正确级别的指标。如果您要跟踪运算符的指标,则需要选择相应的运算符指标。

  • 由于适用于 Apache Flink 的托管服务每分钟拍摄 4 个指标快照,因此应使用以下指标数学运算:m1/4,其中 m1 是一段时间(秒/分钟)内的SUM统计数据

该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务收到的记录总数。

numRecordsInPerSecond* 计数/秒 该应用程序、运算符或任务每秒收到的总记录数。 应用程序、运算符、任务、并行度

*要在一段时间(秒/分钟)内应用SUM统计数据,请执行以下操作:

  • 选择正确级别的指标。如果您要跟踪运算符的指标,则需要选择相应的运算符指标。

  • 由于适用于 Apache Flink 的托管服务每分钟拍摄 4 个指标快照,因此应使用以下指标数学运算:m1/4,其中 m1 是一段时间(秒/分钟)内的SUM统计数据

该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务每秒收到的记录总数。

numRecordsOut* 计数 该应用程序、运算符或任务发出的总记录数。 应用程序、运算符、任务、并行度

*要在一段时间(秒/分钟)内应用SUM统计数据,请执行以下操作:

  • 选择正确级别的指标。如果您要跟踪运算符的指标,则需要选择相应的运算符指标。

  • 由于适用于 Apache Flink 的托管服务每分钟拍摄 4 个指标快照,因此应使用以下指标数学运算:m1/4,其中 m1 是一段时间(秒/分钟)内的SUM统计数据

该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务发出的记录总数。

numLateRecordsDropped* 计数 应用程序、运算符、任务、并行度

*要在一段时间(秒/分钟)内应用SUM统计数据,请执行以下操作:

  • 选择正确级别的指标。如果您要跟踪运算符的指标,则需要选择相应的运算符指标。

  • 由于适用于 Apache Flink 的托管服务每分钟拍摄 4 个指标快照,因此应使用以下指标数学运算:m1/4,其中 m1 是一段时间(秒/分钟)内的SUM统计数据

由于到达延迟,该操作符或任务丢弃的记录数。

numRecordsOutPerSecond* 计数/秒 该应用程序、运算符或任务每秒发出的总记录数。 应用程序、运算符、任务、并行度

*要在一段时间(秒/分钟)内应用SUM统计数据,请执行以下操作:

  • 选择正确级别的指标。如果您要跟踪运算符的指标,则需要选择相应的运算符指标。

  • 由于适用于 Apache Flink 的托管服务每分钟拍摄 4 个指标快照,因此应使用以下指标数学运算:m1/4,其中 m1 是一段时间(秒/分钟)内的SUM统计数据

该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务每秒发出的记录总数。

oldGenerationGCCount 计数 所有任务管理器中发生的旧垃圾回收操作总数。 应用程序
oldGenerationGCTime 毫秒 执行旧垃圾回收操作所花费的总时间。 应用程序 您可以使用此指标来监控垃圾回收的总时间、平均时间和最大时间。
threadCount 计数 应用程序使用的实时线程总数。 应用程序 该指标衡量应用程序代码使用的线程数。这与应用程序并行度不同。
uptime 毫秒 任务不间断运行的时间。 应用程序 您可以使用此指标来确定任务是否成功运行。该指标为完成的任务返回 -1。
KPUs* 计数 应用程序KPUs使用的总数。 应用程序

*此指标在每个账单周期(一小时)接收一个样本。要可视化一段KPUs时间内的数量,请使用MAX或AVG在至少一 (1) 小时的时间段内。

KPU计数包括 orchestrationKPU. 有关更多信息,请参阅适用于 Apache 的托管服务 Flink 定价。

Kinesis Data Streams 连接器指标

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

指标 单位 描述 级别 使用说明
millisbehindLatest 毫秒 使用者落后流开头的毫秒数,表示使用者落后当前时间有多远。 应用程序(对于 Stream)、并行度(适用于) ShardId
  • 值为 0 表示记录处理是同步的,并且此时没有要处理的新记录。可以按流名称和分片 ID 来指定特定分片的指标。

  • 值为 -1 表示该服务尚未报告指标值。

bytesRequestedPerFetch 字节 在一次 getRecords 调用中请求的字节数。 应用程序(对于 Stream)、并行度(适用于) ShardId

Amazon MSK 连接器指标

AWS 除以下记录外,还会为 Amazon MSK 发布所有记录:

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

Apache 齐柏林飞艇指标

对于 Studio 笔记本电脑,会在应用程序级别 AWS 发出以下指标:KPUscpuUtilizationheapMemoryUtilization、、oldGenerationGCTimeoldGenerationGCCount、和threadCount。此外,它还会在应用程序级别发布下表所示的指标。

指标 单位 描述 Prometheus 名称
zeppelinCpuUtilization 百分比 Apache 齐柏林飞艇服务器的总体CPU利用率百分比。 process_cpu_usage
zeppelinHeapMemoryUtilization 百分比 Apache Zeppelin 服务器中堆内存利用率的总体百分比。 jvm_memory_used_bytes
zeppelinThreadCount 计数 Apache Zeppelin 服务器使用的实时线程总数。 jvm_threads_live_threads
zeppelinWaitingJobs 计数 排队等待线程的 Apache Zeppelin 任务数量。 jetty_threads_jobs
zeppelinServerUptime 服务器启动和运行的总时间。 process_uptime_seconds