Как отслеживать промежуток через различные зависимости с Sleuth?

Я учусь отслеживать свои распределенные процессы через все микросервисы. Я играл с Sleuth, Zipkin и различными микросервисами, и это работает фантастически! Но когда я пытаюсь сделать то же самое в проекте, взаимодействующем между различными зависимостями, я не могу создать то же самое поведение.

Это изображение показывает, как в настоящее время работают различные микросервисы.

Это схема микросервисов:

И это изображение показывает, как работает приложение с зависимостями.

Это схема приложения с зависимостями:

Интересно, возможно ли создать такое же поведение, используя зависимости, как с микросервисами?

2 ответа

Да, когда вы создаете диапазон, вы можете установить имя сервиса. Просто позвони newSpan.remoteServiceName(...)

Взяв за основу ввод @MarcinGrzejszczak, я решил использовать пользовательский диапазон:

Span remoteDependency = tracer.nextSpan()
                              .name("dependency_name") 
                              .start();

куда tracer является автопроводным объектом из Trace:

@Autowired
private Tracer tracer;

Оба класса находятся в brave пакет

import brave.Span;
import brave.Tracer;

Результат:

Образец

Если вы хотите взглянуть на реализацию более подробно, вот пример: https://github.com/juanca87/sample-traceability-microservices

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