Skip to content

[BREAKINGCHANGE] Improve performance on some components (Variable / TimeSeriersTooltip / UsageMetrics) - #319

Closed
Gladorme wants to merge 9 commits into
perses:mainfrom
Gladorme:t3code/perf-and-state-improvements
Closed

Gladorme wants to merge 9 commits into
perses:mainfrom
Gladorme:t3code/perf-and-state-improvements

Conversation

@Gladorme

@Gladorme Gladorme commented Sep 23, 2026 •

Copy link
Copy Markdown
Member

Description

Depends on: #310. This PR will probably be split in multiple PRs later.

  • VariableProvider / Variable input performance.
  • TimeSeriesTooltip (useChartTooltipData, nearby-series) and PanelFocusProvider hover performance.
  • Explore: defaultExplorer, getExplorerKey, useSortedExplorerPlugins, ViewExploreApp.
  • UsageMetrics rewrite, plus moving query recording in DataQueriesProvider into an effect.
  • Removing the public useId export (breaking)

Breaking change

Replace Perses useId(...) by React useId()

Screenshots

Checklist

  • Pull request has a descriptive title and context useful to a reviewer.
  • Pull request title follows the [<catalog_entry>] <commit message> naming convention using one of the
    following catalog_entry values: FEATURE, ENHANCEMENT, BUGFIX, BREAKINGCHANGE, DOC,IGNORE.
  • All commits have DCO signoffs.

UI Changes

  • Changes that impact the UI include screenshots and/or screencasts of the relevant changes.
  • Code follows the UI guidelines.
  • E2E tests are stable and unlikely to be flaky.
    See e2e docs for more details. Common issues include:
    • Is the data inconsistent? You need to mock API requests.
    • Does the time change? You need to use consistent time values or mock time utilities.
    • Does it have loading states? You need to wait for loading to complete.

- Upgrade oxlint to 1.85.0 and oxfmt to 0.70.0
- Enable React Compiler and React Doctor rules as errors
- Fix violations and remove useMemoized/useDeepMemo

Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
Enable typescript/no-explicit-any as an error and replace existing violations with checked types. Narrow resource display settings, type table cell values, and pass only available query data to panel actions.

Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
…ncing effect

Derive the default explorer from the sorted plugin list in ViewExploreApp and pass it to the explorer manager provider.

Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
Own the render metrics accumulator in the provider, submit metrics only once per dashboard, and record query states after commit instead of during render.

Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
Signed-off-by: Guillaume LADORME <gladorme@gmail.com>
@Gladorme Gladorme changed the title T3code/perf and state improvements {BREAKINGCHANGE] Improve performance on some components (Variable / TimeSeriersTooltip / UsageMetrics) Sep 23, 2026
@Gladorme Gladorme changed the title {BREAKINGCHANGE] Improve performance on some components (Variable / TimeSeriersTooltip / UsageMetrics) [BREAKINGCHANGE] Improve performance on some components (Variable / TimeSeriersTooltip / UsageMetrics) Sep 23, 2026
@Gladorme

Gladorme commented Oct 2, 2026

Copy link
Copy Markdown
Member Author

Split into smaller, independent PRs based on main to ease review (the oxlint/no-explicit-any commits already landed via #310):

@Gladorme Gladorme closed this Oct 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant