Skip to content

@hyperdx/api@2.42.0

Choose a tag to compare

@github-actions github-actions released this 23 Oct 23:03
cf00ae5

Minor Changes

  • 9c2c703: feat: Support PromQL dashboard tiles in the external API

    /api/v2/dashboards now returns PromQL tiles and accepts them on create and update, as configType: "promql" with a sourceId and a list of expressions. Previously PromQL tiles were left out of responses, so saving a dashboard back through the API deleted them. MCP dashboard tools still hide PromQL tiles until they support editing them.

  • eb72cfa: feat(mcp): add clickstack_service_health, a one-call per-service health report for a trace source (throughput, error rate, p50/p95/p99, top error groups), compared with yesterday and ranked worst first

  • 95aef70: Add an optional eventNameExpression to log sources, pointing at the
    OpenTelemetry log EventName. Source auto-detection sets it when an OTel log
    table has a string EventName column. The field is stored and editable only:
    nothing reads it yet. HDX-5787

  • bc47e48: Add an optional severityNumberExpression to log sources, pointing at the
    numeric OpenTelemetry SeverityNumber (1-24). Source auto-detection sets it when
    an OTel log table has an integer SeverityNumber column. The field is stored
    and editable only: log levels still come from the severity text.

  • cfa865b: feat: expose group-by values to webhook body templates as {{var.<column>}}, and keep them on resolve notifications

