[Discover][APM] Unify Span/Transaction into single Overview tab#233716
[Discover][APM] Unify Span/Transaction into single Overview tab#233716Bluefinger merged 19 commits intoelastic:mainfrom
Conversation
|
/ci |
|
Pinging @elastic/obs-ux-infra_services-team (Team:obs-ux-infra_services) |
| @@ -58,7 +56,6 @@ export interface SpanFlyoutProps { | |||
|
|
|||
| export const SpanFlyoutBody = ({ hit, loading, dataView }: SpanFlyoutProps) => { | |||
There was a problem hiding this comment.
Does it make sense to rename this component too?
| export const SpanFlyoutBody = ({ hit, loading, dataView }: SpanFlyoutProps) => { | |
| export const TraceFlyoutBody = ({ hit, loading, dataView }: SpanFlyoutProps) => { |
There was a problem hiding this comment.
At the moment this depends on span.id right? Maybe this should stay as SpanFlyout for now until this has support for using trace.id as well? So more for the follow-up task #232608? What do you think?
...d/unified_doc_viewer/public/components/observability/traces/components/service_name_link.tsx
Outdated
Show resolved
Hide resolved
...d/unified_doc_viewer/public/components/observability/traces/components/service_name_link.tsx
Show resolved
Hide resolved
...ed_doc_viewer/public/components/observability/traces/doc_viewer_overview/resources/fields.ts
Outdated
Show resolved
Hide resolved
...ed_doc_viewer/public/components/observability/traces/doc_viewer_overview/resources/fields.ts
Outdated
Show resolved
Hide resolved
.../components/observability/traces/doc_viewer_overview/sub_components/dependency_name_link.tsx
Outdated
Show resolved
Hide resolved
.../public/components/observability/traces/doc_viewer_overview/sub_components/summary_title.tsx
Outdated
Show resolved
Hide resolved
...d/unified_doc_viewer/public/components/observability/traces/doc_viewer_overview/overview.tsx
Outdated
Show resolved
Hide resolved
iblancof
left a comment
There was a problem hiding this comment.
Tested locally and left a few comments!
Can’t wait to get this merged and integrate the changes into my current work 🚀
...le_providers/observability/traces_document_profile/document_profile/accessors/doc_viewer.tsx
Outdated
Show resolved
Hide resolved
...d/unified_doc_viewer/public/components/observability/traces/components/service_name_link.tsx
Show resolved
Hide resolved
...d/unified_doc_viewer/public/components/observability/traces/components/service_name_link.tsx
Outdated
Show resolved
Hide resolved
...ified_doc_viewer/public/components/observability/traces/components/transaction_name_link.tsx
Show resolved
Hide resolved
| spanType?: string; | ||
| spanSubtype?: string; | ||
| environment: string; | ||
| environment?: string; |
There was a problem hiding this comment.
Why is this optional now? Is it related to OTel purposes?
...blic/components/observability/traces/doc_viewer_overview/sub_components/duration_summary.tsx
Show resolved
Hide resolved
...wareness/profile_providers/observability/traces_document_profile/document_profile/profile.ts
Show resolved
Hide resolved
crespocarlos
left a comment
There was a problem hiding this comment.
Cool stuff. I didn't test it, just reviewed the code.
...unified_doc_viewer/public/components/observability/traces/components/similar_spans/index.tsx
Outdated
Show resolved
Hide resolved
...ified_doc_viewer/public/components/observability/traces/components/transaction_name_link.tsx
Show resolved
Hide resolved
achyutjhunjhunwala
left a comment
There was a problem hiding this comment.
Reviewed obs-ux-logs changes alone. They are LGTM
davismcphee
left a comment
There was a problem hiding this comment.
Code-only review, Data Discovery changes LGTM, although I have concerns about the changes to the document profile heuristics.
| import { createGetDocViewer } from './accessors'; | ||
|
|
||
| const OBSERVABILITY_TRACES_SPAN_DOCUMENT_PROFILE_ID = 'observability-traces-span-document-profile'; | ||
| const OBSERVABILITY_TRACES_SPAN_DOCUMENT_PROFILE_ID = 'observability-traces-document-profile'; |
There was a problem hiding this comment.
Just an fyi in case your team is currently tracking telemetry in Discover that this will have an impact on it.
|
|
||
| return dataStreamType === 'traces' && (isApmSpan || isOtelSpan); | ||
| }; | ||
| return dataSourceContext.category === DataSourceCategory.Traces && !!traceId; |
There was a problem hiding this comment.
This new dataSourceContext.category check means the traces document profile will no longer work in mixed data scenarios, e.g. FROM metrics-*,traces-*, since it depends on the data source profile being active too. Ultimately it's up to your team, but it takes away from the One Discover goal and purpose of document profiles, and I wouldn't recommend it.
There was a problem hiding this comment.
I tested with FROM remote_cluster:logs-*, remote_cluster:traces-*, and I was still able to get the Trace Overview tab for trace documents and the Log overview tab for logs. This check is done per document, so I don't think this will cause problems?
There was a problem hiding this comment.
After a bit of discussion, it seems there is an issue with how data source profiles are resolved and are currently clobbering each other, so this will be solved in a separate task: #234068
💔 Build Failed
Failed CI StepsHistory
|
…tic#233716) ## Summary This PR is for cleaning up technical debt regarding the split of Span/Transaction concepts for the Overview tab, and unifying them into a single Overview that can handle the particularities of each while deduplicating code for everything else that overlaps. Closes elastic#232603 <img width="486" height="1097" alt="image" src="https://github.com/user-attachments/assets/c2ba3eeb-eddb-47ae-8326-1ea23a19703b" /> ## TODO - [x] Initial merge and resolving conflicts from main - [x] Migrate remaining/missing test cases to Overview - [x] Further testing to ensure no regressions ## How to Test - Ensure the space is set to Observability mode, and then go to Discover. Ensure a traces index is being used in either Classic mode or ES|QL mode. - In Classic mode, selecting a trace document should show the same visual behaviour for both transactions and spans as before. Same with ES|QL mode. - In ES|QL mode, modify the query to have at least `trace.id` and a few other fields. The overview should show widgets for fields it can resolve. - in ES|QL mode, modify the query to remove `trace.id` from the kept fields. The overview tab should no longer show (as the minimum we expect for a trace document is to have the `trace.id` present).
|
Friendly reminder: Looks like this PR hasn’t been backported yet. |
3 similar comments
|
Friendly reminder: Looks like this PR hasn’t been backported yet. |
|
Friendly reminder: Looks like this PR hasn’t been backported yet. |
|
Friendly reminder: Looks like this PR hasn’t been backported yet. |
…tic#233716) ## Summary This PR is for cleaning up technical debt regarding the split of Span/Transaction concepts for the Overview tab, and unifying them into a single Overview that can handle the particularities of each while deduplicating code for everything else that overlaps. Closes elastic#232603 <img width="486" height="1097" alt="image" src="https://github.com/user-attachments/assets/c2ba3eeb-eddb-47ae-8326-1ea23a19703b" /> ## TODO - [x] Initial merge and resolving conflicts from main - [x] Migrate remaining/missing test cases to Overview - [x] Further testing to ensure no regressions ## How to Test - Ensure the space is set to Observability mode, and then go to Discover. Ensure a traces index is being used in either Classic mode or ES|QL mode. - In Classic mode, selecting a trace document should show the same visual behaviour for both transactions and spans as before. Same with ES|QL mode. - In ES|QL mode, modify the query to have at least `trace.id` and a few other fields. The overview should show widgets for fields it can resolve. - in ES|QL mode, modify the query to remove `trace.id` from the kept fields. The overview tab should no longer show (as the minimum we expect for a trace document is to have the `trace.id` present).
|
Friendly reminder: Looks like this PR hasn’t been backported yet. |
3 similar comments
|
Friendly reminder: Looks like this PR hasn’t been backported yet. |
|
Friendly reminder: Looks like this PR hasn’t been backported yet. |
|
Friendly reminder: Looks like this PR hasn’t been backported yet. |
…tic#233716) ## Summary This PR is for cleaning up technical debt regarding the split of Span/Transaction concepts for the Overview tab, and unifying them into a single Overview that can handle the particularities of each while deduplicating code for everything else that overlaps. Closes elastic#232603 <img width="486" height="1097" alt="image" src="https://github.com/user-attachments/assets/c2ba3eeb-eddb-47ae-8326-1ea23a19703b" /> ## TODO - [x] Initial merge and resolving conflicts from main - [x] Migrate remaining/missing test cases to Overview - [x] Further testing to ensure no regressions ## How to Test - Ensure the space is set to Observability mode, and then go to Discover. Ensure a traces index is being used in either Classic mode or ES|QL mode. - In Classic mode, selecting a trace document should show the same visual behaviour for both transactions and spans as before. Same with ES|QL mode. - In ES|QL mode, modify the query to have at least `trace.id` and a few other fields. The overview should show widgets for fields it can resolve. - in ES|QL mode, modify the query to remove `trace.id` from the kept fields. The overview tab should no longer show (as the minimum we expect for a trace document is to have the `trace.id` present).
Summary
This PR is for cleaning up technical debt regarding the split of Span/Transaction concepts for the Overview tab, and unifying them into a single Overview that can handle the particularities of each while deduplicating code for everything else that overlaps.
Closes #232603
TODO
How to Test
trace.idand a few other fields. The overview should show widgets for fields it can resolve.trace.idfrom the kept fields. The overview tab should no longer show (as the minimum we expect for a trace document is to have thetrace.idpresent).