elastic / elastic/observability-migration-platform

General translator drops source panel targets without any warning

Open
#352 1 comment 0 reactions 1 assignee Claimed by @giorgi-imerlishvili-elastic View on GitHub
asset:dashboards bug program:grafana-engine quality source:grafana workstream:translator
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.