查看 Kinesis Data Analytics 指标和维度 - Amazon Kinesis Data Analytics
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

查看 Kinesis Data Analytics 指标和维度

在适用于 Apache Flink 的 Kinesis Data Analytics 应用程序处理数据源时,Kinesis Data Analts Antalyts 向Apache Flink 应用程序处理数据源时 CloudWatch.

应用程序指标

重要

containerCPUUtilizationcontainerMemoryUtilizationcontainerDiskUtilization是新的指标,将在 CloudWatch 应用程序重新启动或更新之后。

指标 Unit 描述 Level 使用说明
backPressuredTimeMsPerSecond* 毫秒 此任务或操作员每秒回压的时间(以毫秒为单位)。 任务、操作符、并行度

*适用于运行 Flink 1.13 的 KDA 应用程序。

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

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

*适用于运行 Flink 1.13 的 KDA 应用程序。

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

cpuUtilization 百分比 任务管理器的 CPU 使用百分率。例如,如果有五个任务管理器,Kinesis Data Analytics 会在每个报告间隔发布此指标的五个样本。 应用程序 您可以使用此指标来监视应用程序中的最低、平均和最大 CPU 使用率。
containerCPUUtilization 百分比 Flink 应用程序集群中任务管理器容器的 CPU 使用率总体百分比。例如,如果有五个任务管理器,则相应地有五个 TaskManager 容器和 Kinesis Data Analytics 每 1 分钟报告间隔发布此指标的 2 * 5 个样本。 应用程序

每个容器的计算公式为:

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

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

containerMemoryUtilization 百分比 Flink 应用程序集群中任务管理器容器的总体内存使用百分比。例如,如果有五个任务管理器,则相应地有五个 TaskManager 容器和 Kinesis Data Analytics 每 1 分钟报告间隔发布此指标的 2 * 5 个样本。 应用程序

每个容器的计算公式为:

容器内存使用量(字节)* 100 /根据 pod 部署规范的容器内存限制(以字节为单位)

这些区域有:HeapMemoryUtilizationManagedMemoryUtilzations指标仅考虑特定的内存指标,如堆内存使用量 TaskManager JVM 或托管内存(本机进程在 JVM 之外的内存使用情况,如Rocksdb 状态后端)。这些区域有:containerMemoryUtilizationmetric 通过包含工作集内存为您提供更全面的画面,这是内存总耗尽的更好跟踪器。精疲力尽后,它会导致Out of Memory Error(对于 ) TaskManager Pod。

containerDiskUtilization 百分比 Flink 应用程序集群中任务管理器容器中磁盘利用率的总体百分比。例如,如果有五个任务管理器,则相应地有五个 TaskManager 容器和 Kinesis Data Analytics 每 1 分钟报告间隔发布此指标的 2 * 5 个样本。 应用程序

每个容器的计算公式为:

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

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

currentInputWatermark 毫秒 此应用程序/操作员/任务/线程收到的最后一个水印 应用程序、操作员、任务、并行度 仅为具有两个输入的维度发出该记录。这是上次收到的水印的最小值。
currentOutputWatermark 毫秒 此应用程序/操作员/任务/线程发出的最后一个水印 应用程序、操作员、任务、并行度
downtime 毫秒 对于当前处于故障/恢复状态的作业,在该中断期间经过的时间。 应用程序 该指标测量作业发生故障或恢复时经过的时间。该指标为运行的作业返回 0,并为完成的作业返回 -1。如果该指标不是 0 或 -1,则表明应用程序的 Apache Flink 作业无法运行。
fullRestarts 计数 此作业自提交以来完全重新启动的总次数。此指标不衡量精细的重启。 应用程序 您可以使用此指标来评估一般应用程序的运行状况。在 Kinesis Data Analytics 的内部维护期间,可能会重新启动。重新启动的频率可能表示应用程序出现问题。
heapMemoryUtilization 百分比 任务管理器中的整体堆内存利用率。例如,如果有五个任务管理器,Kinesis Data Analytics 会在每个报告间隔发布此指标的五个样本。 应用程序 您可以使用此指标来监视应用程序中的最小、平均和最大堆内存利用率。使用以下公式为所有任务管理器计算该值:
(Heap.Used / Heap.Committed)
idleTimeMsPerSecond* 毫秒 此任务或运算符每秒空闲(没有要处理的数据)的时间(以毫秒为单位)。空闲时间不包括向后加压时间,因此,如果任务受到回压,则不会处于空闲状态。 任务、操作符、并行度

*适用于运行 Flink 1.13 的 KDA 应用程序。

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

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

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

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

*适用于运行 Flink 1.13 的 KDA 应用程序。

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

managedMemoryTotal* 字节 托管内存的总量。 应用程序、操作员、任务、并行度

*适用于运行 Flink 1.13 的 KDA 应用程序。

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

managedMemoryUtilization* 百分比 派生 managedMemoryUsed/managedMemoryTotal 应用程序、操作员、任务、并行度

*适用于运行 Flink 1.13 的 KDA 应用程序。

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

