Доброго всем времени суток! Имеется любое Laravel веб-приложение и в них происходит запись в БД, в файлы, их преобразование, выдача клиенту и т.д. Чтобы через неделю увидеть как обрабатывался тот или иной объект или почему не произошла запись в файл можно настроить логирование перед каждой строкой. Но процесс этот достаточно трудоемкий и практически не имеет смысла, так как такая настройка занимает достаточно много времени и сил, в некоторых случаях проще смириться с неточностью работы системы, чем ее отладить. При чем ошибок никаких не происходит, просто в каких-то местах логика может отрабатывать не так, как было задумано.
Как же все таки настроить мониторинг состояния системы и, в случае необходимости, просмотреть весь путь обработки любого взятого объекта или вызов функции? Может быть есть уже какие-то готовые решения?
P.S. Смотрел решение sentry.io, но оно не решает проблему, так как логируются только ошибки. Если не так, то прошу указать, куда смотреть.
Заранее благодарен всем за ответы!
Оказывается, есть стандартный пакет Laravel Telescope. Записывается вообще все, в рекомендации даже написано, чтобы очищать БД от переполнения хотя бы раз в день (все зависит от того на сколько большой проект).
Собственно здесь возникает проблема масштабирования, о которой я неявно упомянул. Представьте, что у нас уже работающая система, в которой сотник бизнес-процессов, работающих при разных запросах с тысячами объектов. Тут понятное дело, что для реквестов можно так сделать, для операций с объектами использовать Event'ы и Listener'ы. Но опять же получается либо мы вручную на все навешиваем либо пишем динамическое решение. Например, в строготипизированных компилированных языках имеется дебаг, который будет показывать состояние в любой момент времени, здесь он отчасти такой же имеется, если поискать. Но это, если real-time, а требуется решение, которые как в лог этот весь дебаг запишет и в веб-интерфейсе покажет.
Простой пример процесса:
1. Приходит реквест.
2. Из него создаются 3 объекта в БД.
3. Генерируется 4 объекта уведомлений.
4. Записывается состояние.
5. Генерируется объект ответа.