У нашей команды есть ряд процессов, которые мы запускаем вручную, но которые могут выполняться в течение многих дней. Процессы делают разные вещи для большого количества объектов (веб-страниц, строк базы данных, изображений, файлов и т. Д.). Очевидно, что время от времени возникают сбои, и мы должны спроектировать или процессы, чтобы изящно обрабатывать эти сбои и двигаться дальше, чтобы не свалить всю работу.
В зависимости от конкретного рассматриваемого процесса, частота, серьезность и срочность сбоев варьируются. В некоторых случаях мы отправляем электронные письма, когда возникает редкая, но важная ошибка, в других случаях мы просто регистрируем ее и продолжаем, и так далее.
Проблема в том, что у нас разный код обработки ошибок, разбросанный повсюду, и чаще, чем когда мы «регистрируем его и движемся дальше», никто никогда не возвращается и не читает журналы, поэтому никто никогда не знает, какие проблемы возникли. Мы не можем по умолчанию отправлять электронные письма для всех проблем, потому что просто было бы слишком много писем.
Это длительные процессы, но не демоны, где что-то вроде SNMP или Nagios может показаться подходящим. Конечно, это довольно распространенная проблема, но я не могу найти много решений в Интернете. Я слышал, как люди говорили об использовании log4j (или других подобных пакетов журналов) для входа в базу данных и т. Д., Что может показаться шагом в правильном направлении, но наверняка к настоящему времени существуют более сложные решения .. ? Я представляю себе, что ваш регистратор записывает события в базу данных, и есть веб-интерфейс, похожий на Nagios, который позволяет вам видеть, какие ошибки происходят с какими процессами в реальном времени, а также настраивать оповещения по электронной почте для определенных шаблонов и т. Д.
Существует ли что-то подобное? Если нет, то какие подходы вы использовали для успешного решения подобных проблем?
(Для чего бы то ни было, большая часть нашей кодовой базы написана на python, но я бы предположил, что любые приличные реализации этой идеи в значительной степени не специфичны для anguage, и, очевидно, любые концептуальные решения также подойдут).
Обновление: я просто потратил некоторое время, глядя на Chainsaw, что-то вроде того, что я ищу, но я бы хотел, чтобы оно было веб-приложением, а не настольным приложением, и имело функцию оповещения.
Обновление: я только что обнаружил hoptoadapp и исключительные , которые в некоторой степени совпадают с тем, о чем я думал, хотя оба ориентированы конкретно на Rails.