我正试图在我们的flink集群上设置岗哨来追踪任务执行情况。哨兵充当记录器,捕获消息并将其发送到中央服务器。默认情况下,它捕获级别为warn或更高的所有消息。
为了让sentry捕获所有问题,每当操作符引发未捕获的异常时,我需要编写警告或错误日志消息。如果重启策略失败,则 execute()
执行环境中的方法将抛出最后一个异常,我可以适当地记录该异常。但是我还没有找到一种方法来记录导致作业重新启动的异常。flink将它们作为信息消息记录,但这使得它们很难从其他消息中过滤出来。
处理flink作业中未捕获异常的适当方法是什么?
1条答案
按热度按时间laawzig21#
从flink的Angular 来看,用户代码错误是意料之中的,因此,flink不会登录它们
WARN
或者ERROR
.WARN
以及ERROR
保留用于记录表明flink本身有问题的语句。捕获任务失败的最佳选择是grep
<TASK_NAME> switched from RUNNING to FAILED
. 这样你就会随时得到通知<TASK_NAME>
失败。但是,请注意,不能保证logging语句永远不会更改。