Patch Changes

  • 9891a79: feat: Add ad hoc dashboard filter schemas and types

  • 27cccf7: fix: Reject creating or updating PromQL sources through the external API when PromQL is not enabled

    POST and PUT /api/v2/sources now return a 400 for kind: "promql" unless ENABLE_PROMQL is set, since PromQL sources cannot be queried without it.

  • 8d064df: fix: Reject external API PromQL tiles that reference a non-PromQL source, and keep PromQL tiles when an MCP agent updates a dashboard

    /api/v2/dashboards now returns a 400 when a PromQL tile's sourceId is not a PromQL source. MCP clickstack_save_dashboard updates no longer delete the PromQL tiles that MCP hides from agents.

  • 0000fa4: feat: Add a line interpolation display setting (smooth, linear, step)

  • ee9f84b: feat(mcp): record the response size of each MCP tool call

  • 24d324c: fix(mcp): store whereLanguage as lucene when clickstack_save_saved_search creates a search without one, so its alerts no longer parse a Lucene filter as SQL

  • 748315d: feat(mcp): advertise a title, description, website URL, and SVG icon in the MCP server's initialize response

  • cdfae45: fix(mcp): clickstack_sql now binds the bucket-size parameters its description
    advertises. {intervalSeconds:Int64}, {intervalMilliseconds:Int64},
    $__interval_s, $__timeInterval and $__timeInterval_ms used to fail with
    "Substitution intervalSeconds is not set", including the tool's own time-series
    example.

  • b00d410: feat(mcp): clickstack_sql accepts an optional sourceId, so $__sourceTable
    expands to that source's table. Unknown sources, other teams' sources, and a
    source on a different connection than connectionId are rejected, as is
    $__sourceTable without a sourceId.

  • a06b17f: fix(mcp): stop clickstack_sql callers from guessing table and timestamp column
    names. clickstack_list_sources now returns each source's database-qualified
    table (and database for metric sources), the sql examples use <table>
    and <timestampColumn> placeholders instead of otel_logs and TimestampTime,
    and unknown-table errors from clickstack_sql point at clickstack_list_sources.

  • e494a46: feat(mcp): declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint on every MCP tool

  • 03f9fd5: fix(mcp): describe every MCP tool input, drop descriptions that restate schema constraints, and keep tool descriptions under Claude Code's 2 KB limit

  • 5cabc11: feat: Support distribution heatmaps calculated from promql data

  • a4b6395: fix: render percentile aggregations (p50, p90, p95, p99) as quantile
    at the matching level. A chart config with aggFn: 'p95' rendered as the
    nonexistent ClickHouse function p95If. The AI assistant now returns
    percentiles with a level instead of a bare quantile (median), and v1 metric
    chart conversion keeps the percentile level.

  • ca8e3fd: fix: support https for the PromQL remote-write endpoint and ClickHouse scraping

    CLICKHOUSE_PROMETHEUS_METRICS_ENDPOINT now accepts an http:// or https:// URL as well as a bare host:port. With https://, the collector's prometheusremotewrite exporter sends metrics over TLS and verifies the server certificate against the system CAs. Previously the exporter always used plain HTTP, so an HTTPS-only endpoint could not receive metrics. This applies to both standalone and OpAMP-managed collectors.

    A bare host:port keeps plain HTTP, so existing setups are unchanged. The value must not include a path (/write is still appended automatically); the collector now exits at startup with a clear error if it does, or if the scheme is anything other than http or https.

    The OpAMP-managed collector scraped the endpoint over plain HTTP regardless of its scheme. ClickHouse is now scraped in its own clickhouse job (previously the otelcol job) using the endpoint's scheme, with TLS verification on. The collector's own metrics endpoint stays on plain HTTP. A bare host:port or http:// endpoint behaves as before. Scraped ClickHouse metrics now carry job="clickhouse" instead of job="otelcol".

  • c94d12c: fix: Resolve PromQL queries through the source instead of a caller-supplied connection and table

    The /api/v1/prometheus/* routes now take sourceId instead of connectionId, and read the connection and TimeSeries table from that PromQL source. Caller-supplied database/table params are ignored for ClickHouse and no longer forwarded to external Prometheus endpoints. Saved PromQL chart configs now require source and no longer persist connection, so provisioned dashboards with PromQL tiles must set source.

  • be5304d: Forward the bytes consumed by the ClickHouse proxy's body parsers without
    changing JSON values, form fields or text encodings. Keep request framing in
    sync with inflated bytes and preserve unparsed multipart streams.

  • af6e7f6: Add a description field to the tile editor. The description is now stored on the
    tile's chart config next to its name, and is kept for series tiles in the
    external Dashboards API.

  • 02080f2: Add an optional tile description, accepted by the external Dashboards API and
    shown as an info tooltip next to the tile name.

  • ce6654d: refactor: Store the time display setting as a time zone instead of a UTC switch, converting existing settings, and remove the isUTC option from formatDate

  • 28168ae: fix: Floor the time filter start to the precision of a coarse timestamp column (DateTime, DateTime64 below ms) when a finer column also filters the range, so a sub-second start no longer drops the rest of that tick; make the external API v2 search maxResults cap configurable via EXTERNAL_API_SEARCH_MAX_RESULTS (defaults to 2000, the previous hardcoded value)

  • ecddea2: fix: reject generic and incident.io webhook body templates that don't compile,
    or that call a helper delivery doesn't register (e.g. a typo for eq), with a
    400 on create, update, and test (internal API, External API v2, and MCP
    clickstack_save_webhook). Add POST /api/v2/webhooks/validate to check a
    webhook config without saving it, e.g. at Terraform plan time.

  • Updated dependencies [9205823]

  • Updated dependencies [3e9185d]

  • Updated dependencies [180a1f1]

  • Updated dependencies [a682ce1]

  • Updated dependencies [9891a79]

  • Updated dependencies [43b09a7]

  • Updated dependencies [0000fa4]

  • Updated dependencies [eb72cfa]

  • Updated dependencies [03f9fd5]

  • Updated dependencies [5cabc11]

  • Updated dependencies [a4b6395]

  • Updated dependencies [3bedfab]

  • Updated dependencies [c94d12c]

  • Updated dependencies [95aef70]

  • Updated dependencies [bc47e48]

  • Updated dependencies [85675fc]

  • Updated dependencies [af6e7f6]

  • Updated dependencies [02080f2]

  • Updated dependencies [dab6eb8]

  • Updated dependencies [ce6654d]

  • Updated dependencies [28168ae]

  • Updated dependencies [807cd9a]

  • Updated dependencies [cfa865b]

    • @hyperdx/common-utils@0.32.0