# User Node EBS Datasource Repair Plan

## Background

`User-Node-Info` is published to both the internal and external Clinic Grafana instances. The EBS Volume Performance panels use a hard-coded Grafana datasource UID, while the rest of this dashboard uses the portable `node-metrics` datasource name. The internal Grafana currently resolves that UID to `project-metrics`; the external Grafana cannot resolve it and renders the panels without data.

## Goal and Target Contract

- All EBS Volume Performance panels and their query targets use `node-metrics`.
- The dashboard contains no environment-local datasource UID for those panels.
- Internal and external Grafana use their independently provisioned `node-metrics` datasource, which routes through Clinic's node-metric proxy and preserves the external tenant and cluster access boundary.

## Affected Scope

- Source dashboard: `dedicated-dataplane/user_node_info.json`.
- Build output: `make dashboards` copies this dashboard into both internal and external shared dashboard directories.
- No Clinic API, app-delivery manifest, metric collection, query expression, or dashboard variable changes are included.

## Implementation Steps

1. Replace the hard-coded datasource object on each EBS panel and target with the `node-metrics` datasource name.
2. Parse the JSON and assert that the obsolete UID no longer occurs.
3. Run `make dashboards` and verify that both generated copies retain `node-metrics` and no obsolete UID.

## Compatibility and Risks

- `node-metrics` is already the datasource used by the dashboard variables and existing node panels.
- `project-metrics` can currently return the same data for this Dedicated cluster, but is project/control-plane routing and is not the dashboard's intended or portable contract.
- The generated `publish/` directory is build output and must not be committed unless the repository workflow explicitly requires it.

## Validation and Release Boundary

- Local: JSON parse, targeted datasource assertions, `make dashboards`, and diff review.
- Staging: after the dashboard image rollout, open this panel as a TiDB Account and confirm the datasource is `node-metrics` and it returns the same series as the internal view for the authorized cluster.
- Production: no production action is authorized by this change request. The merged `clinic-grafana` image must be deployed through its normal Grafana image workflow before the fix takes effect.
