Я пытаюсь подключить Sentry к нашему кластеру Flink, чтобы отслеживать выполнение задания. Sentry действует как регистратор, который захватывает сообщения и отправляет их на центральный сервер. По умолчанию он захватывает все сообщения с уровнем WARN или выше.
Чтобы Sentry мог уловить все проблемы, мне нужно написать сообщение журнала WARN или ERROR всякий раз, когда оператор вызывает необработанное исключение. Если стратегия перезапуска не удалась, метод execute()
в среде выполнения сгенерирует последнее исключение, которое я могу зарегистрировать соответствующим образом. Но я еще не нашел способ регистрировать исключения, которые вызывают перезапуск задания. Flink регистрирует их как сообщения INFO, но это затрудняет их фильтрацию из остальных.
Как правильно обрабатывать необработанные исключения в заданиях Flink?