From Grafana

Embed
Preview of the card
<a href="https://watchtowerops.net/docs/migration-grafana"><img src="https://watchtowerops.net/docs/_api/public/orgs/aa5959cb-1a0b-4a9a-bc9a-913e7ac31cd9/spaces/b7aac181-9916-4805-b253-becc5fd2ca62/pages/91480717-3d46-4452-a7b7-55f29b3ec396/social-card.svg?v=3e7ae33eec8b" alt="From Grafana" width="600" height="315"></a>
wtctl import grafana --dashboards ./dashboards            # a directory of *.json, one file, or an https URL
wtctl import grafana --alert-rules alert-rules.json [--apply]

Dashboards

Panels timeseries, stat, table, logs and bargauge (as a table) are mapped, including panels inside rows. Prometheus targets pass through as PromQL. Loki targets are translated with the logql dialect. Only the first target of a panel is imported (a warning names the panel). The 24-column grid is kept.

Alert rules

Use the alerting provisioning export ({"groups": [...]}). A rule is imported when its query is a Prometheus expression and its condition is a gt or lt threshold. for, the group interval, noDataState and labels carry over. Loki-based rules and other evaluators are listed as unsupported.

LogQL

Supported: stream selectors (=, !=, =~, !~), line filters (|=, !=, |~, !~), | json, | logfmt, label filters after a parser, count_over_time, rate, sum [by (...)]. Everything else (line_format, unwrap, topk, ...) is returned under unsupported with partial: true.

Updated