Release HyperDX#2310
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
14d6127 to
ad88f40
Compare
ad88f40 to
1477141
Compare
1477141 to
efd4cd7
Compare
efd4cd7 to
3482782
Compare
3482782 to
a9c2676
Compare
a9c2676 to
7167ac6
Compare
7167ac6 to
d6c7094
Compare
d6c7094 to
7db11bc
Compare
7db11bc to
4b68fd7
Compare
4b68fd7 to
7c686ab
Compare
7c686ab to
4a66379
Compare
4a66379 to
8b3c16e
Compare
8b3c16e to
4b98ea6
Compare
4b98ea6 to
8d707ee
Compare
8d707ee to
d34d1bf
Compare
d34d1bf to
e635532
Compare
e635532 to
ac43c70
Compare
ac43c70 to
6210c5e
Compare
6210c5e to
bdad9c8
Compare
bdad9c8 to
62f6e16
Compare
62f6e16 to
55e6431
Compare
55e6431 to
af37bf2
Compare
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.4.2
Patch Changes
b20275c: fix(cli): exit with non-zero code when
upload-sourcemapsfailsThe
upload-sourcemapscommand now exits with code 1 when uploads fail(missing source maps, pre-signed URL request failure, authentication failure,
or any per-file upload failure after retries). Previously these failures were
logged to stderr but the process exited cleanly with code 0, causing CI
pipelines to treat failed uploads as successes.
19cd7c9: fix: only use pk and row uniqueness to look up a row
8810ff0: feat: Add option for force-enabling/disabling text index support
@hyperdx/app@2.28.0
Minor Changes
1df7583: feat: emit Lucene conditions from sidebar/dashboard filters to enable KV items direct_read optimization on Map columns
Legacy
type: 'sql'filters in URLs are automatically migrated to Luceneon page load. The persisted
DashboardFilter.expressionin MongoDB is unchanged.Patch Changes
937e043: fix: collapse duplicate map sub-key entries in the search filter sidebar (HDX-4340)
A map sub-field stored in
filterStateunder dot notation (e.g.LogAttributes.time,from a Lucene URL round-trip) and the same key returned by the facet query under
bracket notation (e.g.
LogAttributes['time']) no longer render as two separateaccordion items. The merged entry keeps the bracket form so "Load more" stays
valid, and the user's selection still resolves via a tolerant filterState lookup.
dcab1cb: feat: default the direct_read map column optimization on supported ClickHouse versions
The full-text-search logs schema (
00002_otel_logs.sql) now ships withResourceAttributeItems,ScopeAttributeItems, andLogAttributeItemsALIAS columns plus their
text(tokenizer='array')skip indexes. Thetraces schema (
00005_otel_traces.sql) similarly gainsResourceAttributeItemsandSpanAttributeItemsALIAS columns withmatching items indexes. New installs and freshly migrated tables get
the optimization automatically — no manual
ALTER TABLErequired.Note: the traces table previously used only
bloom_filterskip indexesand worked on any ClickHouse version. The added
text(tokenizer='array')items indexes raise the minimum ClickHouse version required to create
the traces table to >= 26.2. Existing tables on older clusters are
unaffected (
CREATE TABLE IF NOT EXISTSis a no-op).At query time, the app gates the
Map['key'] = 'value'→has(<MapItems>, concat('key', '=', 'value'))rewrite on the connectedClickHouse server version (
SELECT version(), cached per connection).The gate only applies to ALIAS items columns, which are computed at
query time and therefore depend on the server being able to perform a
direct_read against the underlying Map's tuple storage. The direct_read
feature was backported into multiple stable 26.x release lines, so the
gate uses a per-branch minimum:
ALIAS items columns on servers below their branch's threshold continue
to compile filters into the original Map-subscript form.
MATERIALIZED items columns are always used when available, regardless
of ClickHouse version. MATERIALIZED columns are physically stored on
disk, so
has(items, ...)reads them directly and works on anyClickHouse version that supports the text index itself. Operators who
want the optimization on servers below the backport cutoffs can
ALTER TABLEto materialize the items columns.923b544: feat: preserve compatible filters when switching sources
b94b8ef: fix: persist column widths in search results table
19cd7c9: fix: only use pk and row uniqueness to look up a row
633eda6: refactor: Use new VirtualMultiSelect for dashboard filter inputs
8938b05: fix: let "Load more" surface unselected values in exact filter mode
04a5a92: feat: Add source scoping to dashboard filters
8810ff0: feat: Add option for force-enabling/disabling text index support
a8eb27d: feat: filters reflect all values, not search aware; filters use metadata MVs if available
Updated dependencies [d134212]
Updated dependencies [dcab1cb]
Updated dependencies [a945fa0]
Updated dependencies [1df7583]
Updated dependencies [b30dfe0]
Updated dependencies [dcb8582]
Updated dependencies [c3a8aa5]
Updated dependencies [07911fd]
Updated dependencies [04a5a92]
Updated dependencies [8810ff0]
Updated dependencies [a8eb27d]
@hyperdx/common-utils@0.20.0
Minor Changes
dcab1cb: feat: default the direct_read map column optimization on supported ClickHouse versions
The full-text-search logs schema (
00002_otel_logs.sql) now ships withResourceAttributeItems,ScopeAttributeItems, andLogAttributeItemsALIAS columns plus their
text(tokenizer='array')skip indexes. Thetraces schema (
00005_otel_traces.sql) similarly gainsResourceAttributeItemsandSpanAttributeItemsALIAS columns withmatching items indexes. New installs and freshly migrated tables get
the optimization automatically — no manual
ALTER TABLErequired.Note: the traces table previously used only
bloom_filterskip indexesand worked on any ClickHouse version. The added
text(tokenizer='array')items indexes raise the minimum ClickHouse version required to create
the traces table to >= 26.2. Existing tables on older clusters are
unaffected (
CREATE TABLE IF NOT EXISTSis a no-op).At query time, the app gates the
Map['key'] = 'value'→has(<MapItems>, concat('key', '=', 'value'))rewrite on the connectedClickHouse server version (
SELECT version(), cached per connection).The gate only applies to ALIAS items columns, which are computed at
query time and therefore depend on the server being able to perform a
direct_read against the underlying Map's tuple storage. The direct_read
feature was backported into multiple stable 26.x release lines, so the
gate uses a per-branch minimum:
ALIAS items columns on servers below their branch's threshold continue
to compile filters into the original Map-subscript form.
MATERIALIZED items columns are always used when available, regardless
of ClickHouse version. MATERIALIZED columns are physically stored on
disk, so
has(items, ...)reads them directly and works on anyClickHouse version that supports the text index itself. Operators who
want the optimization on servers below the backport cutoffs can
ALTER TABLEto materialize the items columns.1df7583: feat: emit Lucene conditions from sidebar/dashboard filters to enable KV items direct_read optimization on Map columns
Legacy
type: 'sql'filters in URLs are automatically migrated to Luceneon page load. The persisted
DashboardFilter.expressionin MongoDB is unchanged.Patch Changes
a945fa0: feat(mcp): add hyperdx_event_deltas tool
Add
hyperdx_event_deltasMCP tool that compares two row groups (targetvs baseline) and ranks properties by how much their value distributions
differ. Same algorithm as the in-app Event Deltas view.
Extract shared event-deltas algorithm from the UI into
@hyperdx/common-utils/src/core/eventDeltas.tsso it can be used byboth the frontend and the MCP server.
b30dfe0: fix: support text index on lower(Body) with no preprocessor
dcb8582: fix: escape colons in Lucene field names so filters on Map sub-keys containing
:(e.g.LogAttributes['foo:bar']) parse correctlyfiltersToQuerynow backslash-escapes:and\in the emitted Lucene fieldname, and
parseLuceneFilter+ the SQL serializer decode those placeholderswhen consuming the AST so the original key is restored end-to-end.
04a5a92: feat: Add source scoping to dashboard filters
8810ff0: feat: Add option for force-enabling/disabling text index support
a8eb27d: feat: filters reflect all values, not search aware; filters use metadata MVs if available
@hyperdx/api@2.28.0
Patch Changes
d134212: feat(mcp): add hyperdx_describe_source tool and slim list_sources to catalog
Add
hyperdx_describe_source— returns full column schema, map attributekeys, and sampled low-cardinality values (SeverityText, StatusCode,
ServiceName, etc.) for a single source. Uses existing rollup tables for
performant value sampling.
Slim
hyperdx_list_sourcesto a lightweight MongoDB-only catalog (noClickHouse queries). Source tools moved to a dedicated
tools/sources/module.
All query tool descriptions and prompts updated to reference the two-step
list_sources → describe_sourcediscovery workflow.a945fa0: feat(mcp): add hyperdx_event_deltas tool
Add
hyperdx_event_deltasMCP tool that compares two row groups (targetvs baseline) and ranks properties by how much their value distributions
differ. Same algorithm as the in-app Event Deltas view.
Extract shared event-deltas algorithm from the UI into
@hyperdx/common-utils/src/core/eventDeltas.tsso it can be used byboth the frontend and the MCP server.
c3a8aa5: feat(mcp): rewrite dashboard authoring prompts and expose
filtersonhyperdx_save_dashboardThe
create_dashboardprompt now leads with a design checklist (alias every select item including number tiles, schema gap ongroupByso tables don't renderarrayElement(SpanAttributes, '...')as the column header, RED columns with aliases, per-seriesnumberFormatfor durations,groupByColumnsOnLeftfor inventory tables, dashboard-level filters instead of per-tilewhereliterals, one-metric-per-tile for metric sources, required containers at five or more tiles, post-save validation of every tile, no title-recap markdown). The wall-of-JSON canonical example is gone; thedashboard_examplespatterns carry the concrete shapes.The
dashboard_examplesset is replaced with four verified patterns (service_inventory,service_detail,log_analytics,backend_dependencies) plus the existinginfrastructure_sql. Each non-SQL example leads with a "When to use" header and a "Why this shape" note so the model picks by intent, not by surface keyword match. Examples were built and rendered on a live dev stack before landing.The
query_guideprompt gains aDASHBOARD FILTERSsection that documents thefilters: [{ type, name, expression, sourceId, where?, whereLanguage? }]shape, aNUMBER FORMATsection that explains the per-series vs. chart-level distinction, and aPER-TILE TYPE CONSTRAINTSnote that metric tiles take exactly one select item per tile.hyperdx_save_dashboardnow acceptsfilterson its input schema, reusingexternalDashboardFilterSchemaWithIdso the MCP and REST surfaces stay in lockstep and the existingconvertExternalFiltersToInternalhelper handles the conversion without translation. Filters round-trip through create, get, and update.Voice pass: every prompt string is now em-dash-free.
07911fd: feat(mcp): add trace waterfall and breakdown tools
Add
hyperdx_trace_waterfall— fetch all spans in a single trace as aparent/child waterfall tree with optional correlated logs. Supports
auto-pick by slowest, first error, or most recent trace.
Add
hyperdx_trace_top_time_consuming_operations— aggregate breakdownof child operations consuming the most cumulative time across traces
matching a parent-span filter. Same algorithm as the in-app "Top Most
Time Consuming Operations" chart.
04a5a92: feat: Add source scoping to dashboard filters
8810ff0: feat: Add option for force-enabling/disabling text index support
a8eb27d: feat: filters reflect all values, not search aware; filters use metadata MVs if available
Updated dependencies [dcab1cb]
Updated dependencies [a945fa0]
Updated dependencies [1df7583]
Updated dependencies [b30dfe0]
Updated dependencies [dcb8582]
Updated dependencies [04a5a92]
Updated dependencies [8810ff0]
Updated dependencies [a8eb27d]
@hyperdx/otel-collector@2.28.0