-
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
Create portable dashboard for otel JVM metrics #182107
Conversation
🤖 GitHub commentsExpand to view the GitHub comments
Just comment with:
|
I confirm that #186167 fixes the issues that were described in this PR and the dashboard now works as expected. Thus I'll make this PR "ready for review" so we can merge 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.
Thanks for improving the otel JVM metrics.
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.
synthtrace change LGTM 👌
💚 Build Succeeded
Metrics [docs]Module Count
Async chunks
History
To update your PR or re-run it, just comment with: |
## Summary Create a dedicated "portable dashboard" for OTel .NET. This uses metrics available in the [contrib](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) runtime metrics library. These metrics are opt-in and not enabled by default in the vanilla SDK. Our Elastic distro brings in the package and enables them by default. Therefore, the dashboard will only work if a) the customer uses our distro or b) they enable the metrics themselves when using the vanilla SDK. Further, work is ongoing to define [semantic conventions for .NET runtime metrics](open-telemetry/semantic-conventions#1035). Once complete, the metrics will be implemented directly in the .NET runtime BCL and be available with no additional dependencies. The goal is to achieve that by .NET 9, which is not guaranteed. At that point, the metric names will change to align with the semantic conventions. This is not ideal, but it is our only option if we want to provide some form of runtime dashboard with the current metrics and OTel distro. As with #182107, this dashboard uses a table for some of the data and this table doesn't seem to reflect the correct date filtering. Until there is a solution, this PR will remain in the draft, or we can consider dropping the table for the initial dashboard. ![image](https://github.com/elastic/kibana/assets/3669103/0be46495-e09f-4f4e-81e1-5f69361d5781)
## Summary Create a dedicated "portable dashboard" for OTel .NET. This uses metrics available in the [contrib](https://github.com/open-telemetry/opentelemetry-dotnet-contrib) runtime metrics library. These metrics are opt-in and not enabled by default in the vanilla SDK. Our Elastic distro brings in the package and enables them by default. Therefore, the dashboard will only work if a) the customer uses our distro or b) they enable the metrics themselves when using the vanilla SDK. Further, work is ongoing to define [semantic conventions for .NET runtime metrics](open-telemetry/semantic-conventions#1035). Once complete, the metrics will be implemented directly in the .NET runtime BCL and be available with no additional dependencies. The goal is to achieve that by .NET 9, which is not guaranteed. At that point, the metric names will change to align with the semantic conventions. This is not ideal, but it is our only option if we want to provide some form of runtime dashboard with the current metrics and OTel distro. As with elastic#182107, this dashboard uses a table for some of the data and this table doesn't seem to reflect the correct date filtering. Until there is a solution, this PR will remain in the draft, or we can consider dropping the table for the initial dashboard. ![image](https://github.com/elastic/kibana/assets/3669103/0be46495-e09f-4f4e-81e1-5f69361d5781) (cherry picked from commit 0600309)
… (#198795) # Backport This will backport the following commits from `main` to `8.x`: - [Create portable dashboard for OTel .NET runtime metrics (#184842)](#184842) <!--- Backport version: 9.4.3 --> ### Questions ? Please refer to the [Backport tool documentation](https://github.com/sqren/backport) <!--BACKPORT [{"author":{"name":"Steve Gordon","email":"sgordon@hotmail.co.uk"},"sourceCommit":{"committedDate":"2024-11-04T14:16:02Z","message":"Create portable dashboard for OTel .NET runtime metrics (#184842)\n\n## Summary\r\n\r\nCreate a dedicated \"portable dashboard\" for OTel .NET.\r\n\r\nThis uses metrics available in the\r\n[contrib](https://github.com/open-telemetry/opentelemetry-dotnet-contrib)\r\nruntime metrics library. These metrics are opt-in and not enabled by\r\ndefault in the vanilla SDK. Our Elastic distro brings in the package and\r\nenables them by default. Therefore, the dashboard will only work if a)\r\nthe customer uses our distro or b) they enable the metrics themselves\r\nwhen using the vanilla SDK.\r\n\r\nFurther, work is ongoing to define [semantic conventions for .NET\r\nruntime\r\nmetrics](https://github.com/open-telemetry/semantic-conventions/pull/1035).\r\nOnce complete, the metrics will be implemented directly in the .NET\r\nruntime BCL and be available with no additional dependencies. The goal\r\nis to achieve that by .NET 9, which is not guaranteed. At that point,\r\nthe metric names will change to align with the semantic conventions.\r\nThis is not ideal, but it is our only option if we want to provide some\r\nform of runtime dashboard with the current metrics and OTel distro.\r\n\r\nAs with #182107, this dashboard uses a table for some of the data and\r\nthis table doesn't seem to reflect the correct date filtering. Until\r\nthere is a solution, this PR will remain in the draft, or we can\r\nconsider dropping the table for the initial dashboard.\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/3669103/0be46495-e09f-4f4e-81e1-5f69361d5781)","sha":"0600309378bf124c193c2bb041f731ad9ee5090d","branchLabelMapping":{"^v9.0.0$":"main","^v8.17.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","v9.0.0","backport:prev-minor","ci:project-deploy-observability","Team:obs-ux-infra_services","apm:review"],"title":"Create portable dashboard for OTel .NET runtime metrics","number":184842,"url":"https://github.com/elastic/kibana/pull/184842","mergeCommit":{"message":"Create portable dashboard for OTel .NET runtime metrics (#184842)\n\n## Summary\r\n\r\nCreate a dedicated \"portable dashboard\" for OTel .NET.\r\n\r\nThis uses metrics available in the\r\n[contrib](https://github.com/open-telemetry/opentelemetry-dotnet-contrib)\r\nruntime metrics library. These metrics are opt-in and not enabled by\r\ndefault in the vanilla SDK. Our Elastic distro brings in the package and\r\nenables them by default. Therefore, the dashboard will only work if a)\r\nthe customer uses our distro or b) they enable the metrics themselves\r\nwhen using the vanilla SDK.\r\n\r\nFurther, work is ongoing to define [semantic conventions for .NET\r\nruntime\r\nmetrics](https://github.com/open-telemetry/semantic-conventions/pull/1035).\r\nOnce complete, the metrics will be implemented directly in the .NET\r\nruntime BCL and be available with no additional dependencies. The goal\r\nis to achieve that by .NET 9, which is not guaranteed. At that point,\r\nthe metric names will change to align with the semantic conventions.\r\nThis is not ideal, but it is our only option if we want to provide some\r\nform of runtime dashboard with the current metrics and OTel distro.\r\n\r\nAs with #182107, this dashboard uses a table for some of the data and\r\nthis table doesn't seem to reflect the correct date filtering. Until\r\nthere is a solution, this PR will remain in the draft, or we can\r\nconsider dropping the table for the initial dashboard.\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/3669103/0be46495-e09f-4f4e-81e1-5f69361d5781)","sha":"0600309378bf124c193c2bb041f731ad9ee5090d"}},"sourceBranch":"main","suggestedTargetBranches":[],"targetPullRequestStates":[{"branch":"main","label":"v9.0.0","branchLabelMappingKey":"^v9.0.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/184842","number":184842,"mergeCommit":{"message":"Create portable dashboard for OTel .NET runtime metrics (#184842)\n\n## Summary\r\n\r\nCreate a dedicated \"portable dashboard\" for OTel .NET.\r\n\r\nThis uses metrics available in the\r\n[contrib](https://github.com/open-telemetry/opentelemetry-dotnet-contrib)\r\nruntime metrics library. These metrics are opt-in and not enabled by\r\ndefault in the vanilla SDK. Our Elastic distro brings in the package and\r\nenables them by default. Therefore, the dashboard will only work if a)\r\nthe customer uses our distro or b) they enable the metrics themselves\r\nwhen using the vanilla SDK.\r\n\r\nFurther, work is ongoing to define [semantic conventions for .NET\r\nruntime\r\nmetrics](https://github.com/open-telemetry/semantic-conventions/pull/1035).\r\nOnce complete, the metrics will be implemented directly in the .NET\r\nruntime BCL and be available with no additional dependencies. The goal\r\nis to achieve that by .NET 9, which is not guaranteed. At that point,\r\nthe metric names will change to align with the semantic conventions.\r\nThis is not ideal, but it is our only option if we want to provide some\r\nform of runtime dashboard with the current metrics and OTel distro.\r\n\r\nAs with #182107, this dashboard uses a table for some of the data and\r\nthis table doesn't seem to reflect the correct date filtering. Until\r\nthere is a solution, this PR will remain in the draft, or we can\r\nconsider dropping the table for the initial dashboard.\r\n\r\n\r\n![image](https://github.com/elastic/kibana/assets/3669103/0be46495-e09f-4f4e-81e1-5f69361d5781)","sha":"0600309378bf124c193c2bb041f731ad9ee5090d"}}]}] BACKPORT--> Co-authored-by: Steve Gordon <sgordon@hotmail.co.uk>
Create a dedicated "portable dashboard" for OTel Java.
-Dotel.instrumentation.runtime.telemetry.emit-experimental-telemetry=true
The same dashboard is being used for the following values of
agent.name
:opentelemetry/java
for the 1.x versions of the otel agentopentelemetry/java/opentelemetry-java-instrumentation
for the upstream agentopentelemetry/java/elastic
for the Elastic java agent distributionAs a consequence, the older 1.x opentelemetry agents that are not using the stable jvm metrics conventions won't be supported (their metrics were reported in the
process.runtime.jvm.*
namespace).Fixes #174445
Checklist
For (1) and (2), they are properly filtered and displayed when modifying the dashboard and viewing it in lens, somehow the behavior is different when the dashboards are imported in the APM UI.
Screenshots
Dashboard display/edit
Dashboard integrated in APM UI