Repository navigation
Release HyperDX - #3512
Open
github-actions[bot] wants to merge 2 commits into
Open
Release HyperDX#3512github-actions[bot] wants to merge 2 commits into
github-actions[bot] wants to merge 2 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
github-actions
Bot
force-pushed
the
changeset-release/main
branch
13 times, most recently
from
November 3, 2026 19:06
f5b86d5 to
3bd09a2
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 3, 2026 20:54
927edd1 to
ba2eccc
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
10 times, most recently
from
November 4, 2026 21:35
1dec865 to
2cccef3
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
8 times, most recently
from
November 6, 2026 22:35
7aa2a36 to
a5925f2
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
4 times, most recently
from
November 7, 2026 03:19
19c3b6b to
df046ea
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
5 times, most recently
from
November 9, 2026 14:39
1338cbc to
eb3bc76
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
2 times, most recently
from
November 9, 2026 15:45
7ebfa33 to
f2e6eb1
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 9, 2026 17:20
f75d552 to
3572c09
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
November 9, 2026 17:32
6a9c922 to
005109e
Compare
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@hyperdx/cli@0.8.1
Patch Changes
ClickHouse/ClickStack, anddocker-compose.ymlpulls the app image asclickhouse/clickstackdetails and drill-down work on FIPS-enabled ClickHouse deployments
@hyperdx/api@2.44.0
Minor Changes
cd0e9ed: feat: add optional
titleEmojiwebhook option;falseremoves the emoji prefix from notification titles sent through that webhook5b0d074: feat: self-instrument with
@clickhouse/clickstack-nodeand@clickhouse/clickstack-browserinstead of@hyperdx/node-opentelemetryand@hyperdx/browserHyperDX's own telemetry changes shape. HTTP spans use the stable semantic
convention keys (
http.request.method,http.response.status_code,url.full). pino records come from the@opentelemetry/instrumentation-pinoscope with real severity numbers instead of the
node-loggerscope withseverity number 0. Console capture covers every
consolecall in the API, andbrowser console output is recorded as log records instead of spans. Uncaught
exceptions are recorded as FATAL log records, and API errors as an exception
event on the Express span instead of a separate error span.
Browser telemetry records the user as
user.id,user.emailanduser.nameinstead of
userEmailanduserName, keeps the team name asteamName, and nolonger records a
user navigatedaction. Browser fetch and XHR spans no longerrecord request and response headers or bodies. Browser sessions restart once
after the upgrade. The per-signal browser endpoints and
NEXT_PUBLIC_OTEL_RESOURCE_ATTRIBUTESwork as before. Browser traces and logsare now sent gzip-compressed every 5 seconds. If the browser sends to a
collector other than ClickStack's, its CORS
allowed_headersmust be"*"orinclude
content-typeandcontent-encoding(andauthorization), and a proxyin front of it must forward
Content-Encodingunchanged.The Next.js server now sends its own telemetry in production builds too, not
only under
next dev, whenHYPERDX_API_KEYorOTEL_EXPORTER_OTLP_HEADERSisset.
HDX_EXPORTER_ENABLED=falseturns it off along with browser telemetry. Itreports under its own service name, the configured one plus
-next(
hdx-oss-app-nextin the docker-composeappservice and when no name isset), so its spans stay apart from the API's and the browser's. The HyperDX
images now default
OTEL_SERVICE_NAMEtohdx-oss-app. Each/apirequestadds Next.js server spans for the proxy hop. Requests for build and
public/assets, such as
/_next/static/*,/__ENV.jsand/pyodide/*, are not traced.HYPERDX_API_KEYstill enables self-instrumentation. WithoutOTEL_EXPORTER_OTLP_ENDPOINT, server-side self-telemetry now goes tohttp://localhost:4318instead ofhttps://in-otel.hyperdx.io, so set theendpoint explicitly.
HDX_NODE_*variables are no longer read. For requestheaders and bodies set
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_*andCLICKSTACK_CAPTURE_HTTP_BODY.349fc21: feat(mcp): add
clickstack_describe_tableto list the tables in a database and describe a table that is not a registered source (columns, keys, engine, skipping indices, approximate size, optional row sample)0eec5e1: feat: Describe PromQL sources in MCP and hide them when PromQL is disabled
clickstack_describe_sourcenow returns the label names and metric names of a PromQL source, from either a ClickHouse TimeSeries table or a Prometheus-compatible endpoint, instead of a column schema.clickstack_list_sourcesandclickstack_describe_sourceshow which backend a PromQL source uses, and for TimeSeries tables explain how to read them withclickstack_sql. Prometheus endpoint sources no longer show their placeholder table. WhenENABLE_PROMQLis off, MCP hides PromQL sources from listing, describing and deleting, andclickstack_save_sourceno longer acceptskind: "promql".95fa364: feat(mcp): support setting a dashboard's
savedFilterValuesvia the MCP dashboard toolsc792850: feat: filter the v2 list alerts endpoint by tag, search, source and state
Patch Changes
30b1494: feat: add an internal extension point for alert detection strategies; threshold alerts are evaluated as before, and the
alerts.evaluatemetric now carries analert_evaluatorattribute0453aa1: fix: A grouped alert whose group vanishes from the data now resolves with the group's values in
{{attributes.*}}(alert title and message) and{{var.*}}(webhook body)5b0d074: fix: let browsers cache the collector's CORS preflights for 10 minutes
The OTLP receiver now answers preflights with
Access-Control-Max-Age: 600.Without it, browsers cached a preflight for only 5 seconds, which is how often
the browser SDK exports, so about half of its requests were preflights.
769c0de: fix: ignore
teamandcreatedByin dashboard and saved search PATCH bodies so they can't be moved to another team or have their owner rewritten48c8379: docs: Document
minAutoGranularityon metric and PromQL sources in the externalAPI
GET,POSTandPUT /api/v2/sourcesalready accepted and returnedminAutoGranularity, but the OpenAPI spec omitted it, so clients generated fromthe spec dropped or rejected the field.
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.253a690: docs: MCP tool descriptions and the query guide now recommend the quoted Lucene
form
field:"value"for exact matches, and bare terms or phrases for log bodytext, so agents keep the primary key and the text index
66e3941: feat: MCP
query_tileandquery_tilesrun PromQL tiles against Prometheus endpoints and ClickHouse TimeSeries tables7e85229: feat: MCP
clickstack_promqltool runs PromQL against a PromQL source, and the MCP prompts and instructions cover PromQL sources, tiles and label filters while PromQL is enabled9093282: fix: Refuse Prometheus endpoint responses over 8 MB in MCP PromQL label lookups and queries, instead of buffering them whole
53bf540: fix: MCP
query_tilereturns PromQL table and histogram heatmap tiles in the rows the dashboard draws917c9ca: feat: MCP dashboard tools read and write PromQL tiles and PROMETHEUS_LABEL filters when PromQL is enabled, and hide but keep them when it is disabled
d08b2fa: feat(mcp):
clickstack_sqlaccepts aqueriesarray to run up to 10independent queries in parallel under a shared 60s deadline. Each query reports
its own
ok/error/timeoutstatus, so one failing query does not fail theothers. Single-query calls with
sqlbehave as before.a13c80e: feat(mcp):
clickstack_tabletakes optionallimitandhaving, and orders grouped results by the first select item, descending, when noorderByis given0262822: fix: MCP tool responses that are over the size budget now shorten long strings with a
…(+N chars)suffix instead of replacing them, say what was trimmed intrimNotes, andclickstack_event_patterns/clickstack_emerging_signalsdrop samples and shorten long patterns before cutting whole patterns, so the requestedtopNsurvives when it can442d6df: fix: refresh cached table columns after 5 minutes
The shared metadata cache kept each table's
DESCRIBEresult for the life ofthe process, so the API did not see columns added with
ALTER TABLE, such asnew 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
prometheusreceiver 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
minandavgdropped andcountincluded 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.
0eec5e1: fix: Authenticate to Prometheus connections whose host includes credentials
A Prometheus connection host such as
http://user:pass@prometheus:9090made every PromQL query fail with "Failed to reach Prometheus", becausefetchrejects URLs that carry credentials. The credentials are now sent as a Basic auth header.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
b7b4d95: fix: update systeminformation to 5.33.19
The root
resolutionspin let the lockfile keep systeminformation 5.30.7, whichhas known command injection advisories, including two high-severity ones in
networkInterfaces()on Linux (GHSA-5xpp-75jx-m839, GHSA-hvx9-hwr7-wjj9). TheAPI installs it through
@opentelemetry/instrumentation-host-metrics, whichasks for
^5.31.6, but the old pin held it at 5.30.7. The pin now starts at5.33.19, the newest 5.x release, which fixes all of them.
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.
90302c7: fix: Block generic and incident.io webhooks whose hostname resolves to a private or reserved address. The check runs on the address actually dialed, so it also covers DNS rebinding. Self-hosted setups that send webhooks to internal hostnames must add them to
WEBHOOK_HOSTNAME_ALLOWLIST.Updated dependencies [142c9cc]
Updated dependencies [cd0e9ed]
Updated dependencies [e2754d2]
Updated dependencies [22f824c]
Updated dependencies [d0dd06f]
Updated dependencies [5584f84]
Updated dependencies [41b2b74]
Updated dependencies [442d6df]
Updated dependencies [eb2439e]
Updated dependencies [0a5237e]
Updated dependencies [78143c8]
Updated dependencies [b1d4e60]
@hyperdx/app@2.44.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
titleEmojiwebhook option;falseremoves the emoji prefix from notification titles sent through that webhook5b0d074: feat: self-instrument with
@clickhouse/clickstack-nodeand@clickhouse/clickstack-browserinstead of@hyperdx/node-opentelemetryand@hyperdx/browserHyperDX's own telemetry changes shape. HTTP spans use the stable semantic
convention keys (
http.request.method,http.response.status_code,url.full). pino records come from the@opentelemetry/instrumentation-pinoscope with real severity numbers instead of the
node-loggerscope withseverity number 0. Console capture covers every
consolecall in the API, andbrowser console output is recorded as log records instead of spans. Uncaught
exceptions are recorded as FATAL log records, and API errors as an exception
event on the Express span instead of a separate error span.
Browser telemetry records the user as
user.id,user.emailanduser.nameinstead of
userEmailanduserName, keeps the team name asteamName, and nolonger records a
user navigatedaction. Browser fetch and XHR spans no longerrecord request and response headers or bodies. Browser sessions restart once
after the upgrade. The per-signal browser endpoints and
NEXT_PUBLIC_OTEL_RESOURCE_ATTRIBUTESwork as before. Browser traces and logsare now sent gzip-compressed every 5 seconds. If the browser sends to a
collector other than ClickStack's, its CORS
allowed_headersmust be"*"orinclude
content-typeandcontent-encoding(andauthorization), and a proxyin front of it must forward
Content-Encodingunchanged.The Next.js server now sends its own telemetry in production builds too, not
only under
next dev, whenHYPERDX_API_KEYorOTEL_EXPORTER_OTLP_HEADERSisset.
HDX_EXPORTER_ENABLED=falseturns it off along with browser telemetry. Itreports under its own service name, the configured one plus
-next(
hdx-oss-app-nextin the docker-composeappservice and when no name isset), so its spans stay apart from the API's and the browser's. The HyperDX
images now default
OTEL_SERVICE_NAMEtohdx-oss-app. Each/apirequestadds Next.js server spans for the proxy hop. Requests for build and
public/assets, such as
/_next/static/*,/__ENV.jsand/pyodide/*, are not traced.HYPERDX_API_KEYstill enables self-instrumentation. WithoutOTEL_EXPORTER_OTLP_ENDPOINT, server-side self-telemetry now goes tohttp://localhost:4318instead ofhttps://in-otel.hyperdx.io, so set theendpoint explicitly.
HDX_NODE_*variables are no longer read. For requestheaders and bodies set
OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_*andCLICKSTACK_CAPTURE_HTTP_BODY.af17e8f: The app always uses ClickStack branding. Brand selection, the HyperDX palette, and the font picker are removed. Light, dark, and system color mode stay in Preferences.
dd8c2e4: feat: Pick a time zone for the search and dashboard pages from the time picker, overriding the time zone in User Preferences. The picker shows the zone it uses, and the choice is kept in the URL and in links from charts and tables
Patch Changes
7de661b: feat: Row side panel summarizes clicks, navigations and console messages from OpenTelemetry browser SDKs, and navigation rows no longer show an HTTP Request section
ab36d4e: feat: publish the HyperDX image as
clickhouse/clickstackalongsidehyperdx/hyperdx, matching the otherclickhouse/clickstack-*images. Releaseworkflows no longer log into ghcr.io, which received no pushes.
f56d4ad: fix(app): use the ClickStack hexagon and bolt mark in the logo, the collapsed nav, and the favicon.
d7df729: chore: GitHub links (changelog, support, package metadata) now point at
ClickHouse/ClickStack, anddocker-compose.ymlpulls the app image asclickhouse/clickstackf56d4ad: fix(app): open the full nav over the page on compact viewports. On narrow screens the sidebar toggle now opens the full nav as an overlay instead of doing nothing.
513b237: fix: start the trace waterfall higher in the side panel
Trace spans no longer repeat their name in a box under the panel title, or the
service as a chip next to the metadata row that already shows it. The
"⌘/Ctrl + scroll to zoom" hint moves into the timeline's top-left corner
instead of taking its own row. Long span names that the title truncates keep
the box. Log panels keep their body box and service chip.
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
5abf27e: Saving a search no longer reloads the page: the new saved search is opened with
a client-side navigation, which also fixes the 404 this caused on the static
ClickStack build.
04f55d1: feat: Exception panel parses JavaScript stack traces from OpenTelemetry SDKs into frames, with a section per
Caused by:errord0dd06f: fix: count legacy STATUS_CODE_ERROR spans as errors on the service map and trace
waterfall
41b2b74: feat: fall back to server MergeTree settings to detect persisted
_block_numberand_block_offsetcolumns when the table's CREATE query omits them442d6df: fix: refresh cached table columns after 5 minutes
The shared metadata cache kept each table's
DESCRIBEresult for the life ofthe process, so the API did not see columns added with
ALTER TABLE, such asnew 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
prometheusreceiver 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
minandavgdropped andcountincluded 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.
9df8b8d: fix: bump next to 16.4.3 so builds no longer fail intermittently when Google Fonts returns extensionless font URLs
ec0db7a: fix: Creating an alert from the search page asks for one name, not two. An unsaved search is named once in the alert modal's header and the alert inherits that name and its tags; on a saved search the alert's own name field is labelled "Alert name" and shows the inherited name as its placeholder instead of pre-filling a duplicate.
467c167: feat: A pinned filter collapsed in the search sidebar stays collapsed the next
time the source loads, instead of always opening
6468dad: fix: keep session replay events from different page loads apart
Browser SDKs up to
@clickhouse/clickstack-browser1.2.0 number replay eventsfrom 1 again on every page load. When a page closed before all chunks of a large
event were sent, its leftover chunk could be joined with a later page's event of
the same number. That page's snapshot then failed to parse and did not render.
Chunks are now grouped by event number and full-precision timestamp, and replay
rows are ordered by the full-precision timestamp, so rows of two page loads in
the same second no longer interleave.
The app's own browser telemetry now uses
@clickhouse/clickstack-browser1.2.1,whose replay event numbers no longer repeat across page loads.
86cd38b: fix: only use the key-only row details lookup when the table persists both
_block_numberand_block_offset. A lone block column (e.g. a server-wideenable_block_offset_column) is not unique with a second-precision primary key and could open the wrong row; it is now only added as a tiebreaker to the full-row lookup.82b2104: fix: show a loader while row details load
Expanded search rows and the trace viewer's span details showed "Empty" or "No
body for this event." while the row was still loading. They now show a loader
until the row arrives.
3a412e4: fix: run the row details query once when opening a row
The side panel ran the same
SELECT *row query twice: once for the panel, andagain when its Overview or Column Values tab mounted. A row that was found is
now reused from the cache, so the tab and later tab switches do not query it
again. A different row or source still runs the query, and a row that was not
found is looked up again.
78143c8: feat: on ClickHouse Cloud, read
system.shared_merge_tree_settingswhen detecting_block_numberand_block_offsetcolumns, falling back tosystem.merge_tree_settingsper key4e93ae5: fix(app): render the ClickStack name as text in the expanded sidebar, 8px from the logo symbol.
2bad9af: refactor: use the click-ui
Separatorinstead of the MantineDividerin theTeam Settings sections.
af75b2b: feat: Trace waterfall shows OpenTelemetry browser SDK request timings as dots on fetch and XHR spans, and the click that triggered a browser trace
4e93ae5: fix(app): use the new favicon set, including an SVG, in the browser tab, bookmarks, and touch icon.
dc58efd: fix: The app no longer crashes on load in browsers that report a POSIX-style language such as
en-US@posixUpdated dependencies [142c9cc]
Updated dependencies [30b1494]
Updated dependencies [0453aa1]
Updated dependencies [cd0e9ed]
Updated dependencies [5b0d074]
Updated dependencies [5b0d074]
Updated dependencies [769c0de]
Updated dependencies [48c8379]
Updated dependencies [e2754d2]
Updated dependencies [22f824c]
Updated dependencies [d0dd06f]
Updated dependencies [349fc21]
Updated dependencies [5584f84]
Updated dependencies [253a690]
Updated dependencies [66e3941]
Updated dependencies [7e85229]
Updated dependencies [9093282]
Updated dependencies [53bf540]
Updated dependencies [0eec5e1]
Updated dependencies [917c9ca]
Updated dependencies [95fa364]
Updated dependencies [d08b2fa]
Updated dependencies [a13c80e]
Updated dependencies [0262822]
Updated dependencies [41b2b74]
Updated dependencies [442d6df]
Updated dependencies [eb2439e]
Updated dependencies [0eec5e1]
Updated dependencies [0a5237e]
Updated dependencies [78143c8]
Updated dependencies [b7b4d95]
Updated dependencies [b1d4e60]
Updated dependencies [c792850]
Updated dependencies [90302c7]
@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
titleEmojiwebhook option;falseremoves the emoji prefix from notification titles sent through that webhookPatch Changes
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
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 them442d6df: fix: refresh cached table columns after 5 minutes
The shared metadata cache kept each table's
DESCRIBEresult for the life ofthe process, so the API did not see columns added with
ALTER TABLE, such asnew 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
prometheusreceiver 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
minandavgdropped andcountincluded 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 keyb1d4e60: 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.
@hyperdx/otel-collector@2.44.0
Patch Changes
5b0d074: fix: let browsers cache the collector's CORS preflights for 10 minutes
The OTLP receiver now answers preflights with
Access-Control-Max-Age: 600.Without it, browsers cached a preflight for only 5 seconds, which is how often
the browser SDK exports, so about half of its requests were preflights.
8384fe6: perf: compress the seed schemas with
ZSTD(3)instead ofZSTD(1)The seed schemas pinned
ZSTD(1)on almost every column. Level 3 gives a bettercompression ratio at a small insert-time CPU cost, without affecting reads, and
it is the default codec of ClickHouse since 26.9. It is pinned explicitly so
that older ClickHouse versions, whose default is
LZ4, get it too.Deltacodecs drop their byte-size argument, which ClickHouse infers from the column
type. Only newly created tables are affected; existing tables keep their codecs.
7021810: feat: session ID columns,
session.idfromrum.sessionId, severity textThe
hyperdx_sessionsseed adds materializedrum.sessionIdandsession.idcolumns with skip indexes, and the
otel_logsseed adds a materializedsession.idcolumn with a skip index, so session queries no longer read theattribute maps. Only newly created tables get them; existing tables need an
ALTER TABLE ... ADD COLUMNto benefit.Spans, logs and session replay events from older
@hyperdx/browserSDKs, whichcarry the session id only in the
rum.sessionIdresource attribute, now alsoget the OpenTelemetry
session.idattribute. An existingsession.idis neveroverwritten and
rum.sessionIdis kept. If you override pipelineprocessors:lists in
CUSTOM_OTELCOL_CONFIG_FILE, addtransform/session_idto keep this.Logs that carry a severity number but no severity text, such as those from the
new browser SDK, now get the matching level text (
info,error, ...) insteadof an empty level. Severity text set by the producer is never overwritten.