可觀測性

從應用程式組件取得關於其操作、計時以及與應用程式碼關係的洞察,對於理解延遲至關重要。Spring Data Cassandra 透過 Cassandra 驅動程式隨附 Micrometer instrumentation,以收集 Cassandra 互動期間的觀測結果。一旦設定整合,Micrometer 將為每個 Cassandra 語句建立 meter 和 span(用於分散式追蹤)。

若要啟用 instrumentation,請將下列配置應用於您的應用程式

@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 語句執行。

ObservableCqlSessionFactoryBeanObservableReactiveSessionFactoryBean 都支援 CassandraObservationConvention 的配置。

另請參閱 OpenTelemetry Semantic Conventions 以取得進一步參考。

慣例

您可以在下方找到此專案宣告的所有 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. 標籤鍵

名稱

描述

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