可観測性

アプリケーションコンポーネントからその操作、タイミング、アプリケーションコードとの関係についてのインサイトを得ることは、レイテンシを理解するために不可欠です。Spring Data Redis には、Lettuce ドライバーを介した Micrometer 統合が同梱されており、Redis の相互作用中に観測を収集します。統合がセットアップされると、Micrometer は、Redis コマンドごとにメーターとスパン (分散トレース用) を作成します。

統合を有効にするには、次の構成を LettuceClientConfiguration に適用します。

@Configuration
class ObservabilityConfiguration {

  @Bean
  public ClientResources clientResources(ObservationRegistry observationRegistry) {

    return ClientResources.builder()
              .tracing(new MicrometerTracing(observationRegistry, "my-redis-cache"))
              .build();
  }

  @Bean
  public LettuceConnectionFactory lettuceConnectionFactory(ClientResources clientResources) {

    LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
                                                .clientResources(clientResources).build();
    RedisConfiguration redisConfiguration = …;
    return new LettuceConnectionFactory(redisConfiguration, clientConfig);
  }
}
Spring Boot を使用する場合、LettuceMetricsAutoConfiguration は Lettuce の MicrometerCommandLatencyRecorder を構成します。メトリクスのみを使用するか、メトリクスとトレースの両方を使用するかに応じて、アプリケーションからこの自動構成クラスを除外する必要があるかもしれません。
MicrometerTracingAdapter は将来のリリースで削除される予定のため非推奨となっているため、Lettuce の組み込み MicrometerTracing を使用してください。

詳細については、OpenTelemetry セマンティック規則 (英語) も参照してください。

可観測性 - メトリクス

以下に、MicrometerTracingAdapter によって記録されたすべてのメトリクスのリストを示します。

Redis コマンドの観測

Redis コマンドの実行時に作成されるタイマー。

指標名  spring.data.redis. タイプ  timer とベースユニット seconds.

外側のクラス org.springframework.data.redis.connection.lettuce.observability.RedisObservation の完全修飾名。

表 1: カーディナリティの低いキー

名前

説明

db.operation

Redis コマンド値。

db.redis.database_index

Redis データベースインデックス。

db.system

データベースシステム。

db.user

Redis ユーザー。

net.peer.name

データベースホストの名前。

net.peer.port

論理 リモートポート番号。

net.sock.peer.addr

Mongo ピアアドレス。

net.sock.peer.port

Mongo ピアポート。

net.transport

ネットワーク転送。

表 2: カーディナリティの高いキー

名前

説明

db.statement

Redis ステートメント。

spring.data.redis.command.error

Redis エラーレスポンス。

可観測性 - スパン

以下に、このプロジェクトで宣言されたすべてのスパンのリストを示します。

Redis コマンド観測スパン

Redis コマンドの実行時に作成されるタイマー。

スパン名  spring.data.redis.

外側のクラス org.springframework.data.redis.connection.lettuce.observability.RedisObservation の完全修飾名。

表 3: タグキー

名前

説明

db.operation

Redis コマンド値。

db.redis.database_index

Redis データベースインデックス。

db.statement

Redis ステートメント。

db.system

データベースシステム。

db.user

Redis ユーザー。

net.peer.name

データベースホストの名前。

net.peer.port

論理 リモートポート番号。

net.sock.peer.addr

Mongo ピアアドレス。

net.sock.peer.port

Mongo ピアポート。

net.transport

ネットワーク転送。

spring.data.redis.command.error

Redis エラーレスポンス。