Minor Changes
-
142c9cc: feat: narrow ad hoc dashboard filter suggestions with a condition
An ad hoc filter on SQL sources can now carry a SQL or Lucene "Keys and values
filter", like a queried filter's dropdown values filter, that limits the rows
its keys and values are suggested from. It can reference the dashboard's other
variables. While it references a required filter with nothing selected, the ad
hoc filter can't add or edit conditions and names the filter it is waiting on.
Failed suggestions now show the database's error message. -
cd0e9ed: feat: add optional
titleEmojiwebhook option;falseremoves the emoji prefix from notification titles sent through that webhook -
0b7926d: feat: Team members can create team-owned API keys with a description and expiry that keep working after their creator leaves.
Patch Changes
-
9269f77: fix: "Denoise results" now removes noise on typical data. A pattern now counts as noisy above 5% of sampled events instead of 10%, which often matched nothing. Patterns that include error or warning lines are never hidden. The MCP
denoiseoption uses the same 5% threshold. Denoise also mines the source's body column instead of the last table column, removes ANSI-colored rows that match a noisy pattern, says when results can't be denoised, and shows hidden patterns as a short summary with a shortened, expandable list. -
e2754d2: fix: use SHA256 instead of MD5 for JSON row lookup WHERE clauses so row
details and drill-down work on FIPS-enabled ClickHouse deployments -
22f824c: fix: keep JSON path segments with special characters quoted in row detail lookups
-
6425332: perf: PromQL label lookups with
match[]read only the matched metrics' tags
rows when every selector names its metric -
d0dd06f: fix: count legacy STATUS_CODE_ERROR spans as errors on the service map and trace
waterfall -
5584f84: fix: make clickstack_event_patterns drill-down snippets executable
Each pattern's
whereSnippetis now a SQL predicate (whereLanguage: "sql") that keeps the template's token order and variable positions and includes the caller's filter and the source table filter, so passing it toclickstack_searchreturns the pattern's events. Before, a template likeSending <*> rowsproducedBody:"Sending rows", which matched nothing, and map fields produced Lucene that failed to parse.bodyExpressionnow also acceptsJSONExtractString(<column>, '<key>', ...)to mine a field inside JSON bodies, and the tool reports sample coverage and the actual trend bucket interval and boundaries.clickstack_event_patterns,clickstack_emerging_signalsand dashboard event-pattern tiles now apply the log source'stableFilterExpression, so their counts can drop for sources that set one.minePatternsnow reports each cluster's own template; before, it could report the template of a different same-length cluster that some members did not fit. -
41b2b74: feat: fall back to server MergeTree settings to detect persisted
_block_numberand_block_offsetcolumns when the table's CREATE query omits them -
442d6df: fix: refresh cached table columns after 5 minutes
The shared metadata cache kept each table's
DESCRIBEresult for the life of
the process, so the API did not see columns added withALTER TABLE, such as
new MATERIALIZED columns, until it restarted. Cached columns now expire after 5
minutes. Other cached metadata is unchanged. -
eb2439e: fix: leave metric points with no recorded value out of charts and alerts
When a scraped series goes away or a scrape fails, the collector's
prometheus
receiver sends a point flagged "no recorded value" (a Prometheus staleness
marker), and the ClickHouse exporter stores it as zeros. Metric charts and
alerts read it as a real value: a gauge'sminandavgdropped andcount
included the series that went away, and a counter or histogram that came back
after the marker counted its whole total again. Metric queries now skip points
with this flag. -
0a5237e: fix: reject alerts on dashboard tiles the alert checker never evaluates (PromQL
tiles, and builder tiles with unsupported display types), and drop them when a
dashboard is saved -
78143c8: feat: on ClickHouse Cloud, read
system.shared_merge_tree_settingswhen detecting_block_numberand_block_offsetcolumns, falling back tosystem.merge_tree_settingsper key -
b1d4e60: fix: PromQL label lookups (dashboard variables, label autocomplete) now work on TimeSeries tables of schema version 8, the default from ClickHouse 26.10. These keep each series' time range in a separate time ranges table instead of the tags table's min_time/max_time, so match[] failed with "requires store_min_time_and_max_time = 1" and time-bounded lookups read the whole tags table.