Minor Changes
- d91e66b: Make the external API v2 rate limit (
/api/v2/*) configurable viaEXTERNAL_API_RATE_LIMIT_MAX. Defaults to 100 requests/minute, matching the previous hardcoded value.
Patch Changes
-
1e355ac: fix: don't scan the whole table to discover Map keys
getMapKeysonly applied a time predicate when the caller passed both a date
range and a timestamp expression; otherwise the rawsampledKeysscan ran with
noWHEREand touched every part of the table. It now defaults a missing date
range to the last 24 hours and skips the raw scan entirely when there is no
timestamp expression to filter on. The chart, alert and dashboard-filter
editors pass the source and date range they already have so Map keys keep
autocompleting there. -
793fe19: feat: Substitute dashboard variables in markdown tiles
-
ec4f508: fix: allow grouping gauge and sum metric charts by materialized and alias columns
Grouping or selecting a MATERIALIZED or ALIAS column on a gauge or sum metric chart failed with
Unknown expression identifier, because the intermediate query didn't carry those columns through. -
08d9a90: feat: Plot several PromQL expressions on one chart
-
19182e7: fix: only split a query at a standalone SETTINGS keyword
extractSettingsClauseFromEndcut the query at the first "settings" anywhere in
it, including inside a string or an identifier. A multi-series metric chart with
a metric such asapp.settings.reloadsproduced SQL with an unterminated
string, and a SQL filter on a column such asAppSettingswas rewritten to
referenceApp. The keyword now has to stand alone outside quotes. -
d9e2c58: Add a per-source floor for auto granularity. A metric source can now set "Minimum auto granularity" (Team Settings → Sources → your Metrics source) so that auto-inferred time buckets never go below it — useful when the underlying metric is reported on a fixed interval (e.g. a 60s scrape), since a short selected date range can otherwise auto-infer a smaller bucket than that interval and render a sparse/steppy series (alternating real-sample/empty buckets). Mirrors Grafana's per-datasource "Min interval" setting. Unset (the default) preserves the existing unfloored behavior, and an explicit (non-auto) granularity chosen on a tile is never affected.
-
a5e7841: fix(mcp): time-bound the trace waterfall span/log fetches so they prune
partitions instead of scanning the full retention window. The
clickstack_trace_waterfalltool now threads the search window into its span
and correlated-log queries, adds amax_execution_timeceiling, and probes a
trace's[min, max]span extent so an explicittraceIdolder than the
default window — or a trace that ran longer than an hour — still resolves in
full. The probe also runs for auto-picked traces, so a picked trace whose root
predates the window is no longer truncated into a partial tree. The fetch window
is width-clamped to the recent tail so a reused or sentineltraceId(e.g. an
all-zero id from an uninstrumented emitter) can't widen the scan back toward the
retention edge or stitch unrelated occurrences into one tree. Empty-result hints
now name the recoverable action (pass an explicitstartTime) instead of the
misleading "widen the window", and a probe that fails is surfaced rather than
silently swallowed. ClickHouse query timeouts are also reclassified fromuser
toservererrors. -
Updated dependencies [1e355ac]
-
Updated dependencies [793fe19]
-
Updated dependencies [ec4f508]
-
Updated dependencies [8a9fcd2]
-
Updated dependencies [08d9a90]
-
Updated dependencies [a8a72c1]
-
Updated dependencies [8cfb267]
-
Updated dependencies [4570d5e]
-
Updated dependencies [78ed592]
-
Updated dependencies [23423c1]
-
Updated dependencies [19182e7]
-
Updated dependencies [d9e2c58]
- @hyperdx/common-utils@0.30.0