# chmonitor > Open-source ClickHouse monitoring dashboard — queries, storage, cluster health, AI agent, and MCP. Same codebase for self-hosted and cloud. HTML sitemap: https://chmonitor.dev/sitemap.xml ## Marketing pages - [chmonitor](https://chmonitor.dev): Open-source ClickHouse monitoring dashboard with an AI agent. - [Brand](https://chmonitor.dev/brand): Logos and brand assets. - [Changelog](https://chmonitor.dev/changelog): What shipped in each chmonitor release. - [CLI](https://chmonitor.dev/cli): chm / chmonitor terminal client. - [ClickHouse Dashboard — Pre-built Ops Pages | chmonitor](https://chmonitor.dev/clickhouse-dashboard): A ClickHouse ops dashboard with pre-built pages for queries, health, storage and replication — not Grafana panels you assemble. - [ClickHouse monitoring](https://chmonitor.dev/clickhouse-monitoring): What to monitor in ClickHouse: system tables, dashboards, recommend-only advisor. - [ClickHouse vs Druid vs Pinot](https://chmonitor.dev/clickhouse-vs-druid-pinot): Real-time OLAP engine comparison. - [ClickHouse vs Postgres](https://chmonitor.dev/clickhouse-vs-postgres): When analytics belongs in ClickHouse. - [ClickHouse vs TimescaleDB](https://chmonitor.dev/clickhouse-vs-timescaledb): OLAP vs time-series Postgres. - [Cluster health](https://chmonitor.dev/cluster-health): Replication, merges, and node health views. - [Customers](https://chmonitor.dev/customers): Who runs ClickHouse with chmonitor. - [Ask your cluster anything](https://chmonitor.dev/features/ai-agent): A schema-aware AI agent for ClickHouse: 29 read-only tools across schema, diagnostics and optimization, MCP endpoint for Claude and Cursor, bring your own model. - [Know before your users do](https://chmonitor.dev/features/alerting): Built-in ClickHouse health checks with tunable thresholds: replication lag, disk, memory and failed queries. Native adapters for Slack, Discord, Teams, Google Chat, Telegram, ntfy, Pushover, Twilio SMS, Opsgenie, PagerDuty, and healthchecks.io — plus per-rule routing. - [Explore tables and how they connect](https://chmonitor.dev/features/data-explorer): Browse ClickHouse databases and tables, map dependencies between materialized views, dictionaries and sources, and run SQL — without leaving the dashboard. - [Know your cluster's vitals](https://chmonitor.dev/features/insights): AI-generated ClickHouse findings, record-breaking queries, storage stats and a year of activity — surfaced automatically, no dashboards to build. - [Your whole cluster on one screen](https://chmonitor.dev/features/overview): One screen for a ClickHouse cluster: live query rate, memory, connections, merges and disk, charted from system tables with no dashboards to build. - [Watch your Postgres → ClickHouse CDC](https://chmonitor.dev/features/peerdb): Monitor Postgres → ClickHouse CDC with PeerDB: live mirror status, rows-synced trends, lag triage, slot health, logs and alerts — read-only, no agent. - [Monitor Postgres alongside ClickHouse](https://chmonitor.dev/features/postgres): Monitor Postgres alongside ClickHouse: pg_stat_statements query insights, live pg_stat_activity, read-only pinned connections and AI agent tools. Free while in beta. - [Every query, explained](https://chmonitor.dev/features/queries): Monitor running, slow, failed and expensive ClickHouse queries: live tables, heatmaps, EXPLAIN, kill from the UI, memory breakdowns and record-breaker insights. - [See where your disk actually goes](https://chmonitor.dev/features/storage): See where ClickHouse disk goes: table and part sizes, compression ratios, partitions and disk headroom, ranked biggest first. - [See the whole cluster at a glance](https://chmonitor.dev/features/topology): Interactive ClickHouse cluster topology: nodes, shards, replicas and Keeper quorum with live replication links, health states and per-node metrics. - [Know exactly what flows into your cluster](https://chmonitor.dev/features/traffic): See data flowing into ClickHouse: rows, bytes and insert queries over time, compression, write amplification, top tables by ingestion, replication and PeerDB — with customizable presets. - [License](https://chmonitor.dev/license): Self-hosted licenses (yearly and lifetime) plus sponsorship tiers. - [License lookup](https://chmonitor.dev/license/lookup): Look up a self-hosted license key. - [Register license](https://chmonitor.dev/license/register): Register a self-hosted license. - [Monitor queries](https://chmonitor.dev/monitor-queries): Running, slow, and failed ClickHouse queries. - [Performance](https://chmonitor.dev/performance): How chmonitor stays fast on large clusters. - [Replication](https://chmonitor.dev/replication): Replication lag and replica health. - [Sponsors](https://chmonitor.dev/sponsors): Sponsor chmonitor: one-off $19, $59, $99, or $199 for a listing and a logo under the homepage hero. - [chmonitor vs ClickHouse Cloud console](https://chmonitor.dev/vs-clickhouse-cloud): Monitoring your own clusters vs the Cloud console. - [chmonitor vs Datadog](https://chmonitor.dev/vs-datadog): ClickHouse-native monitoring compared to Datadog. - [chmonitor vs Grafana](https://chmonitor.dev/vs-grafana): Dedicated ClickHouse ops UI vs Grafana panels. - [chmonitor v0.3 launch film](https://chmonitor.dev/watch/v0-3): 36-second walkthrough of the v0.3 dashboard, AI agent, and cluster health. ## Blog Index: https://blog.chmonitor.dev/llms.txt Sitemap: https://blog.chmonitor.dev/sitemap.xml - [chmonitor v0.3.7 — An agent that reads your page](https://blog.chmonitor.dev/v0.3.7/): A smarter AI agent that can read any dashboard page, alerts you set up from a health check, PeerDB stall and pattern alerts, task-based navigation, and a redesigned docs site. - [Send chmonitor health alerts to Slack](https://blog.chmonitor.dev/slack-alerts/): Set up Slack alerts for chmonitor health checks with an incoming webhook or the native Slack app, on Docker, Cloudflare or Kubernetes. - [Health alerts to any webhook, on Kubernetes](https://blog.chmonitor.dev/webhook-alerts-kubernetes/): Send chmonitor health alerts to Slack, Discord or Matrix, and tell several ClickHouse deployments apart in one channel. - [chmonitor v0.3.6 — Less menu. More cluster.](https://blog.chmonitor.dev/v0.3.6/): Everything since v0.2 in one place: a sidebar cut from 16 menus to 5 task groups, a faster dashboard, Cloud, Postgres and PeerDB monitoring, alerting, AI, and new compare tools. - [chmonitor v0.3.5 — PeerDB alerting, a local CLI, and a quieter sidebar](https://blog.chmonitor.dev/v0.3.5/): 75 commits and 185 pull requests across five weeks: PeerDB grew a full alert cycle, the Rust CLI learned local named connections, the sidebar learned to stay out of the way, and the public API surface got hardened. - [Deploy chmonitor on Kubernetes with Helm](https://blog.chmonitor.dev/self-hosting-chmonitor-helm/): Install the chmonitor Helm chart, point it at ClickHouse, port-forward or add an ingress. - [chmonitor v0.3.4 — Tools, Schema Compare, workspace roles](https://blog.chmonitor.dev/v0.3.4/): After four days of agents working day and night — 106 PRs, 267 comments — v0.3.4 is the tag for Tools, workspace roles, Schema Compare, and the shift to self-hosted licenses. - [A DBA, an SRE, and an engineer should not share a sidebar](https://blog.chmonitor.dev/customize-dashboard/): Pick a workspace role, hide pages you never open, pin the ones you do — the sidebar follows this browser, not the whole team. - [What's next in 0.3.x: Tools, workspace roles, Schema Compare](https://blog.chmonitor.dev/whats-next-0-3-x/): These shipped in v0.3.4 — a Tools menu, per-browser workspace roles, Schema Compare, Settings Diff, and a What's new dialog. - [chmonitor selling commercial license](https://blog.chmonitor.dev/self-hosted-licenses/): We used to sell hosted dashboard seats. Most people who run ClickHouse already have infra, and they cannot send cluster data to a vendor. So we sell a self-hosted license instead, and work on the product. - [chmonitor v0.3.3 — guest AI caps, alert templates, favorites](https://blog.chmonitor.dev/v0.3.3/): After four days of agents working day and night — 50 PRs, 83 comments — v0.3.3 caps Cloud guest AI, adds alert templates, and lets you drag pinned favorites. - [5 min of ClickHouse: ch-ui — a lightweight ClickHouse dashboard](https://blog.chmonitor.dev/ch-ui-quickstart/): What ch-ui is, how to run it with Docker, what it shows, and when a full monitoring tool like chmonitor is the better choice. - [5 min of ClickHouse: what an AI agent can actually do with your ClickHouse data](https://blog.chmonitor.dev/clickhouse-ai-agent-capabilities/): AI agents for ClickHouse are not just chatbots — they're structured tools that can run queries, analyze patterns, and surface problems. Here's what's actually possible and where the line is. - [5 min of ClickHouse: practical cost optimization without changing your schema](https://blog.chmonitor.dev/clickhouse-cost-optimization/): Where ClickHouse actually costs money, how to find the expensive queries from system.query_log, and the TTL and merge-tuning levers that move storage costs. - [5 min of ClickHouse: GRANT permissions without giving away the keys](https://blog.chmonitor.dev/clickhouse-grant-permissions/): The ClickHouse GRANT syntax you actually use, a least-privilege monitoring user pattern, and how FLUSH PRIVILEGES fits in. - [5 min of ClickHouse: the two kinds of indexes and when each one actually helps](https://blog.chmonitor.dev/clickhouse-indexes-guide/): ClickHouse has primary keys and skip indexes, and they do completely different things. Here's what index_granularity means, and how bloom_filter, tokenbf_v1, and minmax skip indexes actually help your queries. - [5 min of ClickHouse: views vs materialized views — when projections are the better choice](https://blog.chmonitor.dev/clickhouse-materialized-views-guide/): Regular views, materialized views, and projections each solve a different problem. Here's how to decide which one your query pattern actually needs. - [5 min of ClickHouse: what to monitor (and what not to)](https://blog.chmonitor.dev/clickhouse-monitoring-101/): The four things that actually matter in ClickHouse monitoring, what system tables to check, and why a Grafana dashboard is not the goal — visibility is. - [5 min of ClickHouse: a ClickHouse upgrade checklist that doesn't break monitoring](https://blog.chmonitor.dev/clickhouse-upgrade-checklist/): Pre-upgrade checks, the system-table changes that light up new dashboard pages at each version, and post-upgrade grant verification — so you upgrade ClickHouse without losing visibility. - [Agent mode now supports Grok 4.5](https://blog.chmonitor.dev/agent-grok-4-5/): Pick x-ai/grok-4.5 from the model picker and the chmonitor AI agent will plan and run your ClickHouse diagnostics with it — over OpenRouter or AnyRouter. - [AI Insights: your cluster's problems, before you go looking](https://blog.chmonitor.dev/ai-insights-notifications/): chmonitor's AI Insights engine watches your ClickHouse cluster and surfaces critical findings — read-only replicas, detached parts, replication lag — on the overview and in the header panel. - [How to monitor PostgreSQL with chmonitor](https://blog.chmonitor.dev/monitor-postgres-with-chmonitor/): A practical walkthrough: enable the Postgres feature flag, create a read-only monitoring role, turn on pg_stat_statements, connect a host, and tour Query Insights, Running Queries, and the AI agent's Postgres tools. - [chmonitor now monitors PeerDB](https://blog.chmonitor.dev/peerdb-monitoring/): Snapshot progress, CDC batch history, fleet-wide lag triage, a logs feed, and replication slot health — read-only, in the same dashboard as your ClickHouse cluster. - [Postgres as a monitored source (beta)](https://blog.chmonitor.dev/postgres-monitoring-beta/): chmonitor now monitors Postgres alongside ClickHouse — read-only query insights, running queries, and AI agent tools. Beta, free on every plan. - [Ask your ClickHouse cluster anything: the AI agent over MCP](https://blog.chmonitor.dev/clickhouse-ai-agent-mcp/): How chmonitor's read-only AI agent turns natural-language questions into system-table queries, and how to reach it from Claude Desktop or Cursor over MCP. - [Capacity planning with the disk-forecast and TTL advisor](https://blog.chmonitor.dev/clickhouse-capacity-planning-ttl/): A worked example of forecasting ClickHouse disk exhaustion and getting a recommend-only TTL adjustment before an out-of-space incident happens. - [ClickHouse disk is full — what to do right now](https://blog.chmonitor.dev/clickhouse-disk-full-emergency/): The emergency steps when a ClickHouse disk hits capacity: what system.disks tells you, what's safe to delete or move, and what to fix afterward. - [5 min of ClickHouse: spill GROUP BY to disk instead of OOMing](https://blog.chmonitor.dev/clickhouse-external-group-by/): A high-cardinality GROUP BY can blow past max_memory_usage and die with MEMORY_LIMIT_EXCEEDED. Here's the setting that spills it to disk, the cheaper fixes to try first, and the query that proves a spill happened. - [5 min of ClickHouse: connect a firewalled ClickHouse to chmonitor Cloud](https://blog.chmonitor.dev/clickhouse-firewalled-cloud/): chmonitor Cloud runs on Cloudflare Workers with no fixed egress IP, so allowlisting Cloudflare's ranges is not a real allowlist. Here's the tunnel that works with zero inbound ports opened. - [5 min of ClickHouse: Escaping MEMORY_LIMIT_EXCEEDED Without Buying a Bigger Box](https://blog.chmonitor.dev/clickhouse-memory-limit-exceeded/): Where ClickHouse's memory limits actually apply, how to find which query or setting is hitting them, and the spill-to-disk settings that fix it. - [5 min of ClickHouse: fix 'Memory limit (total) exceeded' (it's not one query)](https://blog.chmonitor.dev/clickhouse-memory-limit-total-exceeded/): The server-wide 'Memory limit (total) exceeded' error is tripped by every concurrent query, merge, and cache combined — not one query's budget. Here are the queries that show what's eating RAM. - [ClickHouse monitoring: the dashboards every cluster actually needs](https://blog.chmonitor.dev/clickhouse-monitoring-dashboards/): What to monitor in ClickHouse, which system tables power each view, and how chmonitor turns them into a real-time dashboard — from query latency and merges to replication lag and disk pressure. - [Self-hosting chmonitor on Kubernetes](https://blog.chmonitor.dev/clickhouse-monitoring-kubernetes/): Deploy the chmonitor ClickHouse dashboard on Kubernetes with the vendored Helm chart, including secrets, health probes, and an ingress. - [ClickHouse optimization: the 7 levers that actually move query latency](https://blog.chmonitor.dev/clickhouse-optimization-guide/): A practical ClickHouse optimization checklist — from PREWHERE and skip indexes to parts management and query profiling — with the system-table queries chmonitor runs to find the wins. - [The query advisor: DDL recommendations you review, not that run themselves](https://blog.chmonitor.dev/clickhouse-query-optimization-advisor/): How chmonitor's optimization advisor turns a slow ClickHouse query into ranked skip-index, projection, and PREWHERE recommendations — and why it never applies any of them for you. - [The 6 root causes of slow ClickHouse (and the query that rules out each)](https://blog.chmonitor.dev/clickhouse-query-optimization-pillars/): Most ClickHouse slowness traces to one of six things: partition key, granularity, PREWHERE, skip index, projection vs MV, or GROUP BY memory. A diagnostic map with the system-table query to start at. - [Why is my ClickHouse replication lagging?](https://blog.chmonitor.dev/clickhouse-replication-lag/): Reading absolute_delay and queue_size from system.replicas to find and fix ClickHouse replication lag before readers see stale data. - [Self-hosting chmonitor on Docker in five minutes](https://blog.chmonitor.dev/clickhouse-self-hosting-docker/): Run the chmonitor ClickHouse dashboard as a self-hosted Docker container against your own cluster, no signup or cloud account required. - [5 min of ClickHouse: skip indices that actually prune your scans](https://blog.chmonitor.dev/clickhouse-skip-indices-guide/): ClickHouse secondary indices skip whole granule blocks instead of indexing rows. Here are the four index types, when each fires, and the EXPLAIN query that proves it's working. - [Debugging a spike in system.errors](https://blog.chmonitor.dev/clickhouse-system-errors-spikes/): How to read system.errors error counters to find what's actually failing in ClickHouse, and why they're cumulative since server start rather than per-incident. - [5 min of ClickHouse: upgrade safely while chmonitor stays connected](https://blog.chmonitor.dev/clickhouse-upgrade-safely/): Pre-upgrade checks, the system-table changes that light up new dashboard pages at each version, and the post-upgrade grants sanity queries — so you upgrade ClickHouse without losing monitoring. - [Finding your slowest ClickHouse queries with system.query_log: a complete walkthrough](https://blog.chmonitor.dev/find-slow-clickhouse-queries/): A complete walkthrough of the query_duration_ms > 5000 SQL to surface your slowest ClickHouse queries from system.query_log: what each column means, how it changes across versions, and how to watch for the next one without re-running it by hand. - [5 min of ClickHouse: Partition Key Mistakes That Quietly Kill Performance](https://blog.chmonitor.dev/clickhouse-partition-key-mistakes/): The most common ClickHouse PARTITION BY mistakes — over-partitioning, using it like an index — and the system.parts query to check yours. - [5 min of ClickHouse: Projections vs Materialized Views — A Decision Tree](https://blog.chmonitor.dev/clickhouse-projections-vs-materialized-views/): When to use a ClickHouse projection versus a materialized view for a recurring query pattern, with the DDL for both. - [5 min of ClickHouse: PREWHERE vs WHERE — How Granule Skipping Actually Works](https://blog.chmonitor.dev/clickhouse-prewhere-vs-where/): What PREWHERE actually changes about query execution, when ClickHouse's optimizer gets it wrong, and how to verify granule skipping with EXPLAIN. - [5 min of ClickHouse: What ALTER ... DELETE Really Costs on a Billion-Row Table](https://blog.chmonitor.dev/clickhouse-mutation-alter-delete-cost/): Why ALTER TABLE ... DELETE rewrites whole parts instead of removing rows, how to track progress in system.mutations, and cheaper alternatives. - [5 min of ClickHouse: Reading system.merges — Is Your Cluster in a Merge Storm?](https://blog.chmonitor.dev/clickhouse-system-merges-merge-storm/): How to read system.merges to tell a healthy background merge load from a merge storm eating your CPU and I/O. - [5 min of ClickHouse: Finding Your 10 Slowest Queries from system.query_log](https://blog.chmonitor.dev/clickhouse-slowest-queries-system-query-log/): The exact system.query_log query to rank your slowest ClickHouse queries, what each column means, and what to check next. - [5 min of ClickHouse: Diagnosing 'Too Many Parts' from system.parts](https://blog.chmonitor.dev/clickhouse-too-many-parts/): Why ClickHouse throws Too many parts, the exact system.parts query to find the offending table, and how to fix it without guessing. - [chmonitor v0.3 — a full rebuild](https://blog.chmonitor.dev/v0.3/): We rebuilt chmonitor from the ground up on TanStack Start: a faster dashboard, an AI agent that talks to your cluster over MCP, query monitoring, a data explorer, cluster topology, AI insights and one-command self-hosting anywhere. ## Documentation and product - [Docs (every page)](https://docs.chmonitor.dev/llms.txt) - [Docs full markdown](https://docs.chmonitor.dev/llms-full.txt) - [Hosted dashboard](https://dash.chmonitor.dev) - [GitHub](https://github.com/chmonitor/chmonitor)