3.0 Advanced Dashboard Primer

Aren't you an intrepid explorer! Look at you jumping right to the advanced section! Well, we are glad you are here. In this section we'll be looking at how you can create much more complex dashboard content.

As soon as you want to go beyond supplied panels, or direct data from inventory queries, then things are going to get a bit more complex. However, don't be daunted! We are going to give you the building blocks here for building complex and very meaningful aggregate data from FileWave sources.

Please see the articles below for the elements we'll build on:

3.1 Aggregating Data


Up until now, we have been talking about the capability of the FileWave dashboard to show data.  We have looked at pre-built examples, and done a small amount with data from an inventory query.  But the real power in the dashboard is the ability to aggregate (or summarize) data.


Let's consider a new deployment of Java to the environment:  We can create a report that shows us every client, and every version of Java on those clients, but that doesn't give an easy overview of how the rollout from build 183 to build 196 is going.  But, if we could take that same data, and count the number of clients with each version and represent that in a chart, then that would give us the exact picture we might be looking for.  This aggregation of data is a very powerful tool.


So, we know how to create new dashboards and panels, but how do we actual get aggregated data over to our (grafana) dashboard?  The answer to that lies in using Prometheus and configuring a scrape file for collecting and aggregating that data.


3.1.1 Grouping Data Using Prometheus


In order to do summary reporting, we need to leverage the power of Prometheus.


Anytime we want to do something like report on a rollout or general status, we are going to want to summarize a report.  We will accomplish this by using a Prometheus config file on the FileWave server itself.


The configuration (or yml files) that we'll create will always be placed in the /usr/local/etc/filewave/prometheus/conf.d/jobs/https directory on the FileWave server.  Anything placed in this directory will automatically be read by Prometheus, and the data presented to our dashboard.  (Example yml files can be found in /usr/local/etc/filewave/prometheus/conf.d/jobs)

The syntax of these files is quite picky, so it is best to copy an existing one, and then modify it.  It may seem complicated, but we are always going to do the following steps:

Step Example
1. Place a new (or copied) yml file into /usr/local/etc/filewave/prometheus/conf.d/jobs/https with a meaningful name. image2020-8-11_13-31-54.png
2. Edit the new file to specify the following 3 things:

* The inventory query (report) to use
* The field you want to count by...device_id is almost always a good one if reporting by device
* The field you want summarize (aggregate) by...in this case, the filewave client version
3. Once your report is created, the report id to use is most easily accessed through the webadmin.  Note that the fields you want to use for aggregation must be in the report.