Observability

从应用程序组件中获取其操作、时间安排和与应用程序代码相关的信息对于了解延迟至关重要。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 Semantic Conventions以供参考。

Conventions

下面你可以找到此项目声明的所有 GlobalObservabilityConventionsObservabilityConventions 的列表。

Table 1. ObservationConvention implementations

ObservationConvention Class Name

Applicable ObservationContext Class Name

org.springframework.data.cassandra.observability.DefaultCassandraObservationConvention

n/a

Metrics

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

Cassandra Query Observation

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

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

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

Table 2. Low cardinality Keys

Name

Description

db.cassandra.coordinator.dc

db.cassandra.coordinator.id

db.name

Cassandra keyspace 名称。

db.operation

The database operation.

db.system

Database system.

net.peer.name

数据库主机名称。

net.peer.port

Logical remote port number.

net.sock.peer.addr

Cassandra peer address.

net.sock.peer.port

Cassandra peer port.

net.transport

Network transport.

spring.data.cassandra.methodName

The method name

spring.data.cassandra.sessionName

Cassandra session

Table 3. High cardinality Keys

Name

Description

db.cassandra.consistency_level

db.cassandra.idempotence

db.cassandra.page_size

db.statement

包含 Cassandra CQL 的键值。

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

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

Spans

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

Cassandra Query Observation Span

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

跨度名称 spring.data.cassandra.query

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

Table 4. Tag Keys

Name

Description

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

The database operation.

db.statement

包含 Cassandra CQL 的键值。

db.system

Database system.

net.peer.name

数据库主机名称。

net.peer.port

Logical remote port number.

net.sock.peer.addr

Cassandra peer address.

net.sock.peer.port

Cassandra peer port.

net.transport

Network transport.

spring.data.cassandra.methodName

The method name

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

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

spring.data.cassandra.sessionName

Cassandra session