numberOfFailedCheckpoints 计数 检查点操作失败的次数。 应用程序 您可以使用此指标来监视应用程序的运行状况和进度。检查点可能由于应用程序问题(例如吞吐量或权限问题)而失败。
numRecordsIn 计数 该应用程序、操作符或任务收到的总记录数。 应用程序、操作员、任务、并行度 度量的级别指定此指标是衡量整个应用程序、特定操作员还是特定任务已收到的记录总数。
numRecordsInPerSecond 计数/秒 该应用程序、操作符或任务每秒收到的总记录数。 应用程序、操作员、任务、并行度 度量的 “级别” 指定此指标是否衡量整个应用程序、特定操作员或特定任务每秒收到的记录总数。
numRecordsOut 计数 该应用程序、操作符或任务发出的总记录数。 应用程序、操作员、任务、并行度 该指标的 “级别” 指定此指标是否衡量整个应用程序、特定操作员或特定任务发出的记录总数。
numLateRecordsDropped 计数 由于到达延迟,该操作符或任务丢弃的记录数。 应用程序、操作员、任务、并行度
numRecordsOutPerSecond 计数/秒 该应用程序、操作符或任务每秒发出的总记录数。 应用程序、操作员、任务、并行度 该指标的 “级别” 指定此指标是否衡量整个应用程序、特定操作员或特定任务每秒发出的记录总数。
oldGenerationGCCount 计数 所有任务管理器中发生的旧垃圾回收操作的总数。 应用程序
oldGenerationGCTime 毫秒 执行旧的垃圾回收操作所花费的总时间。 应用程序 您可以使用此度量来监视垃圾回收时间的总和、平均和最大值。
threadCount 计数 应用程序使用的活动线程总数。 应用程序 该指标用于测量应用程序代码使用的线程的数目。这与应用程序并行度不同。
uptime 毫秒 作业无中断运行的时间。 应用程序 您可以使用该指标确定作业是否成功运行。此指标为完成的作业返回 -1。

Kinesis Data Streams

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

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

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

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

Amazon MSK 连接器指标

Amazon除了以下内容以外,还发出亚马逊 MSK 的所有记录:

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

Apache Zeppelelelin 指标

对于 Studio 笔记本Amazon在应用程序级别发出以下指标:KPUscpuUtilizationheapMemoryUtilizationoldGenerationGCTimeoldGenerationGCCount, 和threadCount. 此外,它还会在应用程序级别发出下表中显示的指标。

指标 Unit 描述 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 指标

您可以查看 CloudWatch 使用Amazon 应用程序的指标 CloudWatch 控制台或Amazon CLI.

使用 查看指标 CloudWatch 控制台

  1. 打开 CloudWatch 控制台https://console.aws.amazon.com/cloudwatch/.

  2. 在导航窗格中,选择 Metrics(指标)。

  3. CloudWatch 按类别划分指标” 窗格中 Amazon Kinesis Data Analytics 请选择指标类别。

  4. 在上方窗格中,滚动以查看完整指标列表。

使用 Amazon CLI 查看指标

  • 在命令提示符处,使用以下命令。

    aws cloudwatch list-metrics --namespace "AWS/KinesisAnalytics" --region region

设置 CloudWatch 指标报告级别

您可以控制应用程序创建的应用程序指标的级别。Kinesis Data Analytics for Apache Flink 支持以下指标级别:

  • 应用程序:应用程序仅报告每个应用程序的最高指标级别。默认情况下,Kinesis Data Analytics 指标在应用程序级别发布。

  • 任务:应用程序报告任务特定的指标的指标维度(例如,每秒在应用程序中传入和传出的记录数)。

  • 运算符: 应用程序报告操作符指标报告级别定义的指标的操作符特定指标维度,例如,每个筛选或映射操作的指标。

  • 并行度:该应用程序报告TaskOperator每个执行线程的级别的指标。由于成本过高,建议不要将该报告级别用于并行度设置高于 64 的应用程序。

    注意

    由于服务生成的度量数据量很大,您只能使用此度量级别进行故障排除。您只能使用 CLI 设置此指标级别。在控制台中不提供此指标等级。

默认级别是应用程序。应用程序报告当前级别和所有更高级别的指标。例如,如果报告级别设置为操作符,则应用程序报告应用程序任务操作符指标。

你设置了 CloudWatch 指标报告级别使用MonitoringConfigurationParameterCreateApplication动作,或者MonitoringConfigurationUpdateParameterUpdateApplicationaction. 以下示例请求UpdateApplication动作设置 CloudWatch 指标报告级别为任务

{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 4, "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "MetricsLevelUpdate": "TASK" } } } }

您还可以使用配置日志记录级别LogLevelParameterCreateApplication动作或LogLevelUpdateParameterUpdateApplicationaction. 您可以使用以下日志级别:

  • ERROR:记录潜在可恢复的错误事件。

  • WARN:记录可能导致错误的警告事件。

  • INFO:记录信息性事件。

  • DEBUG:记录常规调试事件。

有关 Log4j 日志记录级别的更多信息,请参阅。自定义日志级别中的Apache Log4j文档中)。