I'm going to drop a few things to get the reader going on telemetry dashboard in SatNOGS, and expect that the reader also reference the Grafana documentation for more details on building dashboards.
This doc also assumes you have an account to edit dashboards. You can generate an account by clicking the Sign In link.
Today there is a top level folder hierarchy designed as such:
- Telemetry (where telemetry dashboards should be stored, publicly accessible)
- General (for stats about our data collection itself, meta-dashboards, publicly accessible)
- Scratchpad (a playground for making grafana dashboards and testing functionality, not publicly accessible)
Creating a dashboard
Clicking the + icon will allow you to create a new dashboard. When you do this a new panel is started for you. This panel can be resized at the lower-right corner, and moved around by dragging once more panels are added.
Now - before you get started please note that you have to save your changes!! They do not save automatically!
Click "Graph" to make this a graph panel. Click the graph title and then Edit to edit this specific graph.
A few things you will want to edit:
Give it a meaningful title, of course. Description is not required, but offers a popup of more details to the user if you want to add more details.
Select the metric by clicking "select measurement". What you will see here are the names of all measurements available which are the NORAD ID of the satellite in the database. You can type part of the NORAD ID to filter.
In most cases you will want to leave the WHERE clause blank, but from here you can also filter data based on the tag that the data has (such as filtering on a specific observer).
Next, select the telemetry field you are looking to graph by clicking on field("value"). If there is data in the database that has been properly decoded you should see the relevant fields for that satellite displayed here:
See any data in your graph yet? If not, change your timeframe in the upper-right corner to something like "last 30 days" as the default of "last 6 hours" may not have data decoded (especially true for our dev instance, where we have no steady stream of recent data)
SELECT: mean() (default), distinct(), and last() are likely to be the most useful for us. Keep in mind that there is the possibility for multiple data points from multiple stations and observations, some overlapping. InfluxDB handles this for us. The timeframe selected is also taken into account in these measurements. This line is where you may need to add math to make the number human-readable. For instance, for CubeBel-1, to calculate voltage we have to take (Measured value) / 4096×2.5×3.75, which looks like this:
GROUP BY: you may wish to change the fill value here, there are a number of options. Be careful as this may be misleading to users if we are dealing with very sparse data sets, as this option will fill in any gaps, yet "none" or "linear" may be options to use to make the graphs look better.
You can also add multiple queries to the same graph with the Add Query button at the bottom
You may want to change the Unit here, as "Short" may be undesired for certain figures, and "None" would be better.
If you are doing a line graph and do not want the shading below the line, change the "Fill" value here to 0.
In the gear icon for a graph are the graph settings. Some things to change here:
- Folder (see the hierarchy above)
- "Now delay now-" - I suggest 30d (the last 30d) as without it the default is 6 hours
"Save As" will allow you to make a copy of a graph and hack on it.