[8.x] [ObsUX] [APM] [OTel] Runtime metrics show dashboards with different ingest path (#211822) #213373
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.
Backport
This will backport the following commits from
main
to8.x
:Questions ?
Please refer to the Backport tool documentation
APM Server --> ES\nVanilla OTel SDKs --> APM Server --> ES\nEDOT OTel SDKs --> APM Server --> ES\nClassic APM Agent --> EDOT Collector --> ES\nVanilla OTel SDKs. --> EDOT Collector --> ES\nEDOT OTel SDKs --> EDOT Collector --> ES\nWe agreed on having a dashboard filename pattern to make showing the\ncorrect dashboard easier described\n[here](https://github.com//issues/195857#issue-2580733648)\n\nFirst, we determine if the ingest path is through APM Server or EDOT\nCollector by checking the `telemtry.sdk` fields.\n\n## TODOs / Reviewer notes\n- [ ] Currently, we have a fallback to metrics charts which is valid\nonly if we have APM agent so this PR adds an empty state message:\n\"Runtime metrics are not available for this Agent / SDK type.\" in case\nthere is no dashboard for the service language. To be improved in\nhttps://github.com//issues/211774 and will be updated in\nthis PR when ready - I will still open it for review as the other logic\ncan be reviewed\n- The dashboards are to be updated (by the agent team so not part of the\nchanges here)\n\n## Testing: \n- Using e2e PoC \n- The available dashboard cases can be found in\n[loadDashboardFile](https://github.com/jennypavlova/kibana/blob/91f169e19a3fa3f83ca60eb078159c026f9617af/x-pack/solutions/observability/plugins/apm/public/components/app/metrics/static_dashboard/dashboards/dashboard_catalog.ts#L40)\n- Cases to be checked:\n- OTel native with Vanilla OTel SDKs with available dashboard (example\ncase file: `otel_native-otel_other-nodejs`, `...-java`, `...-dotnet`)\n \n![\"image\"\nsrc=\"https://github.com/user-attachments/assets/44d37b05-a8e7-4f14-a1de-2c631f1843bb\"\n/]()
\n\n- APM server with Vanilla OTel SDKs service with available dashboard\n(example case file: `classic_apm-otel_other-nodejs`, `...-java`,\n`...-dotnet`)\n \n\n\n\n- APM server with Classic APM Agent (example case file:\n`classic_apm-apm-nodejs`, `...-java`)\n \n![\"image\"\nsrc=\"https://github.com/user-attachments/assets/f9e96dce-55c8-467a-93f0-a09fa219597e\"\n/]()
\n\n- OTel native with Vanilla OTel SDKs without available dashboard (empty\nstate case example: python service)\n \n\n\n\n- APM server with Vanilla OTel SDKs service without available dashboard\n(empty state)\n \n![\"image\"\nsrc=\"https://github.com/user-attachments/assets/5219cf94-5013-4874-aaea-e558cca69281\"\n/]()
\n\n- APM server with Classic APM Agent without available dashboard (Current\nmetrics fallback)\n \n![\"image\"\nsrc=\"https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75\"\n/]()
\n\n-![\"image\"\nsrc=\"https://github.com/user-attachments/assets/44d37b05-a8e7-4f14-a1de-2c631f1843bb\"\n/]()
\n\n- APM server with Vanilla OTel SDKs service with available dashboard\n(example case file: `classic_apm-otel_other-nodejs`, `...-java`,\n`...-dotnet`)\n \n\n\n\n- APM server with Classic APM Agent (example case file:\n`classic_apm-apm-nodejs`, `...-java`)\n \n![\"image\"\nsrc=\"https://github.com/user-attachments/assets/f9e96dce-55c8-467a-93f0-a09fa219597e\"\n/]()
\n\n- OTel native with Vanilla OTel SDKs without available dashboard (empty\nstate case example: python service)\n \n\n\n\n- APM server with Vanilla OTel SDKs service without available dashboard\n(empty state)\n \n![\"image\"\nsrc=\"https://github.com/user-attachments/assets/5219cf94-5013-4874-aaea-e558cca69281\"\n/]()
\n\n- APM server with Classic APM Agent without available dashboard (Current\nmetrics fallback)\n \n![\"image\"\nsrc=\"https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75\"\n/]()
\n\n-![\"image\"\nsrc=\"https://github.com/user-attachments/assets/44d37b05-a8e7-4f14-a1de-2c631f1843bb\"\n/]()
\n\n- APM server with Vanilla OTel SDKs service with available dashboard\n(example case file: `classic_apm-otel_other-nodejs`, `...-java`,\n`...-dotnet`)\n \n\n\n\n- APM server with Classic APM Agent (example case file:\n`classic_apm-apm-nodejs`, `...-java`)\n \n![\"image\"\nsrc=\"https://github.com/user-attachments/assets/f9e96dce-55c8-467a-93f0-a09fa219597e\"\n/]()
\n\n- OTel native with Vanilla OTel SDKs without available dashboard (empty\nstate case example: python service)\n \n\n\n\n- APM server with Vanilla OTel SDKs service without available dashboard\n(empty state)\n \n![\"image\"\nsrc=\"https://github.com/user-attachments/assets/5219cf94-5013-4874-aaea-e558cca69281\"\n/]()
\n\n- APM server with Classic APM Agent without available dashboard (Current\nmetrics fallback)\n \n![\"image\"\nsrc=\"https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75\"\n/]()
\n\n-