在前一篇文章《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 的运行状态就非常容易掌控了。