TG Telegram Group & Channel
Библиотека джависта | Java, Spring, Maven, Hibernate | United States America (US)
Create: Update:

🎯 Как быстро настроить распределённую трассировку в Spring Boot с OpenTelemetry

Дебажить без трейсинга — как ловить баги с завязанными глазами. Но Spring Boot и тут не подвёл: подключаем, настраиваем — и уже можно видеть, что происходит внутри сервиса (и между сервисами тоже).

1️⃣ Добавляем зависимости

<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>

ИЛИ

implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter:2.1.0'


Плюс агент (нужно будет передать при запуске JAR-а):
-javaagent:opentelemetry-javaagent.jar


2️⃣ Настраиваем экспорт в Jaeger / Zipkin / OTEL Collector

Добавляем конфигурацию в application.yml:
otel:
exporter:
otlp:
endpoint: http://localhost:4317
resource:
attributes:
service.name: my-service
instrumentation:
spring-web:
enabled: true
jdbc:
enabled: true


Можно слать трейсинг напрямую в Jaeger или Zipkin, или в OTEL Collector для гибкости.

3️⃣ Автоматическая трассировка веб-запросов и JDBC

Ничего руками писать не нужно. Всё, что проходит через @RestController и JdbcTemplate — уже обвешано спанами. Нужно только запустить приложение с агентом:
java -javaagent:opentelemetry-javaagent.jar -jar myapp.jar


Сразу работают:

— Спаны на все входящие HTTP-запросы
— Спаны на SQL-запросы
— Привязку логов к трейсам (если логгер поддерживает traceId)

4️⃣ Кастомные спаны

Нужно залезть в середину метода и обернуть свою логику? Без проблем:
@Autowired
private Tracer tracer;

public void doSomething() {
Span span = tracer.spanBuilder("custom-operation").startSpan();
try (Scope scope = span.makeCurrent()) {
// какая-то магия
} finally {
span.end();
}
}


5️⃣ Визуализация трассировок

Установите Jaeger UI или Zipkin — и смотрите в реальном времени, что делает сервис и как долго.

💬 Что вы используете для трейсинга?

🐸 Библиотека джависта #буст

🎯 Как быстро настроить распределённую трассировку в Spring Boot с OpenTelemetry

Дебажить без трейсинга — как ловить баги с завязанными глазами. Но Spring Boot и тут не подвёл: подключаем, настраиваем — и уже можно видеть, что происходит внутри сервиса (и между сервисами тоже).

1️⃣ Добавляем зависимости
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-spring-boot-starter</artifactId>
<version>2.1.0</version>
</dependency>

ИЛИ

implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter:2.1.0'


Плюс агент (нужно будет передать при запуске JAR-а):
-javaagent:opentelemetry-javaagent.jar


2️⃣ Настраиваем экспорт в Jaeger / Zipkin / OTEL Collector

Добавляем конфигурацию в application.yml:
otel:
exporter:
otlp:
endpoint: http://localhost:4317
resource:
attributes:
service.name: my-service
instrumentation:
spring-web:
enabled: true
jdbc:
enabled: true


Можно слать трейсинг напрямую в Jaeger или Zipkin, или в OTEL Collector для гибкости.

3️⃣ Автоматическая трассировка веб-запросов и JDBC

Ничего руками писать не нужно. Всё, что проходит через @RestController и JdbcTemplate — уже обвешано спанами. Нужно только запустить приложение с агентом:
java -javaagent:opentelemetry-javaagent.jar -jar myapp.jar


Сразу работают:

— Спаны на все входящие HTTP-запросы
— Спаны на SQL-запросы
— Привязку логов к трейсам (если логгер поддерживает traceId)

4️⃣ Кастомные спаны

Нужно залезть в середину метода и обернуть свою логику? Без проблем:
@Autowired
private Tracer tracer;

public void doSomething() {
Span span = tracer.spanBuilder("custom-operation").startSpan();
try (Scope scope = span.makeCurrent()) {
// какая-то магия
} finally {
span.end();
}
}


5️⃣ Визуализация трассировок

Установите Jaeger UI или Zipkin — и смотрите в реальном времени, что делает сервис и как долго.

💬 Что вы используете для трейсинга?

🐸 Библиотека джависта #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥321


>>Click here to continue<<

Библиотека джависта | Java, Spring, Maven, Hibernate






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)