Как наилучшим образом отслеживать действия пользователей, если админка (фронт на js) отправляет запросы на разные независимые сервисы (backend java), и логирование на каждом сервисе не является приемлемым вариантом?
Насколько логичным будет, если фронт будет дублировать тело запроса в мой сервис?
Everything_is_not_so_bad, на счет фронта ничего не знаю, сможет ли фронт логировать и отправлять метрики в эластик, но обычно метрики собирается на стороне бэка
Кажется я не правильно задал вопрос, суть вопроса: Не будет ли топорным решением если фронт будет дублировать тело запроса в мой сервис для логирования?
vitya_brodov, Вот по мне, по хорошему, логи нужно сыпать только в одно место, особенно из приложения.
Ибо, приложение не должно зависеть от кучи сторонних сервисов, особенно, если они "вторичные".
Еще лучше - реализовать на уровне приложения метрики в формате prometheus, и забирать их сторонним сервисом, тем более для явы(котлина) куча библиотек для этого - https://docs.spring.io/spring-boot/docs/2.1.13.REL...
На почитать https://habr.com/ru/articles/548700/
Что касается логов, то их тоже лучшее складывать в файло и разбирать тем, чем я ниписал в ответе.
Не нужно нагружать приложение дополнительной работой, оно-ж не ради логов. Хотя, если log4j, то он куда угодно посылать может...
Я бы добавил API Gateway и через него пропускал все запросы. В нём можно централизованно настроить журналирование, аутентификацию, распределение нагрузки, действия на случай если некоторые сервисы недоступны.
Можно сделать свой на базе Spring Cloud Gateway или ещё чего-нибудь. Можно взять готовый типа KrakenD.