如何在flink作业执行期间记录未捕获的异常

pod7payv  于 2021-06-24  发布在  Flink
关注(0)|答案(1)|浏览(589)

我正试图在我们的flink集群上设置岗哨来追踪任务执行情况。哨兵充当记录器,捕获消息并将其发送到中央服务器。默认情况下,它捕获级别为warn或更高的所有消息。
为了让sentry捕获所有问题,每当操作符引发未捕获的异常时,我需要编写警告或错误日志消息。如果重启策略失败,则 execute() 执行环境中的方法将抛出最后一个异常,我可以适当地记录该异常。但是我还没有找到一种方法来记录导致作业重新启动的异常。flink将它们作为信息消息记录,但这使得它们很难从其他消息中过滤出来。
处理flink作业中未捕获异常的适当方法是什么?

laawzig2

laawzig21#

从flink的Angular 来看,用户代码错误是意料之中的,因此,flink不会登录它们 WARN 或者 ERROR . WARN 以及 ERROR 保留用于记录表明flink本身有问题的语句。
捕获任务失败的最佳选择是grep <TASK_NAME> switched from RUNNING to FAILED . 这样你就会随时得到通知 <TASK_NAME> 失败。但是,请注意,不能保证logging语句永远不会更改。

相关问题