本文介绍监控告警与日志中的常见问题。
Datastream作业TM日志中抛NullPointerException如果没有详细错误栈怎么办?
在
页面,单击目标作业名称后,在部署详情页签的运行参数配置区域的其他配置中,添加如下代码。env.java.opts: "-XX:-OmitStackTraceInFastThrow"
如何针对单个Class设置日志级别参数?
例如,设置Kafka Connector相关的log4j.logger.org.apache.kafka.clients.consumer=trace(源表)和log4j.logger.org.apache.kafka.clients.producer=trace(结果表)参数时,需要在Log Levels中配置,不能在其他配置中配置。
如何开启实时计算Flink版GC日志参数?
在
页面,单击目标作业名称后,在部署详情页签的运行参数配置区域的其他配置中,添加如下代码。env.java.opts: >-
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/flink/log/gc.log
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=2 -XX:GCLogFileSize=50M
Datastream作业无延迟、输出曲线,应该如何处理?
问题详情
源表有源源不断的数据进入Flink,Kafka物理表每个Partition也是有源源不断的数据的情况下,Datastream作业Kafka Source CurrentEmitEventTimeLag和CurrentFetchEventTimeLag显示作业延迟为52年。
问题原因
Datastream中Kafka Connector依赖是社区的Connector,不是Ververica内置的Connector。社区Connector是没有实现曲线汇报逻辑的,所以输入输出延迟等曲线显示异常。
解决方案
使用Ververica Connector依赖,详情请参见ververica maven仓库。
如何解决非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'
。
配置日志到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等)进行了修改。
解决方案
参考配置作业日志输出重新进行配置,根据实际情况对表格中说明的参数进行修改。
云监控告警相对ARMS有哪些不足?
不支持查询分析语法。
目前只能查看当前作业曲线,而无法查看历史作业曲线,这将不利于进行多轮调优对比RPS效果。
无法查看subtask粒度的曲线,多Source、多subtask的场景下,无法直观快速定位聚类后的延迟问题。
目前无法查看用户代码内部埋点上报的指标,这可能会对问题排查造成不便。