在前一篇文章《ClickHouse的運行指標監控可以怎麼玩?》中,我介紹了怎麼利用 ClickHouse 內置的 /metrics 服務,輕鬆與 Prometheus 和 Grafana 集成。
所以今天就接着聊一聊,在 ClickHouse 中有哪些常用的監控指標。
在生產環境中,大部分操作都是圍繞 MergeTree 進行的,總的來說不外乎
INSERT、ALTER 、 MERGE 和 SELECT 這麼幾類操作。
由於 ClickHouse 內部記錄的指標非常多, 這裏不可能列全,所以今天只能算是拋磚引玉,供大家參考。
INSERT:
指標 | 說明 |
events.InsertQuery | 執行的INSERT語句數量 |
events.InsertedRows | 已經寫入的數據行 |
events.DelayedInserts | 由於寫入負載過高,延遲寫入的Block數量 |
events.RejectedInserts | 由於 Too many parts 異常導致無法寫入的Block數 |
events.DuplicatedInsertedBlocks | 在寫入ReplicatedMergeTree時,由於Block ID相同導致忽略的Block數量 |
MERGE:
指標 | 說明 |
events.MergedRows | Merge的數據行 |
metrics.BackgroundPoolTask | 後臺正在執行任務的線程數 |
metrics.Merge | Merge的次數 |
metrics.MemoryTrackingForMerges | 分配給merge操作的內存總數 |
ALTER TABLE:
指標 | 說明 |
metrics.PartMutation | 執行ALTER UPDATE/DELETE的次數 |
SELECT:
指標 | 說明 |
events.Query | 總的查詢次數,包括INSERT |
events.SelectQuery | SELECT查詢的次數 |
events.SlowRead | 慢查詢的數量 |
metrics.MemoryTracking |
分配給server的內存總數 |
MarkCacheHits/MarkCacheMisses |
MarkCache緩存的命中率 |
除了上述的幾類常規操作之外,對於副本而言也有一些常用的監控指標
ReplicaMergeTree:
指標 | 說明 |
metrics.ReadonlyReplica | 當前只讀的副本數 |
metrics.ReplicatedFetch | 副本fetch part的數量 |
metrics.ReplicatedSend |
副本發送part的數量 |
events.ZooKeeperTransactions |
ZK的事務數 |
metrics.ZooKeeperSession | ZK的會話數 |
metrics.ZooKeeperWatch | ZK的Watch數 |
除了上述的列舉的部分以外,相關的指標還有很多,我沒有列全,大家可以順着思路繼續添加自己喜歡的指標。
最後,再結合跟 Prometheus 與 Grafana 的集成,我們對 ClickHouse 的運行狀態就非常容易掌控了。