Skip to content
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

[ObsUX] [APM] [OTel] Create empty state for metrics tab if a dashboard is missing #211774

Open
jennypavlova opened this issue Feb 19, 2025 · 1 comment
Assignees
Labels
apm:opentelemetry APM UI - OTEL Work enhancement New value added to drive a business result needs-refinement A reason and acceptance criteria need to be defined for this issue OpenTelemetry Team:obs-ux-infra_services Observability Infrastructure & Services User Experience Team

Comments

@jennypavlova
Copy link
Member

Similar to what we have in the services from logs added here

Image

we want to show a message to the user when a dashboard for the service runtime metrics doesn't exist: it could happen when the language they use is not supported or the open telemetry data they use doesn't match any of the dashboards we already have

@AlexanderWert

The message content:

Button(s) links:

AC:

  • The fallback screen should be available if no dashboards are available
  • The fallback screen can use a similar design to the existing one depending on the content (with the message and metrics in the background ❓ Or maybe just the message)
@jennypavlova jennypavlova added the Team:obs-ux-infra_services Observability Infrastructure & Services User Experience Team label Feb 19, 2025
@jennypavlova jennypavlova self-assigned this Feb 19, 2025
@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-ux-infra_services-team (Team:obs-ux-infra_services)

@jennypavlova jennypavlova changed the title [ObsUX] [APM] Create empty state for metrics tab if a dashboard is missiong [ObsUX] [APM] [OTel] Create empty state for metrics tab if a dashboard is missiong Feb 19, 2025
@rmyz rmyz changed the title [ObsUX] [APM] [OTel] Create empty state for metrics tab if a dashboard is missiong [ObsUX] [APM] [OTel] Create empty state for metrics tab if a dashboard is missing Feb 21, 2025
@smith smith added the enhancement New value added to drive a business result label Feb 21, 2025
@jennypavlova jennypavlova added needs-refinement A reason and acceptance criteria need to be defined for this issue OpenTelemetry apm:opentelemetry APM UI - OTEL Work labels Feb 26, 2025
jennypavlova added a commit that referenced this issue Mar 6, 2025
…ngest path (#211822)

Closes #211783
Part of #195857

## Summary

This PR expands the logic to get the dashboard files based on the agent.
We have many different ways to ingest data so we want to add more
metrics dashboards to the APM metrics tab. The different ingest paths we
have:
Classic APM Agent   --> APM Server       --> ES
Vanilla OTel SDKs     --> APM Server       --> ES
EDOT OTel SDKs      --> APM Server       --> ES
Classic APM Agent   --> EDOT Collector --> ES
Vanilla OTel SDKs.    --> EDOT Collector --> ES
EDOT OTel SDKs      --> EDOT Collector --> ES
We agreed on having a dashboard filename pattern to make showing the
correct dashboard easier described
[here](#195857 (comment))

First, we determine if the ingest path is through APM Server or EDOT
Collector by checking the `telemtry.sdk` fields.

## TODOs / Reviewer notes
- [ ] Currently, we have a fallback to metrics charts which is valid
only if we have APM agent so this PR adds an empty state message:
"Runtime metrics are not available for this Agent / SDK type." in case
there is no dashboard for the service language. To be improved in
#211774 and will be updated in
this PR when ready - I will still open it for review as the other logic
can be reviewed
- The dashboards are to be updated (by the agent team so not part of the
changes here)

## Testing: 
- Using e2e PoC 
- The available dashboard cases can be found in
[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)
- Cases to be checked:
- OTel native with Vanilla OTel SDKs with available dashboard (example
case file: `otel_native-otel_other-nodejs`, `...-java`, `...-dotnet`)
   
<img width="1903" alt="image"
src="https://github.com/user-attachments/assets/44d37b05-a8e7-4f14-a1de-2c631f1843bb"
/>

- APM server with Vanilla OTel SDKs service with available dashboard
(example case file: `classic_apm-otel_other-nodejs`, `...-java`,
`...-dotnet`)
   

![image](https://github.com/user-attachments/assets/caef88ea-2603-41ad-b815-f4c0c3647809)

- APM server with Classic APM Agent (example case file:
`classic_apm-apm-nodejs`, `...-java`)
   
<img width="962" alt="image"
src="https://github.com/user-attachments/assets/f9e96dce-55c8-467a-93f0-a09fa219597e"
/>

- OTel native with Vanilla OTel SDKs without available dashboard (empty
state case example: python service)
 

![image](https://github.com/user-attachments/assets/4cb6cca3-240e-422b-9288-701ef080f9cc)

- APM server with Vanilla OTel SDKs service without available dashboard
(empty state)
   
<img width="1910" alt="image"
src="https://github.com/user-attachments/assets/5219cf94-5013-4874-aaea-e558cca69281"
/>

- APM server with Classic APM Agent without available dashboard (Current
metrics fallback)
   
<img width="1914" alt="image"
src="https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75"
/>

- ⚠️ OTel native Dashboards are still not available (at the time of
adding the description)

---------

Co-authored-by: Sergi Romeu <sergi.romeu@elastic.co>
Co-authored-by: Cauê Marcondes <55978943+cauemarcondes@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
kibanamachine pushed a commit to kibanamachine/kibana that referenced this issue Mar 6, 2025
…ngest path (elastic#211822)

Closes elastic#211783
Part of elastic#195857

## Summary

This PR expands the logic to get the dashboard files based on the agent.
We have many different ways to ingest data so we want to add more
metrics dashboards to the APM metrics tab. The different ingest paths we
have:
Classic APM Agent   --> APM Server       --> ES
Vanilla OTel SDKs     --> APM Server       --> ES
EDOT OTel SDKs      --> APM Server       --> ES
Classic APM Agent   --> EDOT Collector --> ES
Vanilla OTel SDKs.    --> EDOT Collector --> ES
EDOT OTel SDKs      --> EDOT Collector --> ES
We agreed on having a dashboard filename pattern to make showing the
correct dashboard easier described
[here](elastic#195857 (comment))

First, we determine if the ingest path is through APM Server or EDOT
Collector by checking the `telemtry.sdk` fields.

## TODOs / Reviewer notes
- [ ] Currently, we have a fallback to metrics charts which is valid
only if we have APM agent so this PR adds an empty state message:
"Runtime metrics are not available for this Agent / SDK type." in case
there is no dashboard for the service language. To be improved in
elastic#211774 and will be updated in
this PR when ready - I will still open it for review as the other logic
can be reviewed
- The dashboards are to be updated (by the agent team so not part of the
changes here)

## Testing:
- Using e2e PoC
- The available dashboard cases can be found in
[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)
- Cases to be checked:
- OTel native with Vanilla OTel SDKs with available dashboard (example
case file: `otel_native-otel_other-nodejs`, `...-java`, `...-dotnet`)

<img width="1903" alt="image"
src="https://github.com/user-attachments/assets/44d37b05-a8e7-4f14-a1de-2c631f1843bb"
/>

- APM server with Vanilla OTel SDKs service with available dashboard
(example case file: `classic_apm-otel_other-nodejs`, `...-java`,
`...-dotnet`)

![image](https://github.com/user-attachments/assets/caef88ea-2603-41ad-b815-f4c0c3647809)

- APM server with Classic APM Agent (example case file:
`classic_apm-apm-nodejs`, `...-java`)

<img width="962" alt="image"
src="https://github.com/user-attachments/assets/f9e96dce-55c8-467a-93f0-a09fa219597e"
/>

- OTel native with Vanilla OTel SDKs without available dashboard (empty
state case example: python service)

![image](https://github.com/user-attachments/assets/4cb6cca3-240e-422b-9288-701ef080f9cc)

- APM server with Vanilla OTel SDKs service without available dashboard
(empty state)

<img width="1910" alt="image"
src="https://github.com/user-attachments/assets/5219cf94-5013-4874-aaea-e558cca69281"
/>

- APM server with Classic APM Agent without available dashboard (Current
metrics fallback)

<img width="1914" alt="image"
src="https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75"
/>

- ⚠️ OTel native Dashboards are still not available (at the time of
adding the description)

---------

Co-authored-by: Sergi Romeu <sergi.romeu@elastic.co>
Co-authored-by: Cauê Marcondes <55978943+cauemarcondes@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit f195570)
kibanamachine pushed a commit to kibanamachine/kibana that referenced this issue Mar 6, 2025
…ngest path (elastic#211822)

Closes elastic#211783
Part of elastic#195857

## Summary

This PR expands the logic to get the dashboard files based on the agent.
We have many different ways to ingest data so we want to add more
metrics dashboards to the APM metrics tab. The different ingest paths we
have:
Classic APM Agent   --> APM Server       --> ES
Vanilla OTel SDKs     --> APM Server       --> ES
EDOT OTel SDKs      --> APM Server       --> ES
Classic APM Agent   --> EDOT Collector --> ES
Vanilla OTel SDKs.    --> EDOT Collector --> ES
EDOT OTel SDKs      --> EDOT Collector --> ES
We agreed on having a dashboard filename pattern to make showing the
correct dashboard easier described
[here](elastic#195857 (comment))

First, we determine if the ingest path is through APM Server or EDOT
Collector by checking the `telemtry.sdk` fields.

## TODOs / Reviewer notes
- [ ] Currently, we have a fallback to metrics charts which is valid
only if we have APM agent so this PR adds an empty state message:
"Runtime metrics are not available for this Agent / SDK type." in case
there is no dashboard for the service language. To be improved in
elastic#211774 and will be updated in
this PR when ready - I will still open it for review as the other logic
can be reviewed
- The dashboards are to be updated (by the agent team so not part of the
changes here)

## Testing:
- Using e2e PoC
- The available dashboard cases can be found in
[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)
- Cases to be checked:
- OTel native with Vanilla OTel SDKs with available dashboard (example
case file: `otel_native-otel_other-nodejs`, `...-java`, `...-dotnet`)

<img width="1903" alt="image"
src="https://github.com/user-attachments/assets/44d37b05-a8e7-4f14-a1de-2c631f1843bb"
/>

- APM server with Vanilla OTel SDKs service with available dashboard
(example case file: `classic_apm-otel_other-nodejs`, `...-java`,
`...-dotnet`)

![image](https://github.com/user-attachments/assets/caef88ea-2603-41ad-b815-f4c0c3647809)

- APM server with Classic APM Agent (example case file:
`classic_apm-apm-nodejs`, `...-java`)

<img width="962" alt="image"
src="https://github.com/user-attachments/assets/f9e96dce-55c8-467a-93f0-a09fa219597e"
/>

- OTel native with Vanilla OTel SDKs without available dashboard (empty
state case example: python service)

![image](https://github.com/user-attachments/assets/4cb6cca3-240e-422b-9288-701ef080f9cc)

- APM server with Vanilla OTel SDKs service without available dashboard
(empty state)

<img width="1910" alt="image"
src="https://github.com/user-attachments/assets/5219cf94-5013-4874-aaea-e558cca69281"
/>

- APM server with Classic APM Agent without available dashboard (Current
metrics fallback)

<img width="1914" alt="image"
src="https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75"
/>

- ⚠️ OTel native Dashboards are still not available (at the time of
adding the description)

---------

Co-authored-by: Sergi Romeu <sergi.romeu@elastic.co>
Co-authored-by: Cauê Marcondes <55978943+cauemarcondes@users.noreply.github.com>
Co-authored-by: kibanamachine <42973632+kibanamachine@users.noreply.github.com>
(cherry picked from commit f195570)
kibanamachine added a commit that referenced this issue Mar 6, 2025
…rent ingest path (#211822) (#213373)

# Backport

This will backport the following commits from `main` to `8.x`:
- [[ObsUX] [APM] [OTel] Runtime metrics show dashboards with different
ingest path (#211822)](#211822)

<!--- Backport version: 9.6.6 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT
[{"author":{"name":"jennypavlova","email":"dzheni.pavlova@elastic.co"},"sourceCommit":{"committedDate":"2025-03-06T12:52:44Z","message":"[ObsUX]
[APM] [OTel] Runtime metrics show dashboards with different ingest path
(#211822)\n\nCloses #211783\nPart of
https://github.com/elastic/kibana/issues/195857\n\n## Summary\n\nThis PR
expands the logic to get the dashboard files based on the agent.\nWe
have many different ways to ingest data so we want to add more\nmetrics
dashboards to the APM metrics tab. The different ingest paths
we\nhave:\nClassic APM Agent --> 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/elastic/kibana/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<img
width=\"1903\"
alt=\"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![image](https://github.com/user-attachments/assets/caef88ea-2603-41ad-b815-f4c0c3647809)\n\n-
APM server with Classic APM Agent (example case
file:\n`classic_apm-apm-nodejs`, `...-java`)\n \n<img width=\"962\"
alt=\"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![image](https://github.com/user-attachments/assets/4cb6cca3-240e-422b-9288-701ef080f9cc)\n\n-
APM server with Vanilla OTel SDKs service without available
dashboard\n(empty state)\n \n<img width=\"1910\"
alt=\"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<img width=\"1914\"
alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75\"\n/>\n\n-
⚠️ OTel native Dashboards are still not available (at the time
of\nadding the description)\n\n---------\n\nCo-authored-by: Sergi Romeu
<sergi.romeu@elastic.co>\nCo-authored-by: Cauê Marcondes
<55978943+cauemarcondes@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"f19557004904b490fcb69d18c1ea5f1ef9634ee0","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement","backport:prev-minor","backport:prev-major","Team:obs-ux-infra_services","v9.1.0"],"title":"[ObsUX]
[APM] [OTel] Runtime metrics show dashboards with different ingest
path","number":211822,"url":"https://github.com/elastic/kibana/pull/211822","mergeCommit":{"message":"[ObsUX]
[APM] [OTel] Runtime metrics show dashboards with different ingest path
(#211822)\n\nCloses #211783\nPart of
https://github.com/elastic/kibana/issues/195857\n\n## Summary\n\nThis PR
expands the logic to get the dashboard files based on the agent.\nWe
have many different ways to ingest data so we want to add more\nmetrics
dashboards to the APM metrics tab. The different ingest paths
we\nhave:\nClassic APM Agent --> 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/elastic/kibana/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<img
width=\"1903\"
alt=\"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![image](https://github.com/user-attachments/assets/caef88ea-2603-41ad-b815-f4c0c3647809)\n\n-
APM server with Classic APM Agent (example case
file:\n`classic_apm-apm-nodejs`, `...-java`)\n \n<img width=\"962\"
alt=\"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![image](https://github.com/user-attachments/assets/4cb6cca3-240e-422b-9288-701ef080f9cc)\n\n-
APM server with Vanilla OTel SDKs service without available
dashboard\n(empty state)\n \n<img width=\"1910\"
alt=\"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<img width=\"1914\"
alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75\"\n/>\n\n-
⚠️ OTel native Dashboards are still not available (at the time
of\nadding the description)\n\n---------\n\nCo-authored-by: Sergi Romeu
<sergi.romeu@elastic.co>\nCo-authored-by: Cauê Marcondes
<55978943+cauemarcondes@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"f19557004904b490fcb69d18c1ea5f1ef9634ee0"}},"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/211822","number":211822,"mergeCommit":{"message":"[ObsUX]
[APM] [OTel] Runtime metrics show dashboards with different ingest path
(#211822)\n\nCloses #211783\nPart of
https://github.com/elastic/kibana/issues/195857\n\n## Summary\n\nThis PR
expands the logic to get the dashboard files based on the agent.\nWe
have many different ways to ingest data so we want to add more\nmetrics
dashboards to the APM metrics tab. The different ingest paths
we\nhave:\nClassic APM Agent --> 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/elastic/kibana/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<img
width=\"1903\"
alt=\"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![image](https://github.com/user-attachments/assets/caef88ea-2603-41ad-b815-f4c0c3647809)\n\n-
APM server with Classic APM Agent (example case
file:\n`classic_apm-apm-nodejs`, `...-java`)\n \n<img width=\"962\"
alt=\"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![image](https://github.com/user-attachments/assets/4cb6cca3-240e-422b-9288-701ef080f9cc)\n\n-
APM server with Vanilla OTel SDKs service without available
dashboard\n(empty state)\n \n<img width=\"1910\"
alt=\"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<img width=\"1914\"
alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75\"\n/>\n\n-
⚠️ OTel native Dashboards are still not available (at the time
of\nadding the description)\n\n---------\n\nCo-authored-by: Sergi Romeu
<sergi.romeu@elastic.co>\nCo-authored-by: Cauê Marcondes
<55978943+cauemarcondes@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"f19557004904b490fcb69d18c1ea5f1ef9634ee0"}}]}]
BACKPORT-->

Co-authored-by: jennypavlova <dzheni.pavlova@elastic.co>
kibanamachine added a commit that referenced this issue Mar 6, 2025
…rent ingest path (#211822) (#213374)

# Backport

This will backport the following commits from `main` to `9.0`:
- [[ObsUX] [APM] [OTel] Runtime metrics show dashboards with different
ingest path (#211822)](#211822)

<!--- Backport version: 9.6.6 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT
[{"author":{"name":"jennypavlova","email":"dzheni.pavlova@elastic.co"},"sourceCommit":{"committedDate":"2025-03-06T12:52:44Z","message":"[ObsUX]
[APM] [OTel] Runtime metrics show dashboards with different ingest path
(#211822)\n\nCloses #211783\nPart of
https://github.com/elastic/kibana/issues/195857\n\n## Summary\n\nThis PR
expands the logic to get the dashboard files based on the agent.\nWe
have many different ways to ingest data so we want to add more\nmetrics
dashboards to the APM metrics tab. The different ingest paths
we\nhave:\nClassic APM Agent --> 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/elastic/kibana/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<img
width=\"1903\"
alt=\"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![image](https://github.com/user-attachments/assets/caef88ea-2603-41ad-b815-f4c0c3647809)\n\n-
APM server with Classic APM Agent (example case
file:\n`classic_apm-apm-nodejs`, `...-java`)\n \n<img width=\"962\"
alt=\"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![image](https://github.com/user-attachments/assets/4cb6cca3-240e-422b-9288-701ef080f9cc)\n\n-
APM server with Vanilla OTel SDKs service without available
dashboard\n(empty state)\n \n<img width=\"1910\"
alt=\"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<img width=\"1914\"
alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75\"\n/>\n\n-
⚠️ OTel native Dashboards are still not available (at the time
of\nadding the description)\n\n---------\n\nCo-authored-by: Sergi Romeu
<sergi.romeu@elastic.co>\nCo-authored-by: Cauê Marcondes
<55978943+cauemarcondes@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"f19557004904b490fcb69d18c1ea5f1ef9634ee0","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:enhancement","backport:prev-minor","backport:prev-major","Team:obs-ux-infra_services","v9.1.0"],"title":"[ObsUX]
[APM] [OTel] Runtime metrics show dashboards with different ingest
path","number":211822,"url":"https://github.com/elastic/kibana/pull/211822","mergeCommit":{"message":"[ObsUX]
[APM] [OTel] Runtime metrics show dashboards with different ingest path
(#211822)\n\nCloses #211783\nPart of
https://github.com/elastic/kibana/issues/195857\n\n## Summary\n\nThis PR
expands the logic to get the dashboard files based on the agent.\nWe
have many different ways to ingest data so we want to add more\nmetrics
dashboards to the APM metrics tab. The different ingest paths
we\nhave:\nClassic APM Agent --> 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/elastic/kibana/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<img
width=\"1903\"
alt=\"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![image](https://github.com/user-attachments/assets/caef88ea-2603-41ad-b815-f4c0c3647809)\n\n-
APM server with Classic APM Agent (example case
file:\n`classic_apm-apm-nodejs`, `...-java`)\n \n<img width=\"962\"
alt=\"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![image](https://github.com/user-attachments/assets/4cb6cca3-240e-422b-9288-701ef080f9cc)\n\n-
APM server with Vanilla OTel SDKs service without available
dashboard\n(empty state)\n \n<img width=\"1910\"
alt=\"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<img width=\"1914\"
alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75\"\n/>\n\n-
⚠️ OTel native Dashboards are still not available (at the time
of\nadding the description)\n\n---------\n\nCo-authored-by: Sergi Romeu
<sergi.romeu@elastic.co>\nCo-authored-by: Cauê Marcondes
<55978943+cauemarcondes@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"f19557004904b490fcb69d18c1ea5f1ef9634ee0"}},"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/211822","number":211822,"mergeCommit":{"message":"[ObsUX]
[APM] [OTel] Runtime metrics show dashboards with different ingest path
(#211822)\n\nCloses #211783\nPart of
https://github.com/elastic/kibana/issues/195857\n\n## Summary\n\nThis PR
expands the logic to get the dashboard files based on the agent.\nWe
have many different ways to ingest data so we want to add more\nmetrics
dashboards to the APM metrics tab. The different ingest paths
we\nhave:\nClassic APM Agent --> 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/elastic/kibana/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<img
width=\"1903\"
alt=\"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![image](https://github.com/user-attachments/assets/caef88ea-2603-41ad-b815-f4c0c3647809)\n\n-
APM server with Classic APM Agent (example case
file:\n`classic_apm-apm-nodejs`, `...-java`)\n \n<img width=\"962\"
alt=\"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![image](https://github.com/user-attachments/assets/4cb6cca3-240e-422b-9288-701ef080f9cc)\n\n-
APM server with Vanilla OTel SDKs service without available
dashboard\n(empty state)\n \n<img width=\"1910\"
alt=\"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<img width=\"1914\"
alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/66342f49-876c-4ad5-a4d1-1414c3abac75\"\n/>\n\n-
⚠️ OTel native Dashboards are still not available (at the time
of\nadding the description)\n\n---------\n\nCo-authored-by: Sergi Romeu
<sergi.romeu@elastic.co>\nCo-authored-by: Cauê Marcondes
<55978943+cauemarcondes@users.noreply.github.com>\nCo-authored-by:
kibanamachine
<42973632+kibanamachine@users.noreply.github.com>","sha":"f19557004904b490fcb69d18c1ea5f1ef9634ee0"}}]}]
BACKPORT-->

Co-authored-by: jennypavlova <dzheni.pavlova@elastic.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
apm:opentelemetry APM UI - OTEL Work enhancement New value added to drive a business result needs-refinement A reason and acceptance criteria need to be defined for this issue OpenTelemetry Team:obs-ux-infra_services Observability Infrastructure & Services User Experience Team
Projects
None yet
Development

No branches or pull requests

3 participants