监控告警与日志问题

更新时间:2025-02-13 02:59:34

本文介绍监控告警与日志中的常见问题。

如何确认工作空间使用的监控服务类型?

监控服务类型是您在开通工作空间时进行选择。开通后,在运维中心 > 作业运维页面,单击目标作业名称,如果存在告警配置页签,则工作空间使用的是按量付费 Prometheus 监控服务(ARMS)监控服务类型,不存在则使用的是免费监控服务(云监控)类型。不同类型的监控告警配置操作详情请参见作业监控告警

image

云监控告警相对ARMS有哪些不足?

  • 不支持查询分析语法。

  • 目前只能查看当前作业曲线,而无法查看历史作业曲线,这将不利于进行多轮调优对比RPS效果。

  • 无法查看subtask粒度的曲线,多Source、多subtask的场景下,无法直观快速定位聚类后的延迟问题。

  • 目前无法查看用户代码内部埋点上报的指标,这可能会对问题排查造成不便。

如何配置或添加告警联系人?

使用云监控服务或在ARMS控制台配置告警时,请在对应控制台进行配置或添加联系人。告警配置详情请参见配置监控告警

工作空间使用ARMS监控服务时,且直接在实时计算开发控制台对单个作业配置指标或作业失败告警时,配置或添加告警联系人具体方法如下。

  1. 进入告警配置入口。

    1. 登录实时计算管理控制台,单击目标工作空间操作列下的控制台

    2. 运维中心 > 作业运维页面,单击目标作业名称。

    3. 单击告警配置页签。

  2. 告警规则页签,选择添加告警规则 > 自定义规则,进入创建规则面板。

  3. 配置或添加告警联系人。

    • 添加

      单击通知对象参数后面的通知对象管理,添加联系人、钉钉机器人等。钉钉机器人告警、新建Webhook以及飞书机器人告警具体配置方法详情请参见常见问题

      添加后,如果您使用电话方式告警,还需确保接收人电话已完成验证,否则无法生效。若联系人页签中目标联系人电话列存在未验证标识,需单击完成验证。

      image

  • 配置

    通知对象参数位置,选择您需要通知的告警联系人。如没有您想要配置的对象,您可以按照上面步骤先进行添加。

如何关闭系统开通的Prometheus监控服务?

如果您开通工作空间时监控服务选择了按量付费 Prometheus 监控服务(ARMS),则会为您自动开通ARMS服务。如果您不再需要对实时计算Flink版进行监控,您可以按照如下步骤卸载Prometheus监控服务:

重要

卸载工作空间对应的监控告警Prometheus实例,会停止采集对应工作空间的监控数据,并导致作业的监控数据曲线丢失。如果作业出现异常现象,将无法定位初始异常时间,并且无法上报监控告警,请谨慎操作。

  1. 登录Prometheus控制台

  2. 在左侧导航栏单击实例列表,进入可观测监控Prometheus版的实例列表页面。

  3. 标签筛选下拉列表中,选择目标工作空间的ID或名称。

  4. 单击实例类型Prometheus for Flink Serverless的实例对应操作列的卸载

  5. 在弹出的对话框中,单击确认

如何查找引发告警的作业?

告警事件中包含JobIDDeployment ID信息,但是由于作业Failover后导致JobID发生变化,因此您需要通过Deployment ID查找具体报错作业。您可以通过以下任何一种方式查看Deployment ID。

  • 实时计算开发控制台部署详情页签,基础配置区域查看Deployment ID信息。

    image

  • 在作业的URL中查看Deployment ID信息。

    image

如何针对单个Class设置日志级别参数?

例如,设置Kafka连接器相关的log4j.logger.org.apache.kafka.clients.consumer=trace(源表)和log4j.logger.org.apache.kafka.clients.producer=trace(结果表)参数时,需要在Log Levels中配置,不能在其他配置中配置。参数设置

如何开启GC日志参数?

运维中心 > 作业运维页面,单击目标作业名称后,在部署详情页签的运行参数配置区域的其他配置中,添加代码后保存生效,代码示例如下。

env.java.opts: >-
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/flink/log/gc.log
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=2 -XX:GCLogFileSize=50M

image

