可观察性

从应用程序组件获取其操作、时间以及与应用程序代码的关系的洞察对于理解延迟至关重要。Spring Data Redis 通过 Lettuce 驱动程序与 Micrometer 集成,以在 Redis 交互期间收集观察结果。一旦设置了集成,Micrometer 将为每个 Redis 命令创建度量和跨度(用于分布式跟踪)。

要启用集成,请将以下配置应用于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 语义约定 以了解更多信息。

可观察性 - 度量

您可以在下面找到此项目声明的所有度量的列表。

Redis 命令观察

在 Redis 命令执行周围创建的计时器。

度量名称 spring.data.redis类型 timer基本单位

封闭类的完全限定名称 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 错误响应。