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 限制(以 CPU/秒为单位) 该 |
containerMemoryUtilization |
百分比 | Flink 应用程序集群中任务管理器容器中内存利用率的总体百分比。例如,如果有五个任务管理器,则相应地有五个 TaskManager 容器,而适用于 Apache Flink 的托管服务每 1 分钟报告间隔就会发布 2 * 5 个该指标的样本。 | 应用程序 | 每个容器的计算公式为: 容器内存使用量(字节)* 100 /容器内存限制(按照 Pod 部署规范)(以字节为单位)
|
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 状态后端,也可供应用程序使用。该 |
managedMemoryUtilization* |
百分比 | 派生自 managedMemoryUsed/managedMemoryTotal | 应用程序、运算符、任务、并行度 | *仅适用于运行 Flink 版本 1.13 的 Managed Service for Apache Flink 应用程序。 这与 Flink 在 Java 堆之外托管的内存有关。它用于 RocksDB 状态后端,也可供应用程序使用。 |
numberOfFailedCheckpoints |
计数 | 检查点失败的次数。 | 应用程序 | 您可以使用此指标来监控应用程序的运行状况和进度。检查点可能由于应用程序问题(例如吞吐量或权限问题)而失败。 |
numRecordsIn* |
计数 | 该应用程序、运算符或任务收到的总记录数。 | 应用程序、运算符、任务、并行度 | *要在一段时间(秒/分钟)内应用 SUM 统计数据,请执行以下操作:
该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务收到的记录总数。 |
numRecordsInPerSecond* |
计数/秒 | 该应用程序、运算符或任务每秒收到的总记录数。 | 应用程序、运算符、任务、并行度 | *要在一段时间(秒/分钟)内应用 SUM 统计数据,请执行以下操作:
该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务每秒收到的记录总数。 |
numRecordsOut* |
计数 | 该应用程序、运算符或任务发出的总记录数。 | 应用程序、运算符、任务、并行度 |
*要在一段时间(秒/分钟)内应用 SUM 统计数据,请执行以下操作:
该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务发出的记录总数。 |
numLateRecordsDropped* |
计数 | 应用程序、运算符、任务、并行度 | *要在一段时间(秒/分钟)内应用 SUM 统计数据,请执行以下操作:
由于到达延迟,该操作符或任务丢弃的记录数。 |
|
numRecordsOutPerSecond* |
计数/秒 | 该应用程序、运算符或任务每秒发出的总记录数。 | 应用程序、运算符、任务、并行度 |
*要在一段时间(秒/分钟)内应用 SUM 统计数据,请执行以下操作:
该指标的级别指定该指标是衡量整个应用程序、特定运算符还是特定任务每秒发出的记录总数。 |
oldGenerationGCCount |
计数 | 所有任务管理器中发生的旧垃圾回收操作总数。 | 应用程序 | |
oldGenerationGCTime |
毫秒 | 执行旧垃圾回收操作所花费的总时间。 | 应用程序 | 您可以使用此指标来监控垃圾回收的总时间、平均时间和最大时间。 |
threadCount |
计数 | 应用程序使用的实时线程总数。 | 应用程序 | 该指标衡量应用程序代码使用的线程数。这与应用程序并行度不同。 |
uptime |
毫秒 | 任务不间断运行的时间。 | 应用程序 | 您可以使用此指标来确定任务是否成功运行。该指标为完成的任务返回 -1。 |
KPUs* |
计数 | 应用程序使用的 KPU 总数。 | 应用程序 | *此指标在每个账单周期(一小时)接收一个样本。要可视化一段时间内的 KPU 数量,请在至少一 (1) 小时内使用 MAX 或 AVG。 KPU 计数包括 |
Kinesis Data Streams 连接器指标
Amazon 除以下内容外,还会发出 Kinesis Data Streams 的所有记录:
指标 | 单位 | 描述 | 级别 | 使用说明 |
---|---|---|---|---|
millisbehindLatest |
毫秒 | 使用者落后流开头的毫秒数,表示使用者落后当前时间有多远。 | 应用程序(对于 Stream)、并行度(适用于) ShardId |
|
bytesRequestedPerFetch |
字节 | 在一次 getRecords 调用中请求的字节数。 |
应用程序(对于 Stream)、并行度(适用于) ShardId |
亚马逊 MSK 连接器指标
Amazon 除以下内容外,还会发出 Amazon MSK 的所有记录:
指标 | 单位 | 描述 | 级别 | 使用说明 |
---|---|---|---|---|
currentoffsets |
不适用 | 使用者的当前读取偏移量(对于每个分区)。可以按主题名称和分区 ID 来指定特定分区的指标。 | 应用程序(用于主题)、并行度(用于) PartitionId | |
commitsFailed |
不适用 | 如果启用了偏移提交和检查点功能,则向 Kafka 提交偏移失败的总数。 | 应用程序、运算符、任务、并行度 | 将偏移量提交回 Kafka 只是显示使用者进度的一种手段,因此提交失败不会影响 Flink 的检查点分区偏移量的完整性。 |
commitsSucceeded |
不适用 | 如果启用了偏移提交和检查点功能,则向 Kafka 提交偏移成功的总数。 | 应用程序、运算符、任务、并行度 | |
committedoffsets |
不适用 | 上次成功提交的 Kafka 偏移量(对于每个分区)。可以按主题名称和分区 ID 来指定特定分区的指标。 | 应用程序(用于主题)、并行度(用于) PartitionId | |
records_lag_max |
计数 | 最大延迟,以该窗口中的任何分区的记录数表示 | 应用程序、运算符、任务、并行度 | |
bytes_consumed_rate |
字节 | 主题平均每秒使用的字节数 | 应用程序、运算符、任务、并行度 |
Apache 齐柏林飞艇指标
对于 Studio 笔记本电脑,会在应用程序级别 Amazon 发出以下指标:KPUs
cpuUtilization
、heapMemoryUtilization
、、oldGenerationGCTime
oldGenerationGCCount
、和threadCount
。此外,它还会在应用程序级别发布下表所示的指标。
指标 | 单位 | 描述 | Prometheus 名称 |
---|---|---|---|
zeppelinCpuUtilization |
百分比 | Apache Zeppelin 服务器中 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 |
查看 CloudWatch 指标
您可以使用 Amazon CloudWatch 控制台或查看应用程序的 CloudWatch 指标 Amazon CLI。
使用 CloudWatch 控制台查看指标
打开 CloudWatch 控制台,网址为 https://console.aws.amazon.com/cloudwatch/
。 -
在导航窗格中,选择指标。
-
在 Apache Flink 托管服务的 “按类别划分的CloudWatch 指标” 窗格中,选择一个指标类别。
-
在上方窗格中,滚动以查看完整指标列表。
要查看指标,请使用 Amazon CLI
-
在命令提示符处,使用以下命令。
aws cloudwatch list-metrics --namespace "AWS/KinesisAnalytics" --region
region
设置 CloudWatch 指标报告级别
您可以控制应用程序创建的应用程序指标的级别。Managed Service for Apache Flink 支持以下指标级别:
-
应用程序:应用程序仅报告每个应用程序的最高指标级别。默认情况下,Managed Service for Apache Flink 指标是在应用程序级别发布的。
-
任务:应用程序针对任务指标报告级别定义的指标,报告特定于任务的指标维度,例如每秒进出应用程序的记录数。
-
运算符:应用程序针对运算符指标报告级别定义的指标,报告特定于运算符的指标维度,例如每个筛选或映射操作的指标。
-
并行度:应用程序为每个执行线程报告
Task
和Operator
级别的指标。由于成本过高,建议不要将该报告级别用于并行度设置高于 64 的应用程序。注意
由于服务生成的指标数据量很大,因此您只能使用此指标级别进行故障排除。您只能使用 CLI 设置此指标级别。此指标级别在控制台中不可用。
默认级别是应用程序。应用程序报告当前级别和所有更高级别的指标。例如,如果报告级别设置为操作符,则应用程序报告应用程序、任务和操作符指标。
您可以使用操作的参数或CreateApplication
操作的MonitoringConfiguration
参数来设置 CloudWatch 指标报告级别。MonitoringConfigurationUpdate
UpdateApplication
以下示例UpdateApplication
操作请求将 CloudWatch 指标报告级别设置为 “任务”:
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "MetricsLevelUpdate": "TASK" } } } }
您也可以使用CreateApplication
操作的LogLevel
参数或UpdateApplication
操作的LogLevelUpdate
参数来配置日志记录级别。您可以使用以下日志级别:
-
ERROR
:记录潜在可恢复的错误事件。 -
WARN
:记录可能导致错误的警告事件。 -
INFO
:记录信息性事件。 -
DEBUG
:记录常规调试事件。
有关 Log4j 日志记录级别的更多信息,请参阅 Apache Log4j