Как настроить Kamon для отслеживания произвольных вызовов функций

Использование Kamon в проекте Scala Play 2.6, кажется, требует play.core.server.AkkaHttpServer отслеживаются автоматически с помощью инструментов, добавленных через аспект j.

пример

Маршрут /blogposts/ отслеживается. Но дальнейшие вызовы внутри, например, BlogPostService.getNewest и т. Д. Не являются.

Вопрос

Как распространить эту трассировку на вызовы других функций? Нужно ли создавать пролеты вручную? Или можно добавить дополнительные классы и их функции к трассировке с помощью другого механизма (конфигурации, собственных аспектов и т. Д.)?

1 ответ

Существует несколько вариантов трассировки в произвольных вызовах функций. Можно было бы использовать аспекты для переплетения в любой необходимой функциональности трассировки. Это лучше всего использовать, если у вас есть одна функция, например, исходящие запросы HTTP через WSClient это нужно отслеживать все время. Kamon Play делает это уже для WSClient,

Для всех других потребностей трассировки лучше всего обрабатывать трассировку так же, как ведение журнала. Да, добавление отдельных вызовов к функциональности трассировки - это дополнительная работа, но в некоторой степени ожидаемый рабочий процесс в конечном итоге приводит к логическим сегментам в трассировке без отслеживания каждого вызова функции (до гранулярного).

Другие вопросы по тегам