From Grafana
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.