M(BackgroundSchedulePoolTask,"Number of active tasks in BackgroundSchedulePool. This pool is used for periodic ReplicatedMergeTree tasks, like cleaning old data parts, altering data parts, replica re-initialization, etc.") \
M(BackgroundBufferFlushSchedulePoolTask,"Number of active tasks in BackgroundBufferFlushSchedulePool. This pool is used for periodic Buffer flushes") \
M(BackgroundDistributedSchedulePoolTask,"Number of active tasks in BackgroundDistributedSchedulePool. This pool is used for distributed sends that is done in background.") \
M(DiskSpaceReservedForMerge,"Disk space reserved for currently running background merges. It is slightly more than the total size of currently merging parts.") \
M(DistributedSend,"Number of connections to remote servers sending data that was INSERTed into Distributed tables. Both synchronous and asynchronous mode.") \
M(NetworkReceive,"Number of threads receiving data from network. Only ClickHouse-related network interaction is included, not by 3rd party libraries.") \
M(NetworkSend,"Number of threads sending data to network. Only ClickHouse-related network interaction is included, not by 3rd party libraries.") \
M(SendExternalTables,"Number of connections that are sending data for external tables to remote servers. External tables are used to implement GLOBAL IN and GLOBAL JOIN operators with distributed subqueries.") \
M(QueryThread,"Number of query processing threads") \
M(ReadonlyReplica,"Number of Replicated tables that are currently in readonly state due to re-initialization after ZooKeeper session loss or due to startup without ZooKeeper configured.") \
M(EphemeralNode,"Number of ephemeral nodes hold in ZooKeeper.") \
M(ZooKeeperSession,"Number of sessions (connections) to ZooKeeper. Should be no more than one, because using more than one connection to ZooKeeper may lead to bugs due to lack of linearizability (stale reads) that ZooKeeper consistency model allows.") \
M(ZooKeeperWatch,"Number of watches (event subscriptions) in ZooKeeper.") \
M(ZooKeeperRequest,"Number of requests to ZooKeeper in fly.") \
M(DelayedInserts,"Number of INSERT queries that are throttled due to high number of active data parts for partition in a MergeTree table.") \
M(ContextLockWait,"Number of threads waiting for lock in Context. This is global lock.") \
M(StorageBufferRows,"Number of rows in buffers of Buffer tables") \
M(StorageBufferBytes,"Number of bytes in buffers of Buffer tables") \
M(DictCacheRequests,"Number of requests in fly to data sources of dictionaries of cache type.") \
M(DistributedFilesToInsert,"Number of pending files to process for asynchronous insertion into Distributed tables. Number of files for every shard is summed.") \
M(BrokenDistributedFilesToInsert,"Number of files for asynchronous insertion into Distributed tables that has been marked as broken. This metric will starts from 0 on start. Number of files for every shard is summed.") \