Наше приложение использует сервер java/sql. У нас есть задания ETL (около 35 для разных восходящих потоков), использующие спринт-пакет. Часть кода находится в Java, а часть в базе данных. Мы хотим отслеживать жизненный цикл задания из базы данных. Например. когда началось задание, когда был вызван конкретный компонент, когда был вызван метод / хранимая процедура и сколько времени это заняло. Цель состоит в том, чтобы проверить работоспособность того, какой компонент занимает больше времени, и в случае, если какая-то хранимая процедура занимает много времени в производстве, мы должны иметь возможность запрашивать базу данных. Более того, мы также хотим хранить промежуточные вычисления для аудита и отладки.
Это отслеживание времени и промежуточные вычисления будут храниться помимо обычного ведения журнала приложений.
Текущее решение, которое мы реализовали, — это нормализованные таблицы в базе данных (например, задание, задача, статус и т. д.), для которых у нас есть оболочка хранимой процедуры, а также классы java для вызова этих хранимых процедур.
Мы не переделываем наше приложение, поэтому хотели проверить, как лучше всего отслеживать такую информацию. АОП? но я считаю, что обычно это требуется до и после, а как насчет промежуточных вычислений, которые мы хотим сохранить?
Наш текущий подход работает, но он загромождает код, поскольку метод выполняет регистрацию и аудит вместо того, чтобы просто сосредоточиться на основной логике.