查看 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 Analytics 向 Amazon 报告以下指标和维度。CloudWatch.

应用程序指标

指标 Unit 说明 Level 使用说明
downtime 毫秒 对于当前处于故障/恢复状态的作业,在该中断期间经过的时间。 应用程序 该指标测量作业发生故障或恢复时经过的时间。该指标为运行的作业返回 0,并为完成的作业返回 -1。如果该指标不是 0 或 -1,则表明应用程序的 Apache Flink 作业无法运行。
uptime 毫秒 作业无间断运行的时间。 应用程序 您可以使用该指标确定作业是否成功运行。已完成的作业,此指标返回 -1。
fullRestarts 计数 自提交以来,此作业已完全重新启动的总次数。此指标不衡量细粒度的重启。 应用程序 您可以使用此指标来评估一般应用程序运行状况。Kinesis Data Analytics 可能会在内部维护期间重启。重新启动比正常时间更高可能表示应用程序出现问题。
numberOfFailedCheckpoints 计数 检查点失败的次数。 应用程序 您可以使用此指标来监控应用程序运行状况和进度。检查点可能会因应用程序问题(例如吞吐量或权限问题)而失败。
lastCheckpointDuration 毫秒 完成上一个检查点所花的时间 应用程序 该指标测量完成最近的检查点所花的时间。如果该指标的值不断增加,则可能表明应用程序出现问题,例如内存泄漏或瓶颈。在某些情况下,您可以禁用检查点以解决该问题。
lastCheckpointSize 字节 上一个检查点的总大小 应用程序 您可以使用该指标确定运行的应用程序存储使用率。

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

cpuUtilization 百分比 任务管理器的 CPU 使用百分率总体百分率。例如,如果有五个任务管理器,Kinesis Data Analytics 将在每个报告间隔内发布 5 个此指标的样本。 应用程序 您可以使用此指标来监控应用程序中的最低、平均和最大 CPU 利用率。
heapMemoryUtilization 百分比 任务管理器的整体堆内存利用率。例如,如果有五个任务管理器,Kinesis Data Analytics 将在每个报告间隔内发布 5 个此指标的样本。 应用程序 您可以使用此指标监控应用程序中的最低、平均和最大堆内存利用率。使用以下公式为所有任务管理器计算该值:
(Heap.Used / Heap.Committed)
oldGenerationGCTime 毫秒 执行旧垃圾收集操作所花费的总时间。 应用程序 您可以使用此指标来监控总和、平均和最长垃圾回收时间。
oldGenerationGCCount 计数 所有任务管理器中发生的旧垃圾回收操作的总数。 应用程序
threadCount 计数 应用程序使用的实时线程总数。 应用程序 该指标用于衡量应用程序代码使用的线程数。这与应用程序并行性不一样。
numRecordsIn 计数 该应用程序、操作符或任务收到的总记录数。 应用程序、操作员、任务、并行性 指标的级别指定此指标是衡量整个应用程序、特定操作员还是特定任务已收到的记录总数。
numRecordsInPerSecond 计数/秒 该应用程序、操作符或任务每秒收到的总记录数。 应用程序、操作员、任务、并行性 指标的级别指定此指标是衡量整个应用程序、特定操作员还是特定任务每秒收到的总记录数。
numRecordsOut 计数 该应用程序、操作符或任务发出的总记录数。 应用程序、操作员、任务、并行性 指标的级别指定此指标是衡量整个应用程序、特定操作员还是特定任务发出的记录总数。
numRecordsOutPerSecond 计数/秒 该应用程序、操作符或任务每秒发出的总记录数。 应用程序、操作员、任务、并行性 指标的级别指定此指标是衡量整个应用程序、特定操作员还是特定任务每秒发出的总记录数。
numLateRecordsDropped 计数 由于到达延迟,该操作符或任务丢弃的记录数。 应用程序、操作员、任务、并行性
currentInputWatermark 毫秒 此应用程序/操作员/任务/线程收到的最后一个水印 应用程序、操作员、任务、并行性 仅为具有两个输入的维度发出此记录。这是上次收到的水印的最小值。
currentOutputWatermark 毫秒 此应用程序/操作员/任务/线程发出的最后一个水印 应用程序、操作员、任务、并行性
managedMemoryUsed* 字节 当前使用的托管内存量。 应用程序、操作员、任务、并行性

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

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

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

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

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

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

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

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

idleTimeMsPerSecond* 毫秒 此任务或操作员每秒处于空闲状态(没有要处理的数据)的时间(以毫秒为单位)。空闲时间不包括回压时间,因此如果任务受到回压,则不会空闲。 任务、操作符、并行度

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

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

backPressuredTimeMsPerSecond* 毫秒 此任务或操作员每秒受回压的时间(以毫秒为单位)。 任务、操作符、并行度

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

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

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

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

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

Kinesis Data Streams 连接器指标

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

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

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

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

Amazon MSK 连接器指标

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

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

Apache Zeppelin 指标

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

指标 Unit 说明 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

查看 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 指标报告级别

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

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

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

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

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

    注意

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

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

你设置了CloudWatch指标报告级别使用MonitoringConfiguration的参数CreateApplication操作,或者MonitoringConfigurationUpdate的参数UpdateApplicationaction. UpdateApplication 操作的以下示例请求将 CloudWatch 指标报告级别设置为任务

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

您还可以使用LogLevel的参数CreateApplication操作或LogLevelUpdate的参数UpdateApplicationaction. 您可以使用以下日志级别:

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

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

  • INFO:记录信息性事件。

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

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