可观察性

从应用程序组件获取有关其操作、时间和与应用程序代码关系的洞察力对于理解延迟至关重要。Spring Data Cassandra 通过 Cassandra 驱动程序提供 Micrometer 仪器,以在 Cassandra 交互期间收集观察结果。设置集成后,Micrometer 将为每个 Cassandra 语句创建指标和跨度(用于分布式跟踪)。

要启用仪器,请将以下配置应用于您的应用程序

@Configuration
class ObservabilityConfiguration {

  @Bean
  public ObservableCqlSessionFactoryBean observableCqlSession(CqlSessionBuilder builder,
                                                              ObservationRegistry registry) {
    return new ObservableCqlSessionFactoryBean(builder, registry); (1)
  }

  @Bean
  public ObservableReactiveSessionFactoryBean observableReactiveSession(CqlSession session,
                                                              ObservationRegistry registry) {
    return new ObservableReactiveSessionFactoryBean(session, registry); (2)
  }
}
1 封装 CQL 会话对象以观察 Cassandra 语句执行。此外,将 ObservationRequestTracker.INSTANCE 注册到 CqlSessionBuilder 中。
2 封装 CQL 会话对象以观察响应式 Cassandra 语句执行。

另请参阅 OpenTelemetry 语义约定 以获取更多参考。

约定

以下是此项目声明的所有 GlobalObservabilityConventionsObservabilityConventions 的列表。

表 1. ObservationConvention 实现

ObservationConvention 类名

适用的 ObservationContext 类名

org.springframework.data.cassandra.observability.DefaultCassandraObservationConvention

n/a

指标

以下是此项目声明的所有指标的列表。

Cassandra 查询观察

为基于 Cassandra 的查询创建 io.micrometer.observation.Observation

指标名称 spring.data.cassandra.query类型 timer基本单位

封闭类的完全限定名 org.springframework.data.cassandra.observability.CassandraObservation

表 2. 低基数键

名称

描述

db.cassandra.coordinator.dc

db.cassandra.coordinator.id

db.name

Cassandra 键空间的名称。

db.operation

数据库操作。

db.system

数据库系统。

net.peer.name

数据库主机的名称。

net.peer.port

逻辑远程端口号。

net.sock.peer.addr

Cassandra 对等地址。

net.sock.peer.port

Cassandra 对等端口。

net.transport

网络传输。

spring.data.cassandra.methodName

方法名称

spring.data.cassandra.sessionName

Cassandra 会话

表 3. 高基数键

名称

描述

db.cassandra.consistency_level

db.cassandra.idempotence

db.cassandra.page_size

db.statement

包含 Cassandra CQL 的键值对。

spring.data.cassandra.node[%s].error

包含给定节点发生的错误的标签。(由于名称包含 %s,因此最终值将在运行时解析)

跨度

以下是此项目声明的所有跨度的列表。

Cassandra 查询观测跨度

为基于 Cassandra 的查询创建 io.micrometer.observation.Observation

跨度名称 spring.data.cassandra.query

封闭类的完全限定名 org.springframework.data.cassandra.observability.CassandraObservation

表 4. 标签键

名称

描述

db.cassandra.consistency_level

db.cassandra.coordinator.dc

db.cassandra.coordinator.id

db.cassandra.idempotence

db.cassandra.page_size

db.name

Cassandra 键空间的名称。

db.operation

数据库操作。

db.statement

包含 Cassandra CQL 的键值对。

db.system

数据库系统。

net.peer.name

数据库主机的名称。

net.peer.port

逻辑远程端口号。

net.sock.peer.addr

Cassandra 对等地址。

net.sock.peer.port

Cassandra 对等端口。

net.transport

网络传输。

spring.data.cassandra.methodName

方法名称

spring.data.cassandra.node[%s].error

包含给定节点发生的错误的标签。(由于名称包含 %s,因此最终值将在运行时解析)

spring.data.cassandra.sessionName

Cassandra 会话