mirror of
https://github.com/SigNoz/signoz.git
synced 2026-08-05 20:50:45 +01:00
* fix(dashboard): count panel stats from the v2 spec The panel counters walked a top-level `widgets` array and returned early when the key was missing. A v2 dashboard stores only `metadata` and `spec`, with panels as a map under `spec.panels`, so every v2 row hit that early return and all `dashboard.panels.*` stats stayed at zero. `dashboard.count` was unaffected — it is a row count. Read the v2 spec instead: count the panels under `spec.panels` and take each panel's signal from its query envelope, reusing the typed read path and `QueryEnvelope.GetSignal`. Signal-less queries (promql, clickhouse sql, formulas) count towards the panel total only. v1 rows are no longer parsed for panel stats and contribute to `dashboard.count` alone. * test(dashboard): drop the constant name arg from the stats query helper statsBuilderQuery only ever received "A", which go-lint flags via unparam. A panel holds a single query, so the name never mattered to the assertions; the composite test still names its sub-queries through statsBuilderQuerySpec. * refactor(dashboard): move v2 panel stats to a perses_ file All v2 code lives in perses_-prefixed files until the v1 code goes away. Pure move of the stats block out of dashboard.go, tests alongside it. * fix(dashboard): count create-v2 stats off the postable spec CreateV2 already holds the postable dashboard, so decoding the storable back into a v2 dashboard just to count its panels was a needless type conversion on the create path. Split the panel walk into addPanelStats over a DashboardSpec, and add NewStatsFromPostableDashboardV2 for the create path. The storable variant keeps its signature for the periodic collectors, which only have rows.