可观察性
从应用程序组件获取有关其操作、时序和与应用程序代码关系的洞察对于理解延迟至关重要。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 语句执行。同时,将
ObservationRequestTracker.INSTANCE
注册到CqlSessionBuilder
。包装 CQL 会话对象以观察反应式 Cassandra 语句执行。
另请参见 OpenTelemetry 语义约定 以获取更多参考。
约定
以下是该项目声明的所有 GlobalObservabilityConventions
和 ObservabilityConventions
的列表。
表 1. ObservationConvention 实现
观察约定类名 | 适用的观察上下文类名 |
---|---|
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 ,最终值将在运行时解析) |
Spans
下面您可以找到该项目声明的所有跨度的列表。
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 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 会话 |