-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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
[UX Dashboard] Migrate service list query out of APM #132548
[UX Dashboard] Migrate service list query out of APM #132548
Conversation
Pinging @elastic/apm-ui (Team:apm) |
: U | ||
: U; | ||
|
||
export function mergeProjection<T extends any, U extends SourceProjection>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ended up moving this over because there's logic about projection in the query generator for this component. LMK if this can be somehow skipped and we can delete this file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
APM doesn't use projections anymore. If you also want to get rid of projections for the UX related code you are welcome to do it as part of this PR or a follow-up. If you do that we can delete the merge_projections.ts
in both APM and UX.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sqren I think there are one or two other components in APM relying on that code. When I take them out I'll make sure nothing else references the projections and delete then.
@shahzad31 I'd appreciate your thoughts on whether we want this projection code to move into UX or if we can remove it here and now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think if it makes sense we can move these. If you think the util apm is using in place of projections, it's also worth exploring those.
import { UxUIFilters } from '../../../typings/ui_filters'; | ||
import { environmentQuery } from '../../components/app/rum_dashboard/local_uifilters/queries'; | ||
|
||
export function getEsFilter(uiFilters: UxUIFilters, exclude?: boolean) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Likewise copied this from the server because the component's query generator depends on it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copying is probably fine. Fewer dependencies <3
2713c1a
to
917c12d
Compare
return { rumServices }; | ||
}, | ||
}); | ||
|
||
const rumVisitorsBreakdownRoute = createApmServerRoute({ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I assume the remaining routes will have to be moved out in a future PR?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sqren yes we are going to be doing this one component at a time, or grouped if there are some that it makes sense to move at once. Some are going to be ported to using data plugin queries, others will become embeddables, with the goal of avoiding adding a server component to the UX plugin. We're planning to have them all removed soon!
metric = 'metric', | ||
span = 'span', | ||
profile = 'profile', | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is fine for now. But we should find a way to share these to avoid duplication. Eg. this could reside in plugins/observability/common/apm/processor_event.ts
(or something like it).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
++ I am happy to move them there now and reference from APM if you want. I can make that as a follow-up so it's easier to review without these tangential changes.
: U | ||
: U; | ||
|
||
export function mergeProjection<T extends any, U extends SourceProjection>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
APM doesn't use projections anymore. If you also want to get rid of projections for the UX related code you are welcome to do it as part of this PR or a follow-up. If you do that we can delete the merge_projections.ts
in both APM and UX.
import { UxUIFilters } from '../../../typings/ui_filters'; | ||
import { environmentQuery } from '../../components/app/rum_dashboard/local_uifilters/queries'; | ||
|
||
export function getEsFilter(uiFilters: UxUIFilters, exclude?: boolean) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copying is probably fine. Fewer dependencies <3
7d07c26
to
0d280fa
Compare
@elasticmachine merge upstream |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM !!
Thanks for picking it up.
…kibana into 454/service-list-migration
@elasticmachine merge upstream |
💚 Build SucceededMetrics [docs]Module Count
Async chunks
Unknown metric groupsESLint disabled line counts
Total ESLint disabled count
History
To update your PR or re-run it, just comment with: |
💔 All backports failed
Manual backportTo create the backport manually run:
Questions ?Please refer to the Backport tool documentation |
Friendly reminder: Looks like this PR hasn’t been backported yet. |
Friendly reminder: Looks like this PR hasn’t been backported yet. |
2 similar comments
Friendly reminder: Looks like this PR hasn’t been backported yet. |
Friendly reminder: Looks like this PR hasn’t been backported yet. |
Summary
Related to #454.
Migrates the service list query and route out of APM to the UX plugin.
Changes:
apm
key)Data
plugin to fetch the datauseEsSearch
callTesting this PR
You should test the dashboard against a rich set of UX data, like that available on the o11y edge cluster.
Ensure that the expected services show up in the dropdown. Select each value and see that the view updates as expected.
Apply any kind of filtering the app is capable of to ensure that the list behaves according to your expectations.
Checklist
Delete any items that are not applicable to this PR.
Risk Matrix
Delete this section if it is not applicable to this PR.
Before closing this PR, invite QA, stakeholders, and other developers to identify risks that should be tested prior to the change/feature release.
When forming the risk matrix, consider some of the following examples and how they may potentially impact the change:
For maintainers