可觀測性

從應用程式元件獲取關於其操作、時序以及與應用程式碼之間關係的洞察對於理解延遲至關重要。Spring Data Redis 透過 Lettuce 驅動程式集成了 Micrometer,以便在與 Redis 互動期間收集觀測資料。一旦整合設定完成,Micrometer 將為每個 Redis 命令建立儀表(meter)和跨度(span)(用於分散式追蹤)。

要啟用此整合,請將以下配置應用於 LettuceClientConfiguration

@Configuration
class ObservabilityConfiguration {

  @Bean
  public ClientResources clientResources(ObservationRegistry observationRegistry) {

    return ClientResources.builder()
              .tracing(new MicrometerTracingAdapter(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);
  }
}

另請參閱 OpenTelemetry Semantic Conventions 獲取更多參考資訊。

可觀測性 - 度量

下面列出了本專案宣告的所有度量。

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. Tag 鍵

名稱

描述

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 錯誤響應。