From Grafana

Embed
Preview of the card
<a href="https://forumulate.com/p/watchtower/docs/migration-grafana"><img src="https://forumulate.com/api/public/orgs/watchtower/spaces/docs/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