Інструментування з коробки
Інструментування з коробки доступне для кількох фреймворків:
Функція | Властивість | Стандартне значення |
---|---|---|
JDBC | otel.instrumentation.jdbc.enabled | true |
Logback | otel.instrumentation.logback-appender.enabled | true |
Logback MDC | otel.instrumentation.logback-mdc.enabled | true |
Spring Web | otel.instrumentation.spring-web.enabled | true |
Spring Web MVC | otel.instrumentation.spring-webmvc.enabled | true |
Spring WebFlux | otel.instrumentation.spring-webflux.enabled | true |
Kafka | otel.instrumentation.kafka.enabled | true |
MongoDB | otel.instrumentation.mongo.enabled | true |
Micrometer | otel.instrumentation.micrometer.enabled | false |
R2DBC (reactive JDBC) | otel.instrumentation.r2dbc.enabled | true |
Вибіркове увімкнення інструментувань
Щоб використовувати лише певні інструментування, спочатку вимкніть усі інструментування, встановивши властивість otel.instrumentation.common.default-enabled
у значення false
. Потім увімкніть інструментування одне за одним.
Наприклад, якщо ви хочете увімкнути лише інструментування JDBC, встановіть otel.instrumentation.jdbc.enabled
у значення true
.
Загальна конфігурація інструментування
Загальні властивості для всіх інструментувань баз даних:
Системна властивість | Тип | Стандартне значення | Опис |
---|---|---|---|
otel.instrumentation.common.db-statement-sanitizer.enabled | Boolean | true | Увімкнення санітизації запитів до БД. |
Інструментування JDBC
Системна властивість | Тип | Стандартне значення | Опис |
---|---|---|---|
otel.instrumentation.jdbc.statement-sanitizer.enabled | Boolean | true | Увімкнення санітизації запитів до БД. |
Logback
Ви можете увімкнути експериментальні функції за допомогою системних властивостей для захоплення атрибутів:
Системна властивість | Тип | Стандартне значення | Опис |
---|---|---|---|
otel.instrumentation.logback-appender.experimental-log-attributes | Boolean | false | Увімкнення захоплення експериментальних атрибутів журналу thread.name та thread.id . |
otel.instrumentation.logback-appender.experimental.capture-code-attributes | Boolean | false | Увімкнення захоплення атрибутів вихідного коду. Зверніть увагу, що захоплення атрибутів вихідного коду на місцях журналювання може додати навантаження на продуктивність. |
otel.instrumentation.logback-appender.experimental.capture-marker-attribute | Boolean | false | Увімкнення захоплення маркерів Logback як атрибутів. |
otel.instrumentation.logback-appender.experimental.capture-key-value-pair-attributes | Boolean | false | Увімкнення захоплення пар ключ-значення Logback як атрибутів. |
otel.instrumentation.logback-appender.experimental.capture-logger-context-attributes | Boolean | false | Увімкнення захоплення властивостей контексту логера Logback як атрибутів. |
otel.instrumentation.logback-appender.experimental.capture-mdc-attributes | String | Список атрибутів MDC, які потрібно захопити, розділений комами. Використовуйте символ підстановки * для захоплення всіх атрибутів. |
Альтернативно, ви можете увімкнути ці функції, додавши доповнювач OpenTelemetry Logback у ваш файл logback.xml
або logback-spring.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="OpenTelemetry"
class="io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender">
<captureExperimentalAttributes>false</captureExperimentalAttributes>
<captureCodeAttributes>true</captureCodeAttributes>
<captureMarkerAttribute>true</captureMarkerAttribute>
<captureKeyValuePairAttributes>true</captureKeyValuePairAttributes>
<captureLoggerContext>true</captureLoggerContext>
<captureMdcAttributes>*</captureMdcAttributes>
</appender>
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="OpenTelemetry"/>
</root>
</configuration>
Автоконфігурація Spring Web
Забезпечує автоконфігурацію для перехоплювача трасування RestTemplate
, визначеного в opentelemetry-spring-web-3.1. Ця автоконфігурація інструментує всі запити, що надсилаються за допомогою Spring RestTemplate
бінів, застосовуючи постпроцесор бінів RestTemplate
. Ця функція підтримується для версій spring web 3.1+. Щоб дізнатися більше про перехоплювач RestTemplate
OpenTelemetry, дивіться opentelemetry-spring-web-3.1.
Підтримуються наступні способи створення RestTemplate
:
package otel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
package otel;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class RestTemplateController {
private final RestTemplate restTemplate;
public RestTemplateController(RestTemplateBuilder restTemplateBuilder) {
restTemplate = restTemplateBuilder.rootUri("http://localhost:8080").build();
}
}
Підтримуються наступні способи створення RestClient
:
package otel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestClient;
@Configuration
public class RestClientConfig {
@Bean
public RestClient restClient() {
return RestClient.create();
}
}
package otel;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestClient;
@RestController
public class RestClientController {
private final RestClient restClient;
public RestClientController(RestClient.Builder restClientBuilder) {
restClient = restClientBuilder.baseUrl("http://localhost:8080").build();
}
}
Як і у випадку з Java агентом, ви можете налаштувати захоплення наступних сутностей:
Автоконфігурація Spring Web MVC
Ця функція автоконфігурує інструментування для контролерів Spring WebMVC, додаючи фільтр, що створює телеметрію бін до контексту застосунку. Фільтр декорує виконання запиту серверним спаном, передаючи вхідний контекст трасування, якщо він отриманий у HTTP запиті. Щоб дізнатися більше про інструментування Spring WebMVC OpenTelemetry, дивіться бібліотеку інструментування opentelemetry-spring-webmvc-5.3.
Як і у випадку з Java агентом, ви можете налаштувати захоплення наступних сутностей:
Автоконфігурація Spring WebFlux
Забезпечує автоконфігурації для фільтра обміну WebClient OpenTelemetry, визначеного в opentelemetry-spring-webflux-5.3. Ця автоконфігурація інструментує всі вихідні HTTP запити, що надсилаються за допомогою бінів WebClient та WebClient Builder Spring, застосовуючи постпроцесор бінів. Ця функція підтримується для версій spring webflux 5.0+. Для деталей дивіться opentelemetry-spring-webflux-5.3.
Підтримуються наступні способи створення WebClient
:
package otel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.reactive.function.client.WebClient;
@Configuration
public class WebClientConfig {
@Bean
public WebClient webClient() {
return WebClient.create();
}
}
package otel;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.reactive.function.client.WebClient;
@RestController
public class WebClientController {
private final WebClient webClient;
public WebClientController(WebClient.Builder webClientBuilder) {
webClient = webClientBuilder.baseUrl("http://localhost:8080").build();
}
}
Інструментування Kafka
Забезпечує автоконфігурацію для інструментування клієнта Kafka.
Системна властивість | Тип | Стандартне значення | Опис |
---|---|---|---|
otel.instrumentation.kafka.experimental-span-attributes | Boolean | false | Увімкнення захоплення експериментальних атрибутів спанів. |
Інструментування Micrometer
Забезпечує автоконфігурацію для мосту Micrometer до OpenTelemetry.
Інструментування MongoDB
Забезпечує автоконфігурацію для інструментування клієнта MongoDB.
Системна властивість | Тип | Стандартне значення | Опис |
---|---|---|---|
otel.instrumentation.mongo.statement-sanitizer.enabled | Boolean | true | Увімкнення санітизації запитів до БД. |
Інструментування R2DBC
Забезпечує автоконфігурацію для інструментування OpenTelemetry R2DBC.
Системна властивість | Тип | Стандартне значення | Опис |
---|---|---|---|
otel.instrumentation.r2dbc.statement-sanitizer.enabled | Boolean | true | Увімкнення санітизації запитів до БД. |
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!