← Changelog

Import Grafana dashboards and PX4 flight logs

Bring your existing Grafana dashboards and PX4 flight logs into Plexus.

Import PX4 flight logs

Drop a .ulg file on a device. Plexus reads it in your browser, lets you pick the fields, and saves the flight as a run.

Why

A PX4 log holds a whole flight, but looking at one usually means a separate desktop tool on whichever laptop has it installed. Getting it next to the rest of your data meant a conversion script.

Now you drop the file where the rest of the vehicle's data already is.

How it works

The ULog parser runs in your browser. The .ulg file itself is never uploaded. Only the fields you pick are sent, as points with their original timestamps.

Numeric fields come through as metrics named after their topic, like vehicle_attitude.q[0]. Small arrays of up to four values are split into one metric per element. Text fields are skipped.

ULog times count from boot. Plexus turns them into real times using GPS time from the log when it has one, then the log's own UTC reference, and as a last resort the file's modified time. The last one is approximate, and Plexus tells you when it had to use it.

Using it

Open a device, for example rover-02, and click Import data. Drop the .ulg file.

  • Every field is listed with its point count and its min and max. Fields with at least 100 points are ticked for you, up to 40 of them. Search to find the rest.
  • Name the run. It defaults to the file name.
  • Click Import. The points land on the device and the run covers the flight from first to last sample, so you can find it and compare it with other runs.

Limits

The file is read into memory, so the limit is 200 MB, with a warning above 50 MB. Each log is a one-time import, not a live connection. Samples that would land before 2002 are dropped.

Import Grafana dashboards

Drop in a Grafana dashboard's JSON. Plexus rebuilds the layout, points each Grafana datasource at one of your connections, and keeps running your original queries against your own database.

How it works

Plexus accepts a bare dashboard export, a grafana.com download, or the response from Grafana's dashboard API. Grafana and Plexus both use a 24-column grid, so panel positions carry over.

Queries are kept exactly as written and run against the connection you bind them to. Two cases need translation:

  • Grafana's visual InfluxQL builder saves no query text, only its parts. Plexus rebuilds those parts as Flux, which is what the InfluxDB connection runs. If any part has no faithful Flux version, the panel comes in unwired with the reason, rather than wired to a query that means something else.
  • SQL time macros such as $__timeFilter, $__timeGroup, $__timeFrom and $__interval are kept and filled in when the panel loads. Open the panel's query and the editor says what each one does, for example "Grouped into 5-minute buckets".

Using it

Go to Dashboards, open the new-dashboard menu, and under Migrate choose Import from Grafana.

  • Drop the .json export, click to browse, or paste it.
  • Click Parse. You get an import report first. Every panel is listed as mapped or skipped, with the reason for each skip. Nothing is dropped silently.
  • Point each Grafana datasource at one of your connections. Anything left over binds by metric name.
  • Create. The dashboard opens with the original layout.

Limits

An import takes up to 100 panels. Anything beyond that is listed as skipped. Thresholds and unrecognized units are noted in the report, not applied. Template variables come across when they have a stored value; the report names any that could not, and panels that use them will not resolve until you define them.