すぐに使える計装
いくつかのフレームワークに対して、すぐに使える計装が利用可能です。
機能 | プロパティ | デフォルト値 |
---|---|---|
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 (リアクティブJDBC) | otel.instrumentation.r2dbc.enabled | true |
計装を選択的に有効化する
特定の計装のみを使用するには、まずotel.instrumentation.common.default-enabled
プロパティをfalse
に設定してすべての計装をオフにします。
その後、計装を1つずつ有効にします。
たとえば、JDBC計装のみを有効にしたい場合は、otel.instrumentation.jdbc.enabled
をtrue
に設定します。
共通計装設定
すべてのデータベース計装に共通のプロパティ。
システムプロパティ | 型 | デフォルト | 説明 |
---|---|---|---|
otel.instrumentation.common.db-statement-sanitizer.enabled | Boolean | true | DBステートメントのサニタイズを有効にします。 |
JDBC計装
システムプロパティ | 型 | デフォルト | 説明 |
---|---|---|---|
otel.instrumentation.jdbc.statement-sanitizer.enabled | Boolean | true | DBステートメントのサニタイズを有効にします。 |
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属性のカンマ区切りリスト。すべての属性をキャプチャするにはワイルドカード文字* を使用します。 |
または、logback.xml
またはlogback-spring.xml
ファイルにOpenTelemetry Logbackアペンダーを追加することで、これらの機能を有効にできます。
<?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自動設定
opentelemetry-spring-web-3.1で定義されたRestTemplate
トレースインターセプターの自動設定を提供します。
この自動設定は、RestTemplate
ビーンポストプロセッサーを適用することで、Spring RestTemplate
ビーンを使用して送信されるすべてのリクエストを計装します。
この機能はSpring Webバージョン3.1以降でサポートされています。OpenTelemetryRestTemplate
インターセプターの詳細については、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自動設定
この機能は、アプリケーションコンテキストにテレメトリ生成サーブレットFilter
ビーンを追加することで、Spring WebMVCコントローラーの計装を自動設定します。
フィルターは、リクエストの実行をサーバースパンで装飾し、HTTPリクエストで受信した場合は受信トレーシングコンテキストを伝搬します。
OpenTelemetry Spring WebMVC計装の詳細については、opentelemetry-spring-webmvc-5.3計装ライブラリを参照してください。
Javaエージェントと同様に、以下のエンティティのキャプチャを設定できます。
Spring WebFlux自動設定
opentelemetry-spring-webflux-5.3で定義されたOpenTelemetry WebClient ExchangeFilterの自動設定を提供します。 この自動設定は、ビーンポストプロセッサーを適用することで、SpringのWebClientとWebClient Builderビーンを使用して送信されるすべての送信HTTPリクエストを計装します。 この機能は、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 | DBステートメントのサニタイズを有効にします。 |
R2DBC計装
OpenTelemetry R2DBC計装の自動設定を提供します。
システムプロパティ | 型 | デフォルト | 説明 |
---|---|---|---|
otel.instrumentation.r2dbc.statement-sanitizer.enabled | Boolean | true | DBステートメントのサニタイズを有効にします。 |
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!