Skip to content

[Bug] Service Trace dashboard may query the wrong application #1568

Description

@dodjdnh

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions