Skip to content

UI generates invalid ClickHouse queries when filtering on parsed JSON strings #995

@garysassano

Description

@garysassano

HyperDX UI automatically parses JSON strings in the StatusMessage column but fails to generate proper ClickHouse queries when users attempt to filter on nested JSON fields through the Search for this value only feature.

Steps to Reproduce

  1. Have a span with a StatusMessage field (stored as a String in ClickHouse) containing JSON data.

  2. In the HyperDX UI, the string is automatically parsed as JSON and displayed in a tree structure:

    Image
  3. Navigate to the nested field (e.g., failures.0.index with value "identities")

  4. Click Search for this value only:

    Image

Expected Behavior

The UI should generate a valid ClickHouse query using proper JSON Functions such as:

  • simpleJSONExtractString(StatusMessage, 'index') = 'identities' for field matching

    Image

Actual Behavior

HyperDX generates an invalid query that fails with a ClickHouse syntax error. The UI knows how to parse and display the JSON structure correctly but cannot translate user filtering actions into proper ClickHouse queries.

Image

Suggested Fix

The UI should:

  1. Detect when a field is a JSON string that has been automatically parsed
  2. Prefer simpleJSONExtractString for basic field matching as it's more reliable for nested JSON
  3. Fall back to JSONExtractString only when precise path specification is required

Impact

This significantly impacts usability as users cannot effectively filter on JSON data through the UI, forcing them to write raw ClickHouse queries manually.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions