-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[APM] Missing items in the trace waterfall shouldn't break it entirely #210210
Conversation
Pinging @elastic/obs-ux-infra_services-team (Team:obs-ux-infra_services) |
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.
Nice 💯 works as expected. BTW we have a scenario for this case called trace_with_orphan_items
and I can see it there:
Edit: More of an idea, no need to do it here: We can also include more orphans in the scenario and have some orphans with children for example and this can help us test this
I added a suggestion ⬇️
.../waterfall_with_summary/waterfall_container/waterfall/waterfall_helpers/waterfall_helpers.ts
Outdated
Show resolved
Hide resolved
Starting backport for target branches: 8.16, 8.17, 8.18, 8.x, 9.0 |
💛 Build succeeded, but was flaky
Failed CI StepsTest Failures
Metrics [docs]Module Count
Async chunks
History
|
elastic#210210) closes elastic#120464 When orphan items are found, I am re-parenting them to the root transaction and adding an indication. Test architecture: APP_A -> APP_B -> APP_C `APP_B` is not instrumented with Elastic APM, so it is not available in the trace, thus APP_C has a parent which is not available in the current trace. `APP_C` is reparented to point to `APP_A`. Before: <img width="1509" alt="Screenshot 2025-02-07 at 12 55 06" src="https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e" /> After [1]: <img width="1499" alt="Screenshot 2025-02-07 at 12 03 34" src="https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91" /> After [2]: <img width="712" alt="Screenshot 2025-02-07 at 11 35 28" src="https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b" /> ## How to test it: - Run synthtrace `distributed_trace.ts` scenario. - Find a trace.id - Remove one of the elements from the trace. (cherry picked from commit 9bc9643)
elastic#210210) closes elastic#120464 When orphan items are found, I am re-parenting them to the root transaction and adding an indication. Test architecture: APP_A -> APP_B -> APP_C `APP_B` is not instrumented with Elastic APM, so it is not available in the trace, thus APP_C has a parent which is not available in the current trace. `APP_C` is reparented to point to `APP_A`. Before: <img width="1509" alt="Screenshot 2025-02-07 at 12 55 06" src="https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e" /> After [1]: <img width="1499" alt="Screenshot 2025-02-07 at 12 03 34" src="https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91" /> After [2]: <img width="712" alt="Screenshot 2025-02-07 at 11 35 28" src="https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b" /> ## How to test it: - Run synthtrace `distributed_trace.ts` scenario. - Find a trace.id - Remove one of the elements from the trace. (cherry picked from commit 9bc9643)
elastic#210210) closes elastic#120464 When orphan items are found, I am re-parenting them to the root transaction and adding an indication. Test architecture: APP_A -> APP_B -> APP_C `APP_B` is not instrumented with Elastic APM, so it is not available in the trace, thus APP_C has a parent which is not available in the current trace. `APP_C` is reparented to point to `APP_A`. Before: <img width="1509" alt="Screenshot 2025-02-07 at 12 55 06" src="https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e" /> After [1]: <img width="1499" alt="Screenshot 2025-02-07 at 12 03 34" src="https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91" /> After [2]: <img width="712" alt="Screenshot 2025-02-07 at 11 35 28" src="https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b" /> ## How to test it: - Run synthtrace `distributed_trace.ts` scenario. - Find a trace.id - Remove one of the elements from the trace. (cherry picked from commit 9bc9643)
💔 Some backports could not be created
Note: Successful backport PRs will be merged automatically after passing CI. Manual backportTo create the backport manually run:
Questions ?Please refer to the Backport tool documentation |
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
elastic#210210) closes elastic#120464 When orphan items are found, I am re-parenting them to the root transaction and adding an indication. Test architecture: APP_A -> APP_B -> APP_C `APP_B` is not instrumented with Elastic APM, so it is not available in the trace, thus APP_C has a parent which is not available in the current trace. `APP_C` is reparented to point to `APP_A`. Before: <img width="1509" alt="Screenshot 2025-02-07 at 12 55 06" src="https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e" /> After [1]: <img width="1499" alt="Screenshot 2025-02-07 at 12 03 34" src="https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91" /> After [2]: <img width="712" alt="Screenshot 2025-02-07 at 11 35 28" src="https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b" /> ## How to test it: - Run synthtrace `distributed_trace.ts` scenario. - Find a trace.id - Remove one of the elements from the trace. (cherry picked from commit 9bc9643) # Conflicts: # x-pack/plugins/observability_solution/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall/orphan_item_tooltip_icon.tsx # x-pack/plugins/observability_solution/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall/waterfall_helpers/waterfall_helpers.test.ts
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation |
elastic#210210) closes elastic#120464 When orphan items are found, I am re-parenting them to the root transaction and adding an indication. Test architecture: APP_A -> APP_B -> APP_C `APP_B` is not instrumented with Elastic APM, so it is not available in the trace, thus APP_C has a parent which is not available in the current trace. `APP_C` is reparented to point to `APP_A`. Before: <img width="1509" alt="Screenshot 2025-02-07 at 12 55 06" src="https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e" /> After [1]: <img width="1499" alt="Screenshot 2025-02-07 at 12 03 34" src="https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91" /> After [2]: <img width="712" alt="Screenshot 2025-02-07 at 11 35 28" src="https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b" /> ## How to test it: - Run synthtrace `distributed_trace.ts` scenario. - Find a trace.id - Remove one of the elements from the trace. (cherry picked from commit 9bc9643) # Conflicts: # x-pack/plugins/observability_solution/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall/orphan_item_tooltip_icon.tsx # x-pack/plugins/observability_solution/apm/public/components/app/transaction_details/waterfall_with_summary/waterfall_container/waterfall/waterfall_helpers/waterfall_helpers.test.ts
…k it entirely (#210210) (#210390) # Backport This will backport the following commits from `main` to `8.18`: - [[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)](#210210) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Cauê Marcondes","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-02-10T14:04:33Z","message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","backport:prev-minor","backport:prev-major","Team:obs-ux-infra_services","v9.1.0"],"title":"[APM] Missing items in the trace waterfall shouldn't break it entirely","number":210210,"url":"https://github.com/elastic/kibana/pull/210210","mergeCommit":{"message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/210210","number":210210,"mergeCommit":{"message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7"}}]}] BACKPORT--> Co-authored-by: Cauê Marcondes <[email protected]>
…entirely (#210210) (#210395) # Backport This will backport the following commits from `main` to `8.16`: - [[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)](#210210) <!--- Backport version: 9.6.4 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Cauê Marcondes","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-02-10T14:04:33Z","message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","backport:prev-minor","backport:prev-major","Team:obs-ux-infra_services","v9.1.0"],"title":"[APM] Missing items in the trace waterfall shouldn't break it entirely","number":210210,"url":"https://github.com/elastic/kibana/pull/210210","mergeCommit":{"message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/210210","number":210210,"mergeCommit":{"message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7"}},{"url":"https://github.com/elastic/kibana/pull/210390","number":210390,"branch":"8.18","state":"OPEN"},{"url":"https://github.com/elastic/kibana/pull/210391","number":210391,"branch":"8.x","state":"OPEN"},{"url":"https://github.com/elastic/kibana/pull/210393","number":210393,"branch":"9.0","state":"OPEN"}]}] BACKPORT-->
… it entirely (#210210) (#210393) # Backport This will backport the following commits from `main` to `9.0`: - [[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)](#210210) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Cauê Marcondes","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-02-10T14:04:33Z","message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","backport:prev-minor","backport:prev-major","Team:obs-ux-infra_services","v9.1.0"],"title":"[APM] Missing items in the trace waterfall shouldn't break it entirely","number":210210,"url":"https://github.com/elastic/kibana/pull/210210","mergeCommit":{"message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/210210","number":210210,"mergeCommit":{"message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7"}}]}] BACKPORT--> Co-authored-by: Cauê Marcondes <[email protected]>
…entirely (#210210) (#210397) # Backport This will backport the following commits from `main` to `8.17`: - [[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)](#210210) <!--- Backport version: 9.6.4 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sorenlouv/backport) <!--BACKPORT [{"author":{"name":"Cauê Marcondes","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-02-10T14:04:33Z","message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","backport:prev-minor","backport:prev-major","Team:obs-ux-infra_services","v9.1.0"],"title":"[APM] Missing items in the trace waterfall shouldn't break it entirely","number":210210,"url":"https://github.com/elastic/kibana/pull/210210","mergeCommit":{"message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/210210","number":210210,"mergeCommit":{"message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7"}},{"url":"https://github.com/elastic/kibana/pull/210390","number":210390,"branch":"8.18","state":"OPEN"},{"url":"https://github.com/elastic/kibana/pull/210391","number":210391,"branch":"8.x","state":"OPEN"},{"url":"https://github.com/elastic/kibana/pull/210393","number":210393,"branch":"9.0","state":"OPEN"},{"url":"https://github.com/elastic/kibana/pull/210395","number":210395,"branch":"8.16","state":"OPEN"}]}] BACKPORT-->
… it entirely (#210210) (#210391) # Backport This will backport the following commits from `main` to `8.x`: - [[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)](#210210) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Cauê Marcondes","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-02-10T14:04:33Z","message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:fix","backport:prev-minor","backport:prev-major","Team:obs-ux-infra_services","v9.1.0"],"title":"[APM] Missing items in the trace waterfall shouldn't break it entirely","number":210210,"url":"https://github.com/elastic/kibana/pull/210210","mergeCommit":{"message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/210210","number":210210,"mergeCommit":{"message":"[APM] Missing items in the trace waterfall shouldn't break it entirely (#210210)\n\ncloses https://github.com/elastic/kibana/issues/120464\r\n\r\nWhen orphan items are found, I am re-parenting them to the root\r\ntransaction and adding an indication.\r\n\r\nTest architecture:\r\nAPP_A -> APP_B -> APP_C\r\n\r\n`APP_B` is not instrumented with Elastic APM, so it is not available in\r\nthe trace, thus APP_C has a parent which is not available in the current\r\ntrace. `APP_C` is reparented to point to `APP_A`.\r\n\r\nBefore:\r\n<img width=\"1509\" alt=\"Screenshot 2025-02-07 at 12 55 06\"\r\nsrc=\"https://github.com/user-attachments/assets/a973fa5d-1acf-4fff-b525-01957490494e\"\r\n/>\r\n\r\n\r\nAfter [1]:\r\n<img width=\"1499\" alt=\"Screenshot 2025-02-07 at 12 03 34\"\r\nsrc=\"https://github.com/user-attachments/assets/8c49df04-de09-4d17-b6f8-f4b848e89f91\"\r\n/>\r\n\r\nAfter [2]:\r\n<img width=\"712\" alt=\"Screenshot 2025-02-07 at 11 35 28\"\r\nsrc=\"https://github.com/user-attachments/assets/2b62a7cf-5979-4636-bc05-c25c96e9d71b\"\r\n/>\r\n\r\n## How to test it:\r\n- Run synthtrace `distributed_trace.ts` scenario.\r\n- Find a trace.id\r\n- Remove one of the elements from the trace.","sha":"9bc9643e80d8b0dc7e2a81bf79c450446c16fcb7"}}]}] BACKPORT--> Co-authored-by: Cauê Marcondes <[email protected]>
This PR didn't make it into the latest BC for v8.16.4 and v8.17.2. Updating the labels. |
closes #120464
When orphan items are found, I am re-parenting them to the root transaction and adding an indication.
Test architecture:
APP_A -> APP_B -> APP_C
APP_B
is not instrumented with Elastic APM, so it is not available in the trace, thus APP_C has a parent which is not available in the current trace.APP_C
is reparented to point toAPP_A
.Before:

After [1]:

After [2]:

How to test it:
distributed_trace.ts
scenario.