Как включить трассировку Jaeger JDBC в Quarkus

Как включить Jaeger jdbc трассировку в Quarkus? Я следовал Quarkus руководствам для Opentracing и не нашел информации об этом.

Я использую Quarkus v0.21.2 со следующими расширениями:

 -quarkus-smallrye-opentracing
 -quarkus-resteasy
 -quarkus-resteasy-jackson
 -quarkus-hibernate-orm-panache
 -quarkus-jdbc-postgresql
 -quarkus-smallrye-openapi

А мой код - это просто базовая конечная точка Rest, которая вызывает операцию CRUD Panache моей сущности.

Любая помощь приветствуется.

Я пробовал следующее, и это не сработало:

 - added @Traced to my entity
 - changed quarkus.jaeger.sampler-type=const into quarkus.jaeger.sampler-type=remote

Я ожидаю, что в Jaeger будет 2 промежутка для 1 трассировки, один для вызова REST и еще один для вызова JDBC.

Но я вижу только 1 промежуток для вызова REST.


person Serkan    schedule 09.09.2019    source источник
comment
В настоящее время я не верю, что у нас есть библиотеки OpenTracing JDBC в Quarkus. Поднимите вопрос, чтобы поддержать это: github.com/quarkusio/quarkus/issues   -  person Ken    schedule 09.09.2019
comment
Вы пытались использовать github.com/opentracing-contrib/java-jdbc? Если это не сработало, OOTB, возможно, необходимо создать расширение в Quarkus tu, поддерживающее его   -  person loicmathieu    schedule 09.09.2019


Ответы (1)


Вы можете использовать открывающее расширение java-jdbc, оно будет работать в Quarkus (я не протестировать родной режим).

Вам необходимо использовать версию 0.0.12, поскольку последняя основана на Opentracing 0.33, а Quarkus использует версию 0.31.

  1. Добавьте зависимость к вашему pom.xml:

    <dependency>
      <groupId>io.opentracing.contrib</groupId>
      <artifactId>opentracing-jdbc</artifactId>
      <version>0.0.12</version>
    </dependency>
    
  2. Обновите свой application.properties, чтобы использовать драйвер opentracing-jdbc, следующие данные предназначены для базы данных Postgres:

quarkus.datasource.url = jdbc:tracing:postgresql://localhost:5433/mydatabase
quarkus.datasource.driver = io.opentracing.contrib.jdbc.TracingDriver
quarkus.hibernate-orm.dialect = org.hibernate.dialect.PostgreSQLDialect

Затем вы увидите SQL-запросы в Jaeger как интервалы.

person loicmathieu    schedule 09.09.2019
comment
спасибо за быстрый ответ. Это действительно работает. Я использовал opentracing-jdbc версии 0.1.8, и это не сработало. - person Serkan; 09.09.2019
comment
Может быть, есть идея добавить это автоматически в Quarkus, если проект содержит какие-либо зависимости jdbc / jpa при добавлении quarkus.opentracing в ваш проект? - person Serkan; 09.09.2019
comment
Я не уверен, что автоматическое добавление - хорошая идея, потому что это создает много промежутков, и никому это не нужно. Что можно сделать, так это написать об этом раздел в руководстве и управлять версией в Quarkus bom, чтобы разработчик не тратил время на поиск работающей версии. Я могу позаботиться об этом - person loicmathieu; 10.09.2019