Микронавт и OpenTracing вызовов методов

Мы создаем веб-приложение с использованием Micronaut (v1.2.0), которое будет развернуто в кластере Kubernetes (мы используем Istio в качестве service-mesh).

Мы хотели бы инструментировать вызовы критических методов, чтобы они могли генерировать свои собственные диапазоны в контексте диапазона HTTP-запроса. Для этого мы используем поддержку Micronaut OpenTracing и интеграцию с Jaeger.

Следующие зависимости включены в pom.xml

...
    <dependency>
      <groupId>io.micronaut</groupId>
      <artifactId>micronaut-tracing</artifactId>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>io.jaegertracing</groupId>
      <artifactId>jaeger-thrift</artifactId>
      <scope>runtime</scope>
    </dependency>
...

Реализован метод фильтрации с @ContinueSpan (также пробовал то же самое с @NewSpan), как показано ниже

@Filter("/**")
public class TraceTestFilter implements HttpServerFilter {

  @Override
  public Publisher<MutableHttpResponse<?>> doFilter(
      HttpRequest<?> request, ServerFilterChain chain) {

    return testMethodTracing(request, chain);
  }

  @ContinueSpan
  public Publisher<MutableHttpResponse<?>> testMethodTracing(
      HttpRequest<?> request, ServerFilterChain chain) {

        // Details ommitted here
  }
}

Следующее поддерживается в application-k8s.yml (также есть application.yml с такими же настройками)

---
tracing:
  jaeger:
    enabled: true
    sampler:
      probability: 1
    sender:
      agentHost: jaeger-agent.istio-system
      agentPort: 5775

Однако мы видим только записи трассировки, которые генерируются Istio (прокси-серверы Envoy), но мы не видим деталей самих вызовов методов.

Любые идеи относительно того, что здесь может быть не так?


person mithrandir    schedule 05.10.2019    source источник


Ответы (2)


В Istio есть функция Распределенная трассировка, которая позволяет пользователям отслеживать запросы в сети. который распределяется по нескольким службам. Это можно использовать для визуализации задержки запроса, сериализации и параллелизма.

Для этого Istio использует Envoy Proxy - Tracing. характерная черта.

Вы можете развернуть приложение Bookinfo и посмотреть, как Распространение контекста трассировки работает.

person Crou    schedule 10.10.2019

Если у вас есть та же проблема, описанная в этом билете, вам нужно дождаться следующего выпуска micronaut или использовать обходной путь, упомянутый там ребятами из micronaut.

https://github.com/micronaut-projects/micronaut-core/issues/2209

person setiabb    schedule 16.10.2019