dodjdnh opened a new issue, #1537:
URL: https://github.com/apache/dubbo-admin/issues/1537

   ### Background
   
   Dubbo Admin already provides application, instance, and service information, 
together with metric and trace Grafana dashboards. However, log observability 
is not currently exposed as a unified capability in the Admin console. When 
investigating an RPC failure, users need to switch between different tools and 
manually connect the trace, related logs, and metric changes.
   
   This issue proposes adding log observability and cross-signal correlation to 
Dubbo Admin.
   
   ### Current status
   
   The current codebase already contains several extension points:
   
   - `pkg/config/observability` provides Prometheus and Grafana configuration.
   - `pkg/console/handler/observability.go` builds Grafana dashboard URLs.
   - `pkg/console/router/router.go` exposes metric and trace dashboard routes 
for applications, instances, and services.
   - `ui-vue3/src/components/GrafanaPage.vue` provides the reusable Grafana 
iframe container.
   - Instance metric collection already reads Prometheus exposition data from 
the application metrics endpoint.
   
   The missing parts are log data source adapters, log dashboard routes, a 
common correlation context, and metric compatibility handling for dubbogo.
   
   ### Proposed scope
   
   1. Add configurable Loki and Elasticsearch log providers.
   2. Introduce a unified log query and result model in the Go backend.
   3. Add application, instance, and service level log dashboard configuration 
and routes.
   4. Pass a common context containing service, application, instance, method, 
trace ID, and time range between metric, trace, and log panels.
   5. Support trace-to-log lookup and opening the related metric dashboard.
   6. Add metric label/profile mapping so dubbogo and dubbojava metrics can use 
the same display model where possible.
   7. Add unit tests, provider mock tests, frontend tests, fixture data, and 
configuration documentation.
   
   ### Implementation direction
   
   The first implementation should reuse the existing Grafana integration and 
add a small backend abstraction instead of introducing a new observability 
platform.
   
   ```text
   Resource detail page
           |
           v
   CorrelationContext
           |
     +-----+------+
     |            |
   Log query   Grafana URL builder
     |       metric / trace / log
     v
   LokiAdapter or ElasticsearchAdapter
   ```
   
   The backend should translate the unified query model into LogQL or 
Elasticsearch Query DSL. The frontend should only call Dubbo Admin APIs and 
should not directly expose data source credentials or arbitrary downstream URLs.
   
   ### Acceptance criteria
   
   - Loki can be configured and queried from Dubbo Admin.
   - Elasticsearch can be configured and queried from Dubbo Admin.
   - Applications, instances, and services have clear log dashboard entry 
points.
   - A trace ID and time range can be used to find related logs.
   - The same resource and time context can be used to open the related metric 
dashboard.
   - Existing metric and trace features remain available when no log provider 
is configured.
   - dubbogo and dubbojava metric fixtures pass the normalization/compatibility 
tests.
   - The implementation includes tests and documentation that can be reproduced 
by contributors.
   
   ### Non-goals for the first version
   
   - Replacing Loki, Elasticsearch, Prometheus, or Grafana.
   - Building a separate log storage or alerting platform.
   - Implementing advanced log aggregation, anomaly detection, or long-term 
trace storage.
   
   ### Questions for discussion
   
   - Should log queries be proxied through Dubbo Admin, or should the first 
version only generate Grafana dashboard URLs?
   - Which log fields and Grafana variables are considered stable across 
current Dubbo Java and dubbogo deployments?
   - Should the first version prioritize trace ID correlation, or also include 
resource/time-window correlation when trace IDs are unavailable?
   
   ### Related project
   
   This proposal corresponds to the OSPP project “增强Dubbo Admin的可观测能力”. The 
implementation would use Go for the backend and TypeScript for the frontend, 
with RISC-V64 compatibility included in the build verification.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to