github ClickHouse/ClickStack @hyperdx/common-utils@0.34.0

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 titleEmoji webhook option; false removes 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 denoise option 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 whereSnippet is 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 to clickstack_search returns the pattern's events. Before, a template like Sending <*> rows produced Body:"Sending rows", which matched nothing, and map fields produced Lucene that failed to parse. bodyExpression now also accepts JSONExtractString(<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_signals and dashboard event-pattern tiles now apply the log source's tableFilterExpression, so their counts can drop for sources that set one. minePatterns now 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_number and _block_offset columns 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 DESCRIBE result for the life of
    the process, so the API did not see columns added with ALTER 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's min and avg dropped and count
    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_settings when detecting _block_number and _block_offset columns, falling back to system.merge_tree_settings per 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.

Don't miss a new ClickStack release

NewReleases is sending notifications on new releases.