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

标签 logging apache-flink sentry

我正在尝试将 Sentry 附加到我们的 Flink 集群以跟踪作业执行。 Sentry 充当记录器,它捕获消息并将它们发送到中央服务器。默认情况下,它会捕获级别为 WARN 或更高的所有消息。

为了让 Sentry 捕获所有问题,每当运算符(operator)引发未捕获的异常时,我都需要编写 WARN 或 ERROR 日志消息。如果重启策略失败,execute()执行环境中的方法将抛出最终异常,我可以适当记录。但是我还没有找到一种方法来记录导致作业重新启动的异常。 Flink 将它们记录为 INFO 消息,但这使得它们难以从其余消息中过滤。

在 Flink 作业中处理未捕获异常的适当方法是什么?

最佳答案

从 Flink 的角度来看,用户代码错误是意料之中的,因此 Flink 不会将它们记录在 WARN 上。或 ERROR . WARNERROR保留用于表明 Flink 本身有问题的日志语句。

捕获任务失败的最佳选择是 grep for <TASK_NAME> switched from RUNNING to FAILED .这样你就会在 <TASK_NAME> 时收到通知失败的。但是请注意,不能保证日志语句永远不会改变。

关于logging - 如何在 Flink 作业执行期间记录未捕获的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50123767/

相关文章:

php - PHP error_log 函数能否在缓冲区内生成 fatal error ?

java - Apache Flink 测试中是否有像 Reactor 和 RxJava 中那样的虚拟时间概念

django - 排除 Django 中的一些 URL 以进行 Sentry 性能跟踪

javascript - 从获取中捕获403而没有控制台错误

sentry - raven - sentry + django = 没有配置服务器,也没有安装 sentry。无法发送信息

amazon-web-services - 如果应用程序重启,如何将日志保留在AWS中?

c# - Azure 自定义日志记录

logging - 理解kafka log.dirs

apache-flink - ProcessWindowFunction 中的 Apache Flink 状态

java - Flink Tumble Window 触发时间