ClickHouse clusters managed by KubeBlocks expose Prometheus metrics on port 8001 (http-metrics) via the built-in HTTP metrics endpoint.
kubectl v1.21+ installed and configured with cluster accessdemo namespace: kubectl create ns demopodMonitorSelector matching label release: prometheuskubectl apply -f - <<EOF
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
name: clickhouse-pod-monitor
namespace: demo
labels:
release: prometheus
spec:
jobLabel: app.kubernetes.io/managed-by
podTargetLabels:
- app.kubernetes.io/instance
- app.kubernetes.io/managed-by
- apps.kubeblocks.io/component-name
- apps.kubeblocks.io/pod-name
podMetricsEndpoints:
- path: /metrics
port: http-metrics
scheme: http
namespaceSelector:
matchNames:
- demo
selector:
matchLabels:
app.kubernetes.io/instance: clickhouse-cluster
EOF
Verify the PodMonitor is created:
kubectl get podmonitor clickhouse-pod-monitor -n demo
NAME AGE
clickhouse-pod-monitor 10s
| Metric | Description |
|---|---|
ClickHouseMetrics_Query | Number of executing queries |
ClickHouseMetrics_Connection | Number of connections |
ClickHouseAsyncMetrics_MemoryResident | Resident memory usage |
ClickHouseProfileEvents_Query | Total queries executed |
ClickHouseProfileEvents_SelectQuery | Total SELECT queries |
ClickHouseProfileEvents_InsertQuery | Total INSERT queries |
ClickHouseProfileEvents_ReadCompressedBytes | Compressed bytes read |
kubectl delete podmonitor clickhouse-pod-monitor -n demo --ignore-not-found