从应用程序组件中获取有关其操作、时序以及与应用程序代码的关系的见解对于了解延迟至关重要。 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.INSTANCECqlSessionBuilder
2 包装 CQL 会话对象以观察反应式 Cassandra 语句执行。

另请参阅 OpenTelemetry 语义约定以获取进一步参考。

1 包装 CQL 会话对象以观察 Cassandra 语句的执行。 此外,使用 .ObservationRequestTracker.INSTANCECqlSessionBuilder
2 包装 CQL 会话对象以观察反应式 Cassandra 语句执行。

约定

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

表 1.观察公约实现

ObservationConvention 类名称

适用的 ObservationContext 类名

org.springframework.data.cassandra.observability.DefaultCassandraObservationConvention

n/a

表 1.观察公约实现

ObservationConvention 类名称

适用的 ObservationContext 类名

org.springframework.data.cassandra.observability.DefaultCassandraObservationConvention

n/a

指标

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

Cassandra 查询观察

创建一个基于 Cassandra 的查询。io.micrometer.observation.Observation

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

封闭类 .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

表 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 会话

表 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 会话