THIS IS A WORK IN PROGRESS AND SUBJECT TO CHANGE
We are using InfluxDB and Grafana for our telemetry dashboards. InfluxDB is a time-series database designed to be efficient for time-series data like the telemetry we collect in SatNOGS.
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](http://docs.grafana.org/) for more details on building dashboards.
This doc also assumes you have an account to edit dashboards.
Today there is a top level folder hierarchy designed as such:
- Telemetry (where telemetry dashboards should be stored)
- Experiments (for dashboards displaying satellite experiment data)
- Sandbox (a playground for making grafana dashboards)
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.
First, select the data source. While the "default" data source should always be assumed to point to the SatNOGS data warehouse, it never hurts to be explicit about it.
Next, select the metric, by clicking "select measurement". What you will see here are the names of all measurements available. This is bound to get messy as we grow, so you will need to rely on schema documentation for the satellite you are working on. NOTE: underscores in variable names from kaitai may be truncated. You can type part of the variable name for suggestions.
TODO: the kaitai schemas are not available to users today (they aren't exposed in the db ui yet), but are available in the admin console under "telemetries". In the meantime, if you are working on a dashboard and want a copy of the schema ping an admin.
After "WHERE" you can add conditions based on tags. The most important here will be "norad" to identify the satellite. NOTE: multiple satellites may share the same measurement variable names, so this will be important! "Select tag value" will give you options to pick from based on what is in the database today.
No data yet? Change your timeframe 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) 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, in the docs for CAS-4, to calculate voltage we have to take 6×(3.3/255)×(Measured value), 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.