Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Portable Dashboards] Remove Legacy Clientside Migrations #137200

Closed
Tracked by #120260
ThomThomson opened this issue Jul 26, 2022 · 3 comments · Fixed by #138774
Closed
Tracked by #120260

[Portable Dashboards] Remove Legacy Clientside Migrations #137200

ThomThomson opened this issue Jul 26, 2022 · 3 comments · Fixed by #138774
Labels
Feature:Dashboard Dashboard related features impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. loe:small Small Level of Effort Project:Portable Dashboard Related to the Portable Dashboards initiative Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas technical debt Improvement of the software architecture and operational architecture

Comments

@ThomThomson
Copy link
Contributor

Overview
It seems like it's finally come time to remove the client side legacy migrations that Dashboard runs through every time a dashboard is loaded.

These migrations were introduced before the saved object migrations, and have stuck around to ensure that really old dashboard state that a user has bookmarked in their browser still works when it's opened, even if Kibana has been upgraded multiple times between when the bookmark was created, and when it was loaded.

In my research I've found that these migrations are only required for folks who:

  • Have bookmarked a full length dashboard URL from a version before 7.3
  • Who will upgrade to 8.5 when it is released
  • Who will not update their bookmarks when they upgrade.

Why should we remove them?
These migrations can slow down the dashboard loading process, and are currently run on top of the existing legacy migrations run by the saved object migration system.

What does the telemetry say
We've been collecting telemetry on this since November 2020 with a ui-counter DashboardPanelVersionInUrl. This telemetry shows that out of >400 000 dashboard URL loads over 2 years, only 5 were loaded from a version <7.3 into a version >8.0.

This means that the likely number of users affected by removing these migrations is 0.

@ThomThomson ThomThomson added Feature:Dashboard Dashboard related features Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas loe:small Small Level of Effort technical debt Improvement of the software architecture and operational architecture impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. Project:Portable Dashboard Related to the Portable Dashboards initiative labels Jul 26, 2022
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-presentation (Team:Presentation)

@thomasneirynck
Copy link
Contributor

I'm in favor of removing these migrations, given the low usage. It will be beneficial to remove this overhead.

What would the behavior for the end-user be when the migration does not run and then presumably will fail lowing. Are we planning to offer some guidance (links to docs, how-tos, toasts, ...) when this (unlikely) occurrence should happen?

@ThomThomson
Copy link
Contributor Author

The main migrations that were run in this way were the panel shape migrations, i.e. the migration towards using React Grid Layout for our layout engine in 6.1. If pre-6.1 panels get into dashboard via the URL, the whole dashboard will fail to load.

In the unlikely case that a user loads a URL saved from a pre 7.0 version of Kibana into a version >8.5 and the migrations are needed, we could potentially discard the panels from the URL, and load only the panels from the saved object instead. We could also show a toast to let the user know that their URL is too old to load, and they should regenerate it using the share feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature:Dashboard Dashboard related features impact:medium Addressing this issue will have a medium level of impact on the quality/strength of our product. loe:small Small Level of Effort Project:Portable Dashboard Related to the Portable Dashboards initiative Team:Presentation Presentation Team for Dashboard, Input Controls, and Canvas technical debt Improvement of the software architecture and operational architecture
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants