可觀測性

從應用程式元件中獲取關於其操作、時序以及與應用程式程式碼關係的洞察,對於理解延遲至關重要。Spring Data Cassandra 透過 Cassandra 驅動程式提供了 Micrometer 檢測功能,以在 Cassandra 互動過程中收集觀測資料。整合設定完成後,Micrometer 將為每個 Cassandra 語句建立 meter 和 span(用於分散式跟蹤)。

要啟用檢測功能,請在您的應用程式中應用以下配置:

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

另請參見 OpenTelemetry 語義約定 以獲取更多參考。

約定

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

名稱

描述

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