Как настроить Kamon для отслеживания произвольных вызовов функций
Использование Kamon в проекте Scala Play 2.6, кажется, требует play.core.server.AkkaHttpServer
отслеживаются автоматически с помощью инструментов, добавленных через аспект j.
пример
Маршрут /blogposts/
отслеживается. Но дальнейшие вызовы внутри, например, BlogPostService.getNewest и т. Д. Не являются.
Вопрос
Как распространить эту трассировку на вызовы других функций? Нужно ли создавать пролеты вручную? Или можно добавить дополнительные классы и их функции к трассировке с помощью другого механизма (конфигурации, собственных аспектов и т. Д.)?
1 ответ
Существует несколько вариантов трассировки в произвольных вызовах функций. Можно было бы использовать аспекты для переплетения в любой необходимой функциональности трассировки. Это лучше всего использовать, если у вас есть одна функция, например, исходящие запросы HTTP через WSClient
это нужно отслеживать все время. Kamon Play делает это уже для WSClient
,
Для всех других потребностей трассировки лучше всего обрабатывать трассировку так же, как ведение журнала. Да, добавление отдельных вызовов к функциональности трассировки - это дополнительная работа, но в некоторой степени ожидаемый рабочий процесс в конечном итоге приводит к логическим сегментам в трассировке без отслеживания каждого вызова функции (до гранулярного).