Problem
When opening the Service Trace dashboard, Dubbo Admin passes var-service but not the required var-application. Grafana then falls back to the application's saved dashboard default. If that default differs from the service's actual provider application, the trace query targets the wrong application.
In the upstream baseline, GetGrafanaDashboard in pkg/console/handler/observability.go calls service.GetServiceDashboard for ServiceDimension. That function in pkg/console/service/observability.go puts req.ServiceName into var-service without setting var-application. The Service Trace dashboard uses ${application} to select the Jaeger service and rpc.service=${service} to filter spans.
Example
For provider application shop-user and service org.apache.dubbo.samples.UserService, the original URL contains only:
var-service=org.apache.dubbo.samples.UserService
It also needs:
var-application=shop-user
Expected behavior
Dubbo Admin should determine the service's provider application reliably and pass both var-application and var-service to the Service Trace dashboard. If the application cannot be determined unambiguously, it should return an explicit error instead of guessing or relying on Grafana's default.
Reproduction and verification
Upstream baseline: bb906476e1aa923d957e6420560ca13aba17524f.
| Check |
Before fix |
After fix |
| Application Trace |
PASS |
PASS |
| Service Trace |
FAIL |
PASS |
The Service Trace PASS was verified through the real path: Dubbo Admin → dashboard variables → live Grafana query → Jaeger → a newly generated trace. It was not based solely on URL construction or page availability.
Problem
When opening the Service Trace dashboard, Dubbo Admin passes
var-servicebut not the requiredvar-application. Grafana then falls back to the application's saved dashboard default. If that default differs from the service's actual provider application, the trace query targets the wrong application.In the upstream baseline,
GetGrafanaDashboardinpkg/console/handler/observability.gocallsservice.GetServiceDashboardforServiceDimension. That function inpkg/console/service/observability.goputsreq.ServiceNameintovar-servicewithout settingvar-application. The Service Trace dashboard uses${application}to select the Jaeger service andrpc.service=${service}to filter spans.Example
For provider application
shop-userand serviceorg.apache.dubbo.samples.UserService, the original URL contains only:It also needs:
Expected behavior
Dubbo Admin should determine the service's provider application reliably and pass both
var-applicationandvar-serviceto the Service Trace dashboard. If the application cannot be determined unambiguously, it should return an explicit error instead of guessing or relying on Grafana's default.Reproduction and verification
Upstream baseline:
bb906476e1aa923d957e6420560ca13aba17524f.The Service Trace PASS was verified through the real path: Dubbo Admin → dashboard variables → live Grafana query → Jaeger → a newly generated trace. It was not based solely on URL construction or page availability.