You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Formula over a sum/gauge select and a histogram select gives 0 or null when the chart has a group-by #3501
A chart has two selects: A, a Sum metric (aggFn: sum), and B, a Histogram metric (aggFn: count). It has the formula A / B, group-by ServiceName and 5-minute granularity. A and B never end up on the same row, so the formula never gets both operands:
The query returns ratio 0 on the histogram rows (a missing A counts as 0) and null on the sum rows, so a chart draws 0s. Without the group-by, the same formula is correct: 660 / 40 = 16.5, and 300 / 10 = 30.
This looks deliberate in the multi-series rendering. Histogram branches pack the group values into group and pad the scalar group columns with NULL. Scalar branches pad group with [] "so scalar rows never share a grouping key with histogram rows":
The pivot then groups by the scalar columns and group, so A and B for service a land on different rows.
Expected: A and B for the same group value on one row, and the formula per group. If a sum/gauge and a histogram select can't share a group-by, the editor and the API should reject the formula, not show a series of 0s.
Use case: per-service ratios that mix a counter with a histogram's count, for example errors per request when requests are only recorded as a latency histogram.
Steps to reproduce
Reproduces on play.hyperdx.io? Didn't try.
An integration test in the style of renderChartConfig.int.test.ts, on main (2bfc630):
Insert a cumulative monotonic sum repro.requests and a cumulative histogram repro.latency, both with ServiceNamea and b, one point a minute for 6 minutes.
Every row has either A or B null; ratio is null or 0.
Remove groupBy. ratio is correct.
How are you running HyperDX?
Helm (ClickStack chart 2.1.0) with the hyperdx:2-nightly image (2.42.0 plus the Node bump from #3456), our own ClickHouse 26.2.5.45. Reproduced on main2bfc630.
Where does it show up?
Dashboard tiles with formulas. We hit it through the MCP dashboard tools; the UI renders through the same renderChartConfig.
Debug info
N/A.
Logs
None; no error is raised.
Written with help from an AI assistant (Claude Code). The behaviour comes from our own deployment and an integration test on main.
Activity