[Monitoring] Metricbeat migration flyout and instructions#35228
[Monitoring] Metricbeat migration flyout and instructions#35228chrisronline merged 43 commits intoelastic:masterfrom
Conversation
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💚 Build Succeeded |
|
Pinging @elastic/stack-monitoring |
| }; | ||
| } | ||
|
|
||
| // shouldComponentUpdate(nextProps, nextState) { |
There was a problem hiding this comment.
I'll remove this
|
I'm assuming you will also remove these files? x-pack/plugins/monitoring/public/components/metricbeat_migration/index.js x-pack/plugins/monitoring/public/components/metricbeat_migration/metricbeat_migration.js |
|
@igoristic Yes, good catch. I pushed the commit up, but the PR is not recognizing it for some reason. You can see it here: https://github.com/chrisronline/kibana/commits/monitoring/mb_setup_step2 |
cchaos
left a comment
There was a problem hiding this comment.
Hey @chrisronline this looks pretty good, just have some suggestions for cleaning up the flyout.
- Remove the dashed border, the "Exit setup mode" link plus the new buttons should be enough to indicate.
- Remove the top level wizard steps. Since there are only two, it's not really necessary to have them.
- Use a flyout footer to house the "Next" button plus a "Close" button for them to exit the flyout
- Remove the outer EuiPanel surrounding the full steps list
- Remove the leading paragraph that just tells them to follow the instructions (pretty self-explanatory)
- I see an error with the EuiSteps layout that I'll get fixed in EUI, but shouldn't hold up this PR
- Be sure to wrap any
<p>tags inside of a<EuiText>and watch your extra lines before and after the string inside code blocks. - Use sentence case for the menu links up at the top left
Reiterating some of these below in the code to find the correct reference.
x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js
Outdated
Show resolved
Hide resolved
x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js
Outdated
Show resolved
Hide resolved
x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js
Outdated
Show resolved
Hide resolved
x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js
Outdated
Show resolved
Hide resolved
x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js
Outdated
Show resolved
Hide resolved
...oring/public/components/metricbeat_migration/instruction_steps/elasticsearch_instructions.js
Outdated
Show resolved
Hide resolved
...oring/public/components/metricbeat_migration/instruction_steps/elasticsearch_instructions.js
Outdated
Show resolved
Hide resolved
...oring/public/components/metricbeat_migration/instruction_steps/elasticsearch_instructions.js
Outdated
Show resolved
Hide resolved
...s/monitoring/public/components/metricbeat_migration/instruction_steps/kibana_instructions.js
Outdated
Show resolved
Hide resolved
...s/monitoring/public/components/metricbeat_migration/instruction_steps/kibana_instructions.js
Outdated
Show resolved
Hide resolved
|
Lots of good stuff in this PR! A few initial pieces of feedback, mostly minor:
|
💚 Build Succeeded |
|
FYI, I've updated the screenshots to reflect the most recent version of this PR to assist @cchaos in reviewing this |
x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js
Show resolved
Hide resolved
...nents/metricbeat_migration/instruction_steps/elasticsearch/enable_metricbeat_instructions.js
Outdated
Show resolved
Hide resolved
...nents/metricbeat_migration/instruction_steps/elasticsearch/enable_metricbeat_instructions.js
Outdated
Show resolved
Hide resolved
...c/components/metricbeat_migration/instruction_steps/kibana/enable_metricbeat_instructions.js
Outdated
Show resolved
Hide resolved
...c/components/metricbeat_migration/instruction_steps/kibana/enable_metricbeat_instructions.js
Outdated
Show resolved
Hide resolved
...icbeat_migration/instruction_steps/elasticsearch/disable_internal_collection_instructions.js
Show resolved
Hide resolved
...ts/metricbeat_migration/instruction_steps/kibana/disable_internal_collection_instructions.js
Outdated
Show resolved
Hide resolved
...ts/metricbeat_migration/instruction_steps/kibana/disable_internal_collection_instructions.js
Outdated
Show resolved
Hide resolved
...ts/metricbeat_migration/instruction_steps/kibana/disable_internal_collection_instructions.js
Outdated
Show resolved
Hide resolved
x-pack/plugins/monitoring/public/components/metricbeat_migration/flyout/flyout.js
Outdated
Show resolved
Hide resolved
|
@cchaos Thanks for the great feedback, I've addressed each piece and added screenshots for you tor review. |
💔 Build Failed |
|
retest |
💚 Build Succeeded |
|
@gchaps @cchaos I'm wondering if it makes sense to wait sense to wait until the last PR (see steps here) to come in and go over the PR and figure out any copy changes. Again, even if this PR ships without all steps being complete (which is not likely), users will not be able to see any of these UIs until the last step is done. Thoughts? |
|
Up to @gchaps , but for me it's so long as you promise to get some copy writer to do a final pass before it goes into master 😏 |
|
@cchaos @chrisronline added a TODO item for final copy approval from @gchaps under step 4 of the meta issue here: #39010. |
) * Initial attempt at a reactor of how this works * Enter and exiting setup mode with migration buttons working * Adding monitoring url step back in and some small cleanup * Elasticsearch steps * Add missing file * Better organization here * Remove this debug logic * Clean up * PR feedback * Add in monospacing * Persist monitoring url in local storage * Rework the steps * Change node to server, and add missing files * Fix linting issues * Fix api integration tests * PR feedback * Pass down if the product is the "primary" or not, then use that to show certain warnings in the UI (just supported for Kibana right now) * Elasticsearch migration will work slightly differently in that all nodes must be partially migrated before we can disable internal collection * More PR feedback * PR feedback * Better links * Fix tests * This should open in a new tab * PR feedback * Design and PR feedback * Fix these tests * PR feedback * Remove debug * PR feedback * Update the import path * Update this import path too * PR feedback * Fix i18n
💚 Build Succeeded |
…39014) * Initial attempt at a reactor of how this works * Enter and exiting setup mode with migration buttons working * Adding monitoring url step back in and some small cleanup * Elasticsearch steps * Add missing file * Better organization here * Remove this debug logic * Clean up * PR feedback * Add in monospacing * Persist monitoring url in local storage * Rework the steps * Change node to server, and add missing files * Fix linting issues * Fix api integration tests * PR feedback * Pass down if the product is the "primary" or not, then use that to show certain warnings in the UI (just supported for Kibana right now) * Elasticsearch migration will work slightly differently in that all nodes must be partially migrated before we can disable internal collection * More PR feedback * PR feedback * Better links * Fix tests * This should open in a new tab * PR feedback * Design and PR feedback * Fix these tests * PR feedback * Remove debug * PR feedback * Update the import path * Update this import path too * PR feedback * Fix i18n
|
Backport: 7.x: 75785e9 |
Step 2 for #39010
Summary
This PR introduces a new "Setup Mode" into the stack monitoring UI that will offer different UI treatments when toggled. Per the steps from #39010, this PR doesn't introduce a way in the UI to toggle this "Setup Mode" but it does introduce the UIs that will be visible once toggled. For testing this PR, toggling this "Setup Mode" will need to be manual. See the testing instructions section for more information.
Scope
This PR affects two pages in the UI, the ES nodes listing page and the Kibana instances listing page. Once "Setup Mode" is enabled, there will be an additional column in each page that shows the Metricbeat migration status, which is either a green badge saying
Migratedor a red CTA button sayingMigrate. ClickingMigrateopen a flyout with instructions on how to migrate, with the ability to check the status directly in the flyout.TODO
LocalizationUnanswered Questions
There are nuances around fetching the monitoring url that are making me think we should not attempt to prefill this and rather require the user to always supply it. Thoughts?There is a nuance visual "bug" where, when in a partially migrated state where you only see two steps, if you check for data and the response comes back indicating the migration is complete, the steps will switch back to the full list of steps. I don't think this is a big issue, but lemme know if it's unjarring at ll.Testing
The first thing to talk about is enabling this "Setup Mode". The most straight forward way is to just update the query string in the url, by adding this to the global state param:
,inSetupMode:!t. A final, working URL will look something like:http://localhost:5601/app/monitoring#/elasticsearch/nodes?_g=(cluster_uuid:qtoNYcCxQdK-9BGIdPN_lw,inSetupMode:!t)The second thing is the actual setup and configuration of Metricbeat to collect and ship the monitoring data. It's probably a good idea to not describe that here, and simply rely on the instructions inside of the flyout to educate anyone not currently aware. If they aren't help you or you get stuck, then we need to update the instructions!
There are a couple scenarios I think are worth testing that I'll list here:
Screenshots
UI when "Setup Mode" is enabled
Sequential flow for the flyout
Table, when fully migrated
ES state when all nodes are partially migrated
Kibana state when a node is partially migrated
Kibana state when migrating the kibana currently used