Cassandra 文件

版本

您正在檢視預發行版本的說明文件。

監控 SAI 索引

虛擬表格和基於 JMX 的指標都可以用來監控叢集中的 SAI 索引。

SAI 虛擬表格

您可以參考以下 Apache Cassandra 虛擬表格中的資料,以確定使用 SAI 建立的索引的狀態

  • system_views.indexes — 提供欄位索引層級的資訊,包括索引名稱、已索引 SSTable 數量、磁碟使用量和索引狀態。從索引狀態中,資料會顯示索引目前是否正在建立,以及是否可以查詢索引。

    當您 DROP / 重新建立 SAI 索引時,您不會被禁止輸入不使用索引的查詢。但是,您無法使用該 SAI 索引(基於同一欄位),直到它建立完成且可以查詢為止。若要判斷特定索引的目前狀態,請查詢 system_views.indexes 虛擬表格。範例

    SELECT is_queryable,is_building FROM system_views.indexes WHERE keyspace_name='keyspace'
           AND table_name='table' AND index_name='index';
  • system_views.sstable_indexes — 描述個別 SSTable 索引,並包含磁碟大小、最小/最大列 ID、最小/最大環狀記號和索引的寫入時間版本等資訊。

  • system_views.sstable_index_segments — 描述 SSTable 索引的區段。它公開區段列 ID 偏移量和 SSTable 層級虛擬表格中的大部分資訊,特別是區段粒度。如需更多詳細資訊,請參閱 SAI 索引和 SSTable 的虛擬表格

SAI 追蹤

SAI 提供追蹤功能,就像其他資料庫元件一樣。資訊由 system_traces 鍵值空間擷取。您可以在 CQLSH 中使用 TRACING ON 啟用追蹤,或在 Cassandra 驅動程式中使用 statement.enableTracing()

特定查詢篩選的列數將顯示在 CQL 查詢追蹤中。範例

Index query accessed memtable indexes, 2 SSTable indexes, and 2 segments, post-filtered 14 rows in 14 partitions, and took 88582 microseconds.

有關追蹤的詳細資訊,請參閱 CQL TRACING

SAI 指標

SAI 提供許多指標,協助您監控索引的正常運作。

分類資料

  • 全域索引指標

  • 表格查詢指標

  • 每個查詢指標

  • 金鑰擷取指標

  • 偏移擷取指標

  • 記號擷取指標

  • 每個索引的欄位查詢指標

  • 每個索引的詞彙指標

  • 範圍切片指標

例如,您可以使用指標取得自節點啟動以來 cycling.cyclist_semi_pro 的總分割區讀取數目前的計數。鍵值空間和表格已在 SAI 快速入門 中定義。此指標的 ObjectNameorg.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=cycling,table=cyclist_semi_pro,scope=TableQueryMetrics,name=TotalPartitionReads

這些指標透過 JMX 公開,因此可以使用任何基於 JMX 的工具來監控。

全域索引指標

ObjectName: org.apache.cassandra.metrics,type=StorageAttachedIndex,name=<metric>

此節點的全域索引指標為

  • ColumnIndexBuildsInProgress — 目前正在建立的個別磁碟欄位索引數目。

  • SegmentBufferSpaceLimitBytes — 壓縮和索引建立期間用於緩衝 SSTable 索引區段的堆積限制。

    在 cassandra.yaml 中,segment_write_buffer_space_mb 限制壓縮和初始建立期間用於建立磁碟欄位索引的堆積量。預設值為 1024 MB。

例如,如果只有一個欄位索引正在建立,SAI 可以緩衝至多 segment_write_buffer_space_mb。如果每個表格有一個欄位索引在 8 個壓縮器中建立,每個索引將有資格在達到 (segment_write_buffer_space_mb / 8) MB 時進行快取。

  • SegmentBufferSpaceUsedBytes — 壓縮和索引建立期間目前用於緩衝 SSTable 索引區段的堆積。

在任何時間點,清除區段的最小大小(以位元組為單位)為 (SegmentBufferSpaceLimitBytes / ColumnIndexBuildsInProgress)。

索引群組指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,scope=IndexGroupMetrics,name=<metric>

給定鍵空間和資料表的索引群組指標

  • DiskUsedBytes — 給定資料表 SAI 索引在磁碟上的大小(以位元組為單位)。

  • IndexFileCacheBytes — 每個欄位索引的磁碟資料結構使用的記憶體大小(以位元組為單位)。

  • OpenIndexFiles — 給定資料表 SAI 索引的開啟索引檔案數目。

金鑰擷取指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,scope=KeyFetch,name=<metric>

給定鍵空間和資料表的金鑰擷取指標

  • ChunkCacheHitRate — 針對給定資料表的查詢期間,金鑰的整體區塊快取命中率。

  • TotalChunkCacheLookups — 針對給定資料表的查詢期間,金鑰的整體區塊快取查詢次數。

  • TotalChunkCacheMisses — 針對給定資料表的查詢期間,金鑰的整體區塊快取遺漏次數。

  • ChunkCache(One|Five|Fifteen)HitRate — 針對給定資料表的查詢期間,金鑰的 <N> 分鐘區塊快取命中率。

偏移量擷取指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,scope=OffsetFetch,name=<metric>

給定鍵空間和資料表的偏移量擷取指標

  • ChunkCacheHitRate — 針對給定資料表的查詢期間,分割鍵 SSTable 偏移量擷取的整體區塊快取命中率。

  • TotalChunkCacheLookups — 針對給定資料表的查詢期間,分割鍵 SSTable 偏移量擷取的整體區塊快取查詢次數。

  • TotalChunkCacheMisses — 針對給定資料表的查詢期間,分割鍵 SSTable 偏移量擷取的整體區塊快取遺漏次數。

  • ChunkCache(One|Five|Fifteen)HitRate — 針對給定資料表的查詢期間,分割鍵 SSTable 偏移量擷取的 <N> 分鐘區塊快取命中率。

每個查詢指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,scope=PerQuery,name=<metric>

給定鍵空間和資料表的每個查詢指標包括

  • RowsFiltered — 自節點啟動以來,每個查詢過濾後列數的直方圖。

  • QueryLatency — 整體查詢延遲百分比(以微秒為單位)和一/五/十五分鐘查詢處理量。

  • PartitionReads — 每個查詢讀取的分割區數量的直方圖。

  • SSTableIndexesHit — 每個查詢所讀取的 SSTable 索引數量的直方圖。

  • KDTreeChunkCacheLookups — 每個查詢在讀取 kd 樹索引檔案時,區塊快取查詢數量的直方圖。

  • KDTreeChunkCacheMisses — 每個查詢在讀取 kd 樹索引檔案時,區塊快取遺漏數量的直方圖。

表格查詢指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,scope=TableQueryMetrics,name=<metric>

針對給定鍵空間和表格的表格查詢指標

  • TotalPartitionReads — 自節點啟動以來,所有查詢的總分區讀取次數。

  • TotalQueriesCompleted — 自節點啟動以來,成功完成的總查詢數。

  • TotalQueryTimeouts — 自節點啟動以來,查詢總計逾時次數。

  • TotalRowsFiltered — 自節點啟動以來,所有查詢過濾後的總列數。

表格狀態指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,scope=TableStateMetrics,name=<metric>

針對給定鍵空間和表格的表格狀態指標

  • DiskPercentageOfBaseTable — 每個表格的 SAI 大小,以表格大小的百分比表示。

  • DiskUsedBytes — 每個表格的 SAI 索引在磁碟上使用的位元組大小。

  • TotalIndexBuildsInProgress — 目前處於 is_building 狀態的每個表格的 SAI 索引狀態。

  • TotalIndexCount — 每個表格的 SAI 索引總數。

  • TotalQueryableIndexCount — 目前處於 is_querable 狀態的每個表格的 SAI 索引狀態。

權杖擷取指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,scope=TokenFetch,name=<metric>

針對給定鍵空間和表格的權杖擷取指標

  • ChunkCacheHitRate — 針對給定表格的查詢,分區金鑰權杖擷取的整體區塊快取命中率。

  • TotalChunkCacheLookups — 針對給定表格的查詢,分區金鑰權杖擷取的整體區塊快取查詢次數。

  • TotalChunkCacheMisses — 針對給定表格的查詢,分區金鑰權杖擷取的整體區塊快取遺漏次數。

  • ChunkCache(One|Five|Fifteen)HitRate — 針對給定表格的查詢,分區金鑰權杖擷取的 <N> 分鐘區塊快取命中率。

權杖跳過指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,scope=TokenSkipping,name=<metric>

針對給定鍵空間和表格的權杖跳過指標

  • CacheHits — 多重索引 AND 查詢中,來自跳過令牌的快取命中次數。

  • Lookups — 多重索引 AND 查詢中,來自跳過令牌的查詢次數。

每個數字索引的欄位查詢指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,index=<index>,scope=ColumnQueryMetrics,name=<metric>

給定鍵空間、表格和索引的欄位查詢指標包括

  • KDTreeNiceTryLatency — 對於數字索引,例如 快速入門 範例中的 age_sai_idx,此指標可用於呈現 kd 樹交集期間等待區塊快取未命中所花費時間的直方圖(以微秒為單位),以及一/五/十五分鐘區塊未命中傳輸量。

    如果在 kd 樹交集期間沒有快取未命中,則傳輸量為零。

每個字串索引的欄位查詢指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,index=<index>,scope=ColumnQueryMetrics,name=<metric>

給定鍵空間、表格和索引的欄位查詢指標包括

  • TermsLookupLatency — 對於字串索引,例如 快速入門 範例中的 country_sai_idx,此指標顯示每一個/五個/十五分鐘查詢傳輸量的字詞查詢延遲百分比(以微秒為單位)。

每個字串索引的字詞指標

ObjectName: org.apache.cassandra.metrics:type=StorageAttachedIndex,keyspace=<keyspace>,table=<table>,index=<index>,scope=Terms,name=<metric>

對於字串索引,給定鍵空間、表格和索引的字詞指標

  • ChunkCacheHitRate — 使用給定索引的字串索引查詢期間,字詞的整體區塊快取命中率。

  • TotalChunkCacheLookups — 使用給定索引的字串索引查詢期間,字詞的整體區塊快取查詢次數。

  • TotalChunkCacheMisses — 使用給定索引的字串索引查詢期間,字詞的整體區塊快取未命中次數。

  • ChunkCache(One|Five|Fifteen)HitRate — 使用給定索引的字串索引查詢期間,字詞的<N>分鐘區塊快取命中率。

範圍區段指標

ObjectName: org.apache.cassandra.metrics:type=ClientRequest,scope=RangeSlice,name=<metric>

RoundTripsPerReadHistogram 指標追蹤從協調器發送的範圍查詢命令的往返請求次數。請求次數較少通常表示伺服器運作較為有效率,而請求次數較多則表示需要更多請求才能滿足相同的範圍查詢。

延遲指標追蹤範圍讀取請求延遲的最小值、最大值、平均值以及一組百分比。逾時指標追蹤範圍讀取請求的逾時次數。