ClickHouse monitoring
ClickHouse server performance from built-in metrics data
SkyWalking leverages ClickHouse built-in metrics data since v20.1.2.4. It leverages OpenTelemetry Collector to transfer the metrics to OpenTelemetry receiver and into the Meter System.
Data flow
- Configure ClickHouse to expose metrics data for scraping from Prometheus.
- OpenTelemetry Collector fetches metrics from ClickeHouse server through Prometheus endpoint, and pushes metrics to SkyWalking OAP Server via OpenTelemetry gRPC exporter.
- The SkyWalking OAP Server parses the expression with MAL to filter/calculate/aggregate and store the results.
Set up
- Set up built-in prometheus endpoint .
- Set up OpenTelemetry Collector . For details on Prometheus Receiver in OpenTelemetry Collector, refer to here.
- Config SkyWalking OpenTelemetry receiver.
ClickHouse Monitoring
ClickHouse monitoring provides monitoring of the metrics 、events and asynchronous_metrics of the ClickHouse server.
ClickHouse cluster is cataloged as a Layer: CLICKHOUSE Service in OAP. Each ClickHouse server is cataloged as
an Instance in OAP.
ClickHouse Instance Supported Metrics
| Monitoring Panel | Unit | Metric Name | Description | Data Source |
|---|---|---|---|---|
| CpuUsage | count | meter_clickhouse_instance_cpu_usage | CPU time spent seen by OS per second(according to ClickHouse.system.dashboard.CPU Usage (cores)). | ClickHouse |
| MemoryUsage | percentage | meter_clickhouse_instance_memory_usage | Total amount of memory (bytes) allocated by the server/ total amount of OS memory. | ClickHouse |
| MemoryAvailable | percentage | meter_clickhouse_instance_memory_available | Total amount of memory (bytes) available for program / total amount of OS memory. | ClickHouse |
| Uptime | sec | meter_clickhouse_instance_uptime | The server uptime in seconds. It includes the time spent for server initialization before accepting connections. | ClickHouse |
| Version | string | meter_clickhouse_instance_version | Version of the server in a single integer number in base-1000. | ClickHouse |
| FileOpen | count | meter_clickhouse_instance_file_open | Number of files opened. | ClickHouse |
ClickHouse Network Supported Metrics
| Monitoring Panel | Unit | Metric Name | Description | Data Source |
|---|---|---|---|---|
| TcpConnections | count | meter_clickhouse_instance_tcp_connections meter_clickhouse_tcp_connections |
Number of connections to TCP server. | ClickHouse |
| MysqlConnections | count | meter_clickhouse_instance_mysql_connections meter_clickhouse_mysql_connections |
Number of client connections using MySQL protocol. | ClickHouse |
| HttpConnections | count | meter_clickhouse_instance_http_connections meter_clickhouse_mysql_connections |
Number of connections to HTTP server. | ClickHouse |
| InterserverConnections | count | meter_clickhouse_instance_interserver_connections meter_clickhouse_interserver_connections |
Number of connections from other replicas to fetch parts. | ClickHouse |
| PostgresqlConnections | count | meter_clickhouse_instance_postgresql_connections meter_clickhouse_postgresql_connections |
Number of client connections using PostgreSQL protocol. | ClickHouse |
| ReceiveBytes | bytes | meter_clickhouse_instance_network_receive_bytes meter_clickhouse_network_receive_bytes |
Total number of bytes received from network. | ClickHouse |
| SendBytes | bytes | meter_clickhouse_instance_network_send_bytes meter_clickhouse_network_send_bytes |
Total number of bytes send to network. | ClickHouse |
ClickHouse Query Supported Metrics
| Monitoring Panel | Unit | Metric Name | Description | Data Source |
|---|---|---|---|---|
| QueryCount | count | meter_clickhouse_instance_query meter_clickhouse_query |
Number of executing queries. | ClickHouse |
| SelectQueryCount | count | meter_clickhouse_instance_query_select meter_clickhouse_query_select |
Number of executing queries, but only for SELECT queries. | ClickHouse |
| InsertQueryCount | count | meter_clickhouse_instance_query_insert meter_clickhouse_query_insert |
Number of executing queries, but only for INSERT queries. | ClickHouse |
| SelectQueryRate | count/sec | meter_clickhouse_instance_query_select_rate meter_clickhouse_query_select_rate |
Number of SELECT queries per second. | ClickHouse |
| InsertQueryRate | count/sec | meter_clickhouse_instance_query_insert_rate meter_clickhouse_query_insert_rate |
Number of INSERT queries per second. | ClickHouse |
| Querytime | microsec | meter_clickhouse_instance_querytime_microseconds meter_clickhouse_querytime_microseconds |
Total time of all queries. | ClickHouse |
| SelectQuerytime | microsec | meter_clickhouse_instance_querytime_select_microseconds meter_clickhouse_querytime_select_microseconds |
Total time of SELECT queries. | ClickHouse |
| InsertQuerytime | microsec | meter_clickhouse_instance_querytime_insert_microseconds meter_clickhouse_querytime_insert_microseconds |
Total time of INSERT queries. | ClickHouse |
| OtherQuerytime | microsec | meter_clickhouse_instance_querytime_other_microseconds meter_clickhouse_querytime_other_microseconds |
Total time of queries that are not SELECT or INSERT. | ClickHouse |
| QuerySlowCount | count | meter_clickhouse_instance_query_slow meter_clickhouse_query_slow |
Number of reads from a file that were slow. | ClickHouse |
ClickHouse Insertion Supported Metrics
| Monitoring Panel | Unit | Metric Name | Description | Data Source |
|---|---|---|---|---|
| InsertQueryCount | count | meter_clickhouse_instance_query_insert meter_clickhouse_query_insert |
Number of executing queries, but only for INSERT queries. | ClickHouse |
| InsertedRowCount | count | meter_clickhouse_instance_inserted_rows meter_clickhouse_inserted_rows |
Number of rows INSERTed to all tables. | ClickHouse |
| InsertedBytes | bytes | meter_clickhouse_instance_inserted_bytes meter_clickhouse_inserted_bytes |
Number of bytes INSERTed to all tables. | ClickHouse |
| DelayedInsertCount | count | meter_clickhouse_instance_delayed_insert meter_clickhouse_delayed_insert |
Number of times the INSERT of a block to a MergeTree table was throttled due to high number of active data parts for partition. | ClickHouse |
ClickHouse Replicas Supported Metrics
| Monitoring Panel | Unit | Metric Name | Description | Data Source |
|---|---|---|---|---|
| ReplicatedChecks | count | meter_clickhouse_instance_replicated_checks meter_clickhouse_replicated_checks |
Number of data parts checking for consistency. | ClickHouse |
| ReplicatedFetch | count | meter_clickhouse_instance_replicated_fetch meter_clickhouse_replicated_fetch |
Number of data parts being fetched from replica. | ClickHouse |
| ReplicatedSend | count | meter_clickhouse_instance_replicated_send meter_clickhouse_replicated_send |
Number of data parts being sent to replicas. | ClickHouse |
ClickHouse MergeTree Supported Metrics
| Monitoring Panel | Unit | Metric Name | Description | Data Source |
|---|---|---|---|---|
| BackgroundMergeCount | count | meter_clickhouse_instance_background_merge meter_clickhouse_background_merge |
Number of executing background merges. | ClickHouse |
| MergeRows | count | meter_clickhouse_instance_merge_rows meter_clickhouse_merge_rows |
Rows read for background merges. This is the number of rows before merge. | ClickHouse |
| MergeUncompressedBytes | bytes | meter_clickhouse_instance_merge_uncompressed_bytes meter_clickhouse_merge_uncompressed_bytes |
Uncompressed bytes (for columns as they stored in memory) that was read for background merges. This is the number before merge. | ClickHouse |
| MoveCount | count | meter_clickhouse_instance_move meter_clickhouse_move |
Number of currently executing moves. | ClickHouse |
| PartsActive | Count | meter_clickhouse_instance_parts_active meter_clickhouse_parts_active |
Active data part, used by current and upcoming SELECTs. | ClickHouse |
| MutationsCount | count | meter_clickhouse_instance_mutations meter_clickhouse_mutations |
Number of mutations (ALTER DELETE/UPDATE). | ClickHouse |
ClickHouse Kafka Table Engine Supported Metrics
When table engine works with Apache Kafka.
Kafka lets you:
- Publish or subscribe to data flows.
- Organize fault-tolerant storage.
- Process streams as they become available.
| Monitoring Panel | Unit | Metric Name | Description | Data Source |
|---|---|---|---|---|
| KafkaMessagesRead | count | meter_clickhouse_instance_kafka_messages_read meter_clickhouse_kafka_messages_read |
Number of Kafka messages already processed by ClickHouse. | ClickHouse |
| KafkaWrites | count | meter_clickhouse_instance_kafka_writes meter_clickhouse_kafka_writes |
Number of writes (inserts) to Kafka tables. | ClickHouse |
| KafkaConsumers | count | meter_clickhouse_instance_kafka_consumers meter_clickhouse_kafka_consumers |
Number of active Kafka consumers. | ClickHouse |
| KafkaProducers | count | meter_clickhouse_instance_kafka_producers meter_clickhouse_kafka_producers |
Number of active Kafka producer created. | ClickHouse |
ClickHouse ZooKeeper Supported Metrics
ClickHouse uses ZooKeeper for storing metadata of replicas when using replicated tables. If replicated tables are not used, this section of parameters can be omitted.
| Monitoring Panel | Unit | Metric Name | Description | Data Source |
|---|---|---|---|---|
| ZookeeperSession | count | meter_clickhouse_instance_zookeeper_session meter_clickhouse_zookeeper_session |
Number of sessions (connections) to ZooKeeper. | ClickHouse |
| ZookeeperWatch | count | meter_clickhouse_instance_zookeeper_watch meter_clickhouse_zookeeper_watch |
Number of watches (event subscriptions) in ZooKeeper. | ClickHouse |
| ZookeeperBytesSent | bytes | meter_clickhouse_instance_zookeeper_bytes_sent meter_clickhouse_zookeeper_bytes_sent |
Number of bytes send over network while communicating with ZooKeeper. | ClickHouse |
| ZookeeperBytesReceive | bytes | meter_clickhouse_instance_zookeeper_bytes_received meter_clickhouse_zookeeper_bytes_received |
Number of bytes send over network while communicating with ZooKeeper. | ClickHouse |
ClickHouse Keeper Supported Metrics
| Monitoring Panel | Unit | Metric Name | Description | Data Source |
|---|---|---|---|---|
| KeeperAliveConnections | count | meter_clickhouse_instance_keeper_connections_alive meter_clickhouse_keeper_connections_alive |
Number of alive connections for embedded ClickHouse Keeper. | ClickHouse |
| KeeperOutstandingRequets | count | meter_clickhouse_instance_keeper_outstanding_requests meter_clickhouse_keeper_outstanding_requests |
Number of outstanding requests for embedded ClickHouse Keeper. | ClickHouse |
Customizations
You can customize your own metrics/expression/dashboard panel. The metrics definition and expression rules are found
in /config/otel-rules/clickhouse. The ClickHouse dashboard panel configurations are found
in /config/ui-initialized-templates/clickhouse.