[APM] Service map - fixes layout issues for maps with no rum services#62887
Merged
ogupte merged 4 commits intoelastic:masterfrom Apr 8, 2020
Merged
Conversation
ogupte
commented
Apr 8, 2020
Comment on lines
+97
to
+105
| const bfs = cy.elements().bfs({ | ||
| roots: cy.elements().leaves() | ||
| }); | ||
| const furthestNodeFromLeaves = bfs.path.last(); | ||
| return cy | ||
| .elements() | ||
| .roots() | ||
| .union(furthestNodeFromLeaves) | ||
| .map(el => el.id()); |
Contributor
Author
There was a problem hiding this comment.
This is the main change to the root selection logic: Get the leaves of the graph (no outgoing edges), then use BFS to obtain the furthest node from the leaves. Return this node + any nodes which have no incoming edges (from .roots()) to get the set of effective roots from the perspective of the breadthfirst layout.
| eles: serviceName | ||
| ? event.cy.getElementById(serviceName) | ||
| : event.cy.collection() | ||
| setTimeout(() => { |
Contributor
There was a problem hiding this comment.
Don't you have to clean up this timeout on unmount?
Contributor
Author
There was a problem hiding this comment.
I think you're right. I'll update it. I'm not sure if it will ever need cleanup in practice, but better to be safe here.
Contributor
💚 Build SucceededHistory
To update your PR or re-run it, just comment with: |
ogupte
added a commit
to ogupte/kibana
that referenced
this pull request
Apr 8, 2020
…elastic#62887) * Closes elastic#62878 in Service Maps by improving the selection algorithm for root nodes * Fixes some latent centering issues when navigating in the service map. * Removes unused imports * Added layoutstopDelayTimeout to cleanup step
ogupte
added a commit
to ogupte/kibana
that referenced
this pull request
Apr 8, 2020
…elastic#62887) * Closes elastic#62878 in Service Maps by improving the selection algorithm for root nodes * Fixes some latent centering issues when navigating in the service map. * Removes unused imports * Added layoutstopDelayTimeout to cleanup step
jloleysens
added a commit
to jloleysens/kibana
that referenced
this pull request
Apr 9, 2020
…chore/put-all-xjson-together * 'master' of github.com:elastic/kibana: (35 commits) [SIEM] [Detection Engine] Fixes bug when notification doesn't… (elastic#63013) [SIEM][Detection Engine] Fix rule notification critical bugs Add Error Exception Type Column (elastic#59596) [APM] Agent remote configuration: changes in Java property descriptions (elastic#62282) [Alerting] Displays warning when a permanent encryption key is missing and hides alerting UI appropriately (elastic#62772) FTR: add chromium-based Edge browser support (elastic#61684) [Ingest] Data source configuration validation UI (elastic#61180) restore empty_kibana after saved objects test (elastic#62951) Index pattern management plugin - src/legacy/core_plugins/management => new platform plugin (elastic#62594) Add basic StatusService (elastic#60335) [kbn/optimizer] link to kibanaReact/kibanaUtils plugins (elastic#62720) [APM] Service map - fixes layout issues for maps with no rum services (elastic#62887) Exclude disabled datasources and streams from agent config (elastic#62869) [Alerting] Fix validation support for nested IErrorObjects (elastic#62833) [Metrics UI] Invalidate non-count alerts which have no metrics (elastic#62837) Add --filter option to API docs script (elastic#62888) [Maps] fix attribution overflow with exit full screen button (elastic#62699) [Uptime]Alerting UI text in case filter is selected (elastic#62570) [Maps] Show create filter button for top-term tooltip property (elastic#62461) skip flaky suite (elastic#59030) ... # Conflicts: # src/plugins/es_ui_shared/public/index.ts
gmmorris
added a commit
to gmmorris/kibana
that referenced
this pull request
Apr 9, 2020
* master: (40 commits) [ML] Functional transform tests - stabilize source selection (elastic#63087) add embed flag to saved object url as well (elastic#62926) [SIEM] [Detection Engine] Fixes bug when notification doesn't… (elastic#63013) [SIEM][Detection Engine] Fix rule notification critical bugs Add Error Exception Type Column (elastic#59596) [APM] Agent remote configuration: changes in Java property descriptions (elastic#62282) [Alerting] Displays warning when a permanent encryption key is missing and hides alerting UI appropriately (elastic#62772) FTR: add chromium-based Edge browser support (elastic#61684) [Ingest] Data source configuration validation UI (elastic#61180) restore empty_kibana after saved objects test (elastic#62951) Index pattern management plugin - src/legacy/core_plugins/management => new platform plugin (elastic#62594) Add basic StatusService (elastic#60335) [kbn/optimizer] link to kibanaReact/kibanaUtils plugins (elastic#62720) [APM] Service map - fixes layout issues for maps with no rum services (elastic#62887) Exclude disabled datasources and streams from agent config (elastic#62869) [Alerting] Fix validation support for nested IErrorObjects (elastic#62833) [Metrics UI] Invalidate non-count alerts which have no metrics (elastic#62837) Add --filter option to API docs script (elastic#62888) [Maps] fix attribution overflow with exit full screen button (elastic#62699) [Uptime]Alerting UI text in case filter is selected (elastic#62570) ...
Contributor
|
Tests ok: |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Closes #62878 by improving the root selection algorithm. Instead of just using cytoscape's
elements.roots()selector. We now also useelements.leaves(), then use breadth first search to get the furthest node from the leaves, and includes that in the set of root nodes. This addresses the issues where some service maps do not have any services without incoming edges, (those returned from theelements.roots()function alone).Fixes service map layout:

Old service map layout for the same data:
