可观测性
从应用组件获取有关其操作、时序以及与应用代码关系的洞见,对于理解延迟至关重要。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
}
}
包装 CQL 会话对象,以观测 Cassandra 语句执行。此外,还使用
CqlSessionBuilder注册ObservationRequestTracker.INSTANCE。包装 CQL 会话对象,以观测响应式 Cassandra 语句执行。
另请参阅 OpenTelemetry 语义约定 以获取进一步参考。
约定
以下列出了本项目声明的所有 GlobalObservabilityConventions 和 ObservabilityConventions。
表 1. ObservationConvention 实现
| ObservationConvention 类名 | 适用的 ObservationContext 类名 |
|---|---|
org.springframework.data.cassandra.observability.DefaultCassandraObservationConvention | n/a |
指标
以下列出了本项目声明的所有指标。
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 键空间的名称。 |
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 会话 |