配置日志到SLS后,作业启动报错

  • 问题详情

    修改作业日志输出到SLS后,作业启动时显示作业启动失败,请重试,并报错如下:

    Unknown ApiException {exceptionType=com.ververica.platform.appmanager.controller.domain.TemplatesRenderException, exceptionMessage=Failed to render {userConfiguredLoggers={}, jobId=3fd090ea-81fc-4983-ace1-0e0e7b******, rootLoggerLogLevel=INFO, clusterName=f7dba7ec27****, deploymentId=41529785-ab12-405b-82a8-1b1d73******, namespace=flinktest-default, priorityClassName=flink-p5, deploymentName=test}}
    029999 202312121531-8SHEUBJUJU
  • 问题原因

    配置作业日志时,请确认是否将部分Twig变量(例如namespace、deploymentId等)进行了修改。

    image.png

  • 解决方案

    参考配置作业日志输出重新进行配置,根据实际情况对表格中说明的参数进行修改。

如何查看、搜索和分析Flink历史运行日志?

目前实时计算Flink版支持在实时计算开发控制台或外部存储中查看与分析历史运行日志。详情如下:

  • 在实时计算开发控制台作业日志界面查看与分析。

    您可以在部署详情页签,开启日志归档功能(默认开启)并设置日志归档有效期(默认7天,保留最近5 MB大小的运行日志)。

    image

  • 在外部存储查看与分析:

    将作业日志配置输出至外部存储(OSS、SLSKafka)后进行查看,并支持配置输出的日志级别。详情请参见配置作业日志输出

如何解决非Static方法输出不到SLS中的问题?

  • 问题详情

    由于SLS Logger Appender实现逻辑,非Static方法输出不到SLS中。

  • 解决方案

    您需要使用标准的定义方式private static final Logger LOG = LoggerFactory.getLogger(xxx.class);

数据正常写入(如Kafka能收到Flink写入的数据),但Flink任务状态总览显示数据为0?

  • 问题详情

    如果作业中只有一个节点,source没有input只有output,sink只有input没有output,在作业拓扑图中将无法看到读取和写入的数据量。

  • 解决方案

    为了能够在拓扑图中看到具体的数据流量,需要对算子进行分割。将source算子和sink算子拆分成独立的算子,分别与其他的算子进行连接,形成新的拓扑结构,在拓扑图中即可看到数据的流向和流量。

    您需要在运维中心 > 作业运维页面,单击目标作业名称,在部署详情页签运行参数配置区域的其他配置中添加分割算子的参数配置pipeline.operator-chaining: 'false'监控FAQ.png

Datastream作业无延迟、输出曲线,应该如何处理?

  • 问题详情

    源表有源源不断的数据进入Flink,Kafka物理表每个Partition也是在有源源不断的数据的情况下,Datastream作业Kafka Source CurrentEmitEventTimeLagCurrentFetchEventTimeLag显示作业延迟为52年。

  • 问题原因

    DatastreamKafka依赖是社区的连接器,不是Flink内置的连接器。社区连接器是没有实现曲线汇报逻辑的,所以输入输出延迟等曲线显示异常。

  • 解决方案

    使用Flink内置连接器的依赖,详情请参见Maven仓库

Datastream作业TM日志中抛NullPointerException如果没有详细错误栈怎么办?

运维中心 > 作业运维页面,单击目标作业名称后,在部署详情页签的运行参数配置区域的其他配置中,添加如下代码。

env.java.opts: "-XX:-OmitStackTraceInFastThrow"
  • 本页导读 (1)
  • 如何确认工作空间使用的监控服务类型?
  • 云监控告警相对ARMS有哪些不足?
  • 如何配置或添加告警联系人?
  • 如何关闭系统开通的Prometheus监控服务?
  • 如何查找引发告警的作业?
  • 如何针对单个Class设置日志级别参数?
  • 如何开启GC日志参数?
  • 配置日志到SLS后,作业启动报错
  • 如何查看、搜索和分析Flink历史运行日志?
  • 如何解决非Static方法输出不到SLS中的问题?
  • 数据正常写入(如Kafka能收到Flink写入的数据),但Flink任务状态总览显示数据为0?
  • Datastream作业无延迟、输出曲线,应该如何处理?
  • Datastream作业TM日志中抛NullPointerException如果没有详细错误栈怎么办?
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等