elastic / elastic/observability-migration-platform
General translator drops source panel targets without any warning
- Dominant language
- Python
- Stars
- 6
- Forks
- 8
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 23
Description
**Severity: medium — same class as the curated-pack series drops reported separately, but on the non-pack code path.**
### What happens
Panels **not** covered by the curated pack also lose source targets. These report
`status=migrated, confidence=0.85` with **no reasons attached**, so again the operator is not told.
| Panel | Source targets | Dropped (all present in the target index) |
|---|---|---|
| `Filesystem Space Available` | 3 | `node_filesystem_free_bytes`, `node_filesystem_size_bytes` |
| `Time Synchronized Status` | 4 | `node_timex_tick_seconds`, `node_timex_tai_offset_seconds` |
| `Network Operational Status` | 2 | `node_network_up` |
`node_filesystem_size_bytes` is demonstrably queryable — four other panels on the same dashboard
(`Root FS Used`, `RootFS Total`, `Disk Space Used Basic`, `Filesystem Used`) use it successfully.
So these are available-but-dropped, not data gaps.
`Network Operational Status` also drops the Prometheus-synthetic `up` metric, which is reasonable
to drop but should still be reported.
### Suggested fix
When a panel's translated query references fewer source metrics than the panel's targets, attach a
warning naming each dropped metric and lower confidence, matching the existing
"Target telemetry missing: …" behaviour.
## How this was found
Manual end-to-end test of #346: Grafana community dashboard 1860 migrated with
`obs-migrate` and uploaded to a local Kibana, then compared panel-by-panel
against the source Grafana rendering the same node_exporter metrics.
Environment
- Branch: `pr-346` (`feat!: curated dashboard packs, PromQL fidelity, and native-only dashboard artifacts`)
- Source: Grafana OSS, community dashboard **1860 "Node Exporter Full"** imported live (`gnetId: 1860`, JSON `version: 101`)
- Curated pack: `grafana_1860_node_exporter_full` (auto-activated by gnetId)
- Target: Elasticsearch + Kibana 9.5.0-SNAPSHOT (elastic-package stack), index `metrics-node.prometheus-default`, `--field-profile prometheus_native`
- Ingest: node_exporter scraped every **15 s** into both Prometheus (for Grafana) and Elasticsearch (for Kibana), same series in both
Contributor guide
Assessment
This issue has not been assessed yet.