可观测性

从应用程序组件中获取关于其操作、时序以及与应用程序代码关系的洞察,对于理解延迟至关重要。Spring Data Cassandra 通过 Cassandra 驱动程序提供了 Micrometer 检测功能,以在 Cassandra 交互过程中收集观测数据。集成设置完成后,Micrometer 将为每个 Cassandra 语句创建 meter 和 span(用于分布式跟踪)。

要启用检测功能,请在您的应用程序中应用以下配置:

@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 Session 对象以观测 Cassandra 语句的执行。同时,在 `CqlSessionBuilder` 中注册 `ObservationRequestTracker.INSTANCE`。
2 包装 CQL Session 对象以观测响应式 Cassandra 语句的执行。

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

约定

您可以在下方找到此项目声明的所有 GlobalObservabilityConventionsObservabilityConventions 的列表。

表 1. ObservationConvention 实现

ObservationConvention 类名

适用的 ObservationContext 类名

org.springframework.data.cassandra.observability.DefaultCassandraObservationConvention

不适用

指标

您可以在下方找到此项目声明的所有指标的列表。

Cassandra 查询观测

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

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

包含类 org.springframework.data.cassandra.observability.CassandraObservation 的完全限定名称。

表 2. 低基数键

名称

描述

db.cassandra.coordinator.dc

db.cassandra.coordinator.id

db.name

Cassandra keyspace 的名称。

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 session

表 3. 高基数键

名称

描述

db.cassandra.consistency_level

db.cassandra.idempotence

db.cassandra.page_size

db.statement

包含 Cassandra CQL 的键值对。

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

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

Span

您可以在下方找到此项目声明的所有 span 的列表。

Cassandra 查询观测 Span

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

Span 名称 spring.data.cassandra.query

包含类 org.springframework.data.cassandra.observability.CassandraObservation 的完全限定名称。

表 4. Tag 键

名称

描述

db.cassandra.consistency_level

db.cassandra.coordinator.dc

db.cassandra.coordinator.id

db.cassandra.idempotence

db.cassandra.page_size

db.name

Cassandra keyspace 的名称。

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 session