Every chmonitor dashboard query now says who sent it
1 hour ago
Version 0.3.9 of chmonitor, the ops dashboard for ClickHouse, makes every query it sends say who sent it. Around that come a Dashboard Usage page, alerts that thread, and an optimization plan that leaves the changes to you. And opted-in webhook bodies rename two keys.
Ask about this presentation
Chapters
0:00Every query says who sent it
0:19The attribution record
0:41Dashboard Usage and the users page
1:01Alerts thread on Matrix and Telegram
1:19A structured alert block for agents
1:41An optimization plan that recommends
2:03Replica drift, findings over MCP, quieter replication
2:22Agent errors redact secrets
2:40Webhook bodies: details becomes alert
2:59Upgrade
Show transcriptHide transcript
Version 0.3.9 of chmonitor, the ops dashboard for ClickHouse, makes every query it sends say who sent it. Around that come a Dashboard Usage page, alerts that thread, and an optimization plan that leaves the changes to you. And opted-in webhook bodies rename two keys.
Every query the dashboard sends now opens with a one-line JSON comment: the app version, the signed-in user, the host, and the source, such as a chart, the console or the agent. The same record goes into the log comment setting, so the query log can be grouped by user. It's on by default, and email stays out unless you opt in.
A new Dashboard Usage page reads that record back: queries, users, error rate, p95 duration and bytes read, with top ten lists by user, source and page. Click a user for the same view of just that person. And the users page now marks each account active, idle or inactive, with its last login.
On Matrix and Telegram, the first message of an alert now starts a thread. Reminders, escalations and the recovery reply under it, so one problem stays in one thread. The thread roots live in the metadata database. Without one, alerts go out top-level, as before.
Webhooks with details turned on now get one alert object: the rule, metric, threshold, value, trend, and when it was first seen. Text from the cluster sits under an untrusted key, redacted and capped, so an agent can treat it as data. Firing alerts also list up to five top contributors, the biggest tables or the heaviest running queries.
The advisor has a new Optimization plan tab. It ranks the findings the advisors already stored, like unread tables and detached parts, by measured gain against the hours to apply. Risky items stay listed, marked for owner approval. The DDL is copy only, there is no apply button, and the plan exports to Markdown or JSON.
The access matrix gets a Compare replicas switch, off by default, that marks where effective access differs between replicas. The MCP server gains a read-only tool for current health findings. And hosts without replicated tables now show replication as not used, and skip queue alerts.
Agent errors are now scrubbed before the agent sees them. Credentials in table functions like s3 and mysql are redacted, along with secret URL parameters, email addresses and IP addresses. The lockfiles are also patched for the zod and astro advisories.
One change can break a receiver. On a custom webhook target with details set to true, the JSON body used to carry a details object. In 0.3.9 that key is alert, and first fired at becomes first seen at. Targets without details get the same body as before.
To upgrade, pull the 0.3.9 image, or pin it in your Dockerfile. On Kubernetes, the Helm values file has a query attribution block; set enabled to false if you don't want queries tagged. The one reason to wait is a receiver that still reads details. Update it, and every chmonitor query says who sent it.