github hyperdxio/hyperdx @hyperdx/common-utils@0.26.0

4 hours ago

Minor Changes

  • fd54ac7: Persist alert evaluation errors (query errors, timeouts, webhook failures) as
    ERROR-state AlertHistory records instead of only a latest-only snapshot,
    upserted per evaluation window so retries collapse into a single row. Query
    timeouts are classified separately (QUERY_TIMEOUT, including timeouts wrapped
    by the ClickHouse query client) with an actionable message. ERROR rows are
    excluded from scheduling/backfill computations so failed windows are still
    retried and backfilled, and once a failed window recovers (via a same-window
    retry or a later tick's backfill) its stale ERROR row is removed. Evaluation
    analytics (query/webhook durations, backfilled buckets) are recorded on every
    history row.
  • 05a3fd8: Add the AlertHistory evaluations read model and GET /alerts/:id/evaluations
    endpoint: per-window evaluation history scoped to a time range (clamped to the
    retention window) with per-group breakdown for group-by alerts, evaluation
    analytics fields, deduped error surfacing for ERROR-state windows, and
    cursor-based pagination that always advances across gaps. Adds read-side
    schema/type support for ERROR-state AlertHistory rows and evaluation analytics.
  • 8508b6c: Terraform export now emits team-scoped import ids (<team_id>/<resource_id>),
    so resources can be imported from a ClickStack deployment that backs more than
    one team. Each imported resource gains a team attribute, which the provider
    marks as forcing replacement — the generated file now says to keep it. The
    provider floor moves to >= 3.25.0, which drops server-only dashboard ids when
    importing, so the generated dashboard config no longer churns tile ids (and the
    tile alerts attached to them) on apply.
  • 0ed72dd: Add the metric formula expression model: a formulas entry on chart configs (letter-based series refs — A, B, C map to select positions) plus an arithmetic-only parser/validator (core/formula.ts) that produces a validated AST and structured validation errors (unknown series ref, empty expression, malformed syntax, invalid tokens). Groundwork for metric formulas like A / (A + B + C) * 100; no query rendering or UI changes yet.

Patch Changes

  • b9430a6: feat: Add broadcast and variable settings to dashboard filters

  • 546dd44: feat: Improve SQL Editor validations and autocomplete for variables

  • cab98c7: feat: Substitute dashboard variables in raw SQL tiles

  • 018a648: Clean up ESLint warnings and tighten lint enforcement. Resolved all
    no-unused-vars and @typescript-eslint/ban-ts-comment warnings (removing dead
    code and converting @ts-ignore to described @ts-expect-error), then promoted
    those rules to error in the api/app/common-utils/cli/hdx-eval configs, disabled
    the noisy @typescript-eslint/no-empty-function rule in app, and lowered each
    package's --max-warnings ceiling so the counts can't regress. Behavior is
    unchanged.

  • 2d33b83: Escape the Map subscript once in numeric and Bool field searches

    The three equality branches for Bool and numeric value types escaped the
    column expression as an identifier even when it was already a rendered map
    subscript, so Measures.latency_ms:250 wrapped `Measures`['latency_ms']
    in a second layer of backticks that ClickHouse reads as one identifier rather
    than a map lookup. Quoting the term worked around it for numeric maps; for
    Map(String, Bool) columns both spellings were affected.

  • aedb514: Multi-series metric charts now run as a single composed ClickHouse query instead of one query per series joined client-side. The per-series queries are combined via UNION ALL and pivoted back into one row per (group, time bucket) in SQL, including ratio charts (seriesReturnType: 'ratio') and both ratioMode variants, which previously divided the two result sets in the browser/node. Result shape, column naming (including same-alias __{index} disambiguation), gap semantics, and ratio semantics are unchanged; charts with many series render with fewer round trips, and "View SQL" for multi-series metric charts now shows the full query instead of only the first series.

Don't miss a new hyperdx release

NewReleases is sending notifications on new releases.