zabbix_export: version: '6.0' date: '2021-11-21T21:55:49Z' groups: - uuid: 7df96b18c230490a9a0a9e2307226338 name: Templates templates: - uuid: a7129a0136d04d1594b66ea720267d4d template: Clickhouse name: Clickhouse description: | ## Overview Template to monitor main Clickhouse parameters *without using additional scripts* It uses HTTP interface to read metrics from *system* database using Zabbix Agent's HTTP client Gathered metrics: * MaxPartCountForPartition * ReplicasMaxQueueSize * Uptime * InsertedBytes * InsertedRows * Query * InsertQuery * SelectQuery * Merge * Inactive parts count * HTTPConnection * TCPConnection * InterserverConnection * LeaderReplica * ReadonlyReplica * Used memory (this is roughly calculated from metrics and is not accurate) * Ping (`/ping` HTTP endpoint)

={$CH_MAX_INACTIVE_PARTS}' name: 'Clickhouse: Too many inactive parts (>{$MAX_INACTIVE_PARTS})' priority: HIGH description: 'Too many inactive parts which take up disk space' - uuid: b96e9519d16e44b0af0dd9d5d0ba97ea name: 'Clickhouse Events' key: 'web.page.get[{$CH_URL}/?query=SELECT%20event%2C%20value%20FROM%20system.events%20FORMAT%20JSON]' history: '0' trends: '0' value_type: TEXT description: 'SELECT event, value FROM system.events FORMAT JSON' preprocessing: - type: JAVASCRIPT parameters: - | var d = JSON.parse(value.substring(value.indexOf("{\n")).trim()).data; var r = {}; d.forEach(function(v) { r[v.event] = parseInt(v.value) }) return JSON.stringify(r); tags: - tag: Application value: Clickhouse - uuid: 519cfaa3a1a041fdba5bc451a110450a name: 'Clickhouse AsyncMetrics' key: 'web.page.get[{$CH_URL}/?query=SELECT%20metric%2C%20value%20FROM%20system.asynchronous_metrics%20FORMAT%20JSON]' history: '0' trends: '0' value_type: TEXT description: 'SELECT metric, value FROM system.asynchronous_metrics FORMAT JSON' preprocessing: - type: JAVASCRIPT parameters: - | var d = JSON.parse(value.substring(value.indexOf("{\n")).trim()).data; var r = {}; d.forEach(function(v) { r[v.metric] = parseInt(v.value) }) return JSON.stringify(r); tags: - tag: Application value: Clickhouse - uuid: a79e55cceb8043feaeb064a2aa5218e2 name: 'Clickhouse Metrics' key: 'web.page.get[{$CH_URL}/?query=SELECT%20metric%2C%20value%20FROM%20system.metrics%20FORMAT%20JSON]' history: '0' trends: '0' value_type: TEXT description: 'SELECT metric, value FROM system.metrics FORMAT JSON' preprocessing: - type: JAVASCRIPT parameters: - | var d = JSON.parse(value.substring(value.indexOf("{\n")).trim()).data; var r = {}; d.forEach(function(v) { r[v.metric] = parseInt(v.value) }) return JSON.stringify(r); tags: - tag: Application value: Clickhouse - uuid: a037d50194a446598574ca5b1fed80e7 name: 'Clickhouse Ping' key: 'web.page.regexp[{$CH_URL}/ping,,,HTTP/1.1 (\d+),,\1]' history: 1d trends: 7d tags: - tag: Application value: Clickhouse triggers: - uuid: b995018a5a554e8c97a844615b10d2f2 expression: 'nodata(/Clickhouse/web.page.regexp[{$CH_URL}/ping,,,HTTP/1.1 (\d+),,\1],600s)=1 or last(/Clickhouse/web.page.regexp[{$CH_URL}/ping,,,HTTP/1.1 (\d+),,\1])<>200' name: 'Clickhouse: Ping failed' priority: HIGH macros: - macro: '{$CH_MAX_INACTIVE_PARTS}' value: '2000' - macro: '{$CH_MAX_PARTS}' value: '50' - macro: '{$CH_MAX_REPLICA_QUEUE}' value: '5' - macro: '{$CH_URL}' value: 'http://127.0.0.1:8123'