Graphs Overview
Paragon Automation Platform offers three types of graph that include time series graphs, histograms, and heatmaps. To create graphs, click Monitor>Graphs>Charts from the Paragon Automation UI. Starting with Paragon Automation Release 21.2, you can use the Grafana UI to create charts, and view and monitor network devices. Click Monitor>Graphs>Grafana to access the Grafana UI. For more information, see Grafana Overview.
Time series graphs are the kind you are used to, showing the data in a ’2D’ format where the x-axis indicates time while the y-axis indicates the value. Time series graphs are useful for real-time monitoring, and also to show historical patterns or trends. This graph type does not provide insight into whether a given value is ’good’ or ’bad’, it simply reports ’the latest value’.
Histograms work quite differently. Rather than show a continuous stream of data based on when each value occurred, histograms aggregate the data to show the distribution of the values over time. This results in a graph that shows ’how many instances of each value’. Histograms also show data in a ’2D’ format, however in this case the x-axis indicates the value while the y-axis indicates the number of instances of the given value.
Heatmaps bring together the elements above and provide a ’3D’ view to help determine the deviations in the data. Like a time series graph, the x-axis indicates time, while the y-axis indicates the value. Then the ’how many’ aspect of a histogram is added in. Finally, the third dimension—color—is added. It is common to think of the colors as showing heath, i.e., red means ’bad, yellow means ’OK’, and green means ’good’. However, this is not correct; the color adds context. For each column, the bars indicate the various values that occurred. The color then indicates how often the values occurred relative to the neighboring values. Within each vertical set of bars, the values that occurred more frequently show as ’hotter’ with orange and red, while those values that occurred less frequently show as shades of green.
To help illustrate these graph types, consider the graphs shown below.

All three graphs are showing the same data—the running 1-minute average of CPU utilization on a device over the last 24 hours. However, the way they visualize the data varies:
The time series graph provides the typical view; each minute it adds the latest data point to the end of the line graph. Time moves forward along the x-axis from left to right, and the data values are indicated on the y-axis. What this graph doesn’t show is how often each data point has occurred.
The histogram groups together the values to show how many of each data point there are. Notice the tallest bar is the one between 30 and 40, which means the most common 1-minute CPU average value is in the 30-40% range. And how many times did this range of values occur? Based on the y-axis, there have been over 350 instances of values in this range. The next most frequently occurring values are in the 40-50% range (almost 300 occurrences), while the 0-10% range has almost no occurrences, suggesting this CPU is rarely idle. What this graph doesn’t show is how many of each data point occurred within a given time range.
The heatmap makes use of elements from the other two graph types. Each small bar indicates that some number of instances occurred within the value range shown in the y-axis, at the given time show in the x-axis. The color indicates which value ranges, for each given time, occurred more than others. To illustrate this, notice the vertical set of bars towards the right of the graph, at 18:00. In this example (at this zoom level), each column of vertical bars represents 12 minutes, and each small bar represents a bucket of 15 values. So the first (lowest) bar indicates that within this time range there were some values in the 0-14 range. The bar above indicates that within this time range there were some values in the 15-29 range, and so on. The color then indicates which bars have more values than others. In this example, the third bar is red indicating that for those 12 minutes most of the values fell into the 30-44 range (in this example the count is 21). By contrast, the first bar is the most green indicating that for those 12 minutes the least number of values fell into the 0-14 range (in this example the count is 1). This ’heat’ information is also supported by the histogram; the most frequently occurring values were those in the 30-40 range, which indeed is the ’hotter’ range in the heatmap.
Use Cases
How do I monitor interface flaps for a single interface?
Playbook used: interface-kpis-playbook
Graph configuration
The example shows configuration for vMX1 device in a canvas titled Test-canvas3. The query section takes interface flap count (flaps) as field input and computes mean for flaps in ge-0/0/3 interface. The time series graph in the configuration is captured over 3 hours.
In the Query section, the FROM fields take your input for device-group name, device name, and rule, respectively.
The SELECT fields contain inputs for a KPI key based on the rule you set earlier. If the rule you selected is
interface.statistics/check-interface-flaps
, the SELECT field could show options for flap count, flap threshold, and so on.The Aggregation field describes data aggregation computation to be performed on the KPI field data (flap counts in this example) such as mean, median, sum, and so on.
The Transformation field (optional) describes computations performed on subsequent values in a single field. For example, rate of change, elapsed time, differences, and so on.
The WHERE section allows you to set a condition to filter the field data. You must enter a left operand, a right operand and a conditional operand such as equal to, matches with, greater than, less than, and so on. The left operand can be either a key or a field name.
In the example configuration, the condition defined checks if the interface-name is equal to ge-0/0/3.
The GROUP BY section allows you to group the filtered data by a time interval you specify and handle output value in cases where no field data is available. You can choose group by time interval from the drop-down menu.
If you set the time interval in GROUP BY field as $_interval, then Grafana sets the time interval for data aggregation based on the number of points received in TSDB.
In the Visualization section, you can enter the y-axis minimum and maximum values, y-axis label and choose unit such as bytes, kilobytes, and so on.
In the example configuration, this section is not configured.
Graph panel
The graph shows interface flaps for ge/0/0/3 interface in device vMX1.
How do I monitor interface flaps for all ’ge’ interfaces on a device in a single graph?
Playbook used: interface-kpis-playbook
Graph configuration
The example shows configuration for vMX1 device in a canvas titled Test-canvas3. The query section takes interface flap count (flaps) as field input and computes mean for flaps in all ge interfaces. The time series graph in the configuration is captured over 3 hours.
In the Query section, the FROM fields take your input for device-group name, device name, and rule, respectively.
The SELECT fields contain inputs for a KPI key based on the rule you set earlier. If the rule you selected is
interface.statistics/check-interface-flaps
, the SELECT field could show options for flap count, flap threshold, and so on.The Aggregation field describes data aggregation computation to be performed on the KPI field data (flap counts in this example) such as mean, median, sum, and so on.
The Transformation field (optional) describes computations performed on subsequent values in a single field. For example, rate of change, elapsed time, differences, and so on.
The WHERE section allows you to set a condition to filter the field data. You must enter a left operand, a right operand and a conditional operand such as equal to, matches with, greater than, less than, and so on. The left operand can be either a key or a field name.
In the example configuration, the condition defined checks if the interface-name matches with ge.
The GROUP BY section allows you to group the filtered data by a time interval you specify and handle output value in cases where no field data is available. You can choose group by time interval from the drop-down menu.
If you set the time interval in GROUP BY field as $_interval, then Grafana sets the time interval for data aggregation based on the number of points received in TSDB.
In the Visualization section, you can enter the y-axis minimum and maximum values, y-axis label and choose unit such as bytes, kilobytes, and so on.
In the example configuration, this section is not configured.
Graph panel
The graph shows flap counts of three ge interfaces — ge-0/0/0, ge0/0/1, and ge-0/0/2 in the vMX1 device.
How do I monitor system memory usage for all devices in a device group in a single graph?
Playbook used: system-kpis-playbook
Graph configuration
The example configuration shows query section configured for three devices — vMX1, vMX2, and MX240 — in a single canvas titled Canvas1. The query section takes routing engine’s system memory buffer (re-memory-buffer) as field input, computes mean for a time interval set by the user or Grafana. The example configuration is set for the time series graph captured over 6 hours.
In the Query section, the FROM fields take your input for device-group name, device name, and rule, respectively.
The SELECT fields contain inputs for a KPI key based on the rule you set earlier. If the rule you selected is
system.memory/check-system-memory
, the SELECT field could show options for system memory buffer value, system memory high threshold, system memory low threshold, and so on.The Aggregation field describes data aggregation computation to be performed on the KPI field data (system memory buffer in this example) such as mean, median, sum, and so on.
The Transformation field (optional) describes computations performed on subsequent values in a single field. For example, rate of change, elapsed time, differences, and so on.
The WHERE section allows you to set a condition to filter the field data. You must enter a left operand, a right operand and a conditional operand such as equal to, matches with, greater than, less than, and so on. The left operand can be either a key or a field name.
In this example, no conditions are set in the WHERE section.
The GROUP BY section allows you to group the filtered data by a time interval you specify and handle output value in cases where no field data is available. You can choose group by time interval from the drop-down menu.
If you set the time interval in GROUP BY field as $_interval, then Grafana sets the time interval for data aggregation based on the number of points received in TSDB.
In the example configuration, the group_by interval is set at 1 minute for vMX1 and vMX2 devices whereas, Grafana would decide the time interval to group by aggregated data for MX240 device.
In the Visualization section, you can enter the y-axis minimum and maximum values, y-axis label and choose unit such as bytes, kilobytes, and so on.
In the example configuration, this section is not configured.
Graph panel
The graph shows mean system memory buffer values aggregated per minute for vMX1 and vMX2, and for an unknown time interval for MX240 device.
How do I monitor RE CPU usage for multiple devices in a single graph?
Playbook used: system-kpis-playbook
Graph configuration
The example configuration shows query section and visualization section configured for three devices — vMX1, vMX2, and MX240 — in a single canvas titled Canvas1. The query section takes routing engine’s CPU utilization (re-cpu-utilization) as field input, computes mean every minute for the three devices, and visualizes the mean CPU utilization per minute as percentage. The example configuration is set for the time series graph captured over 6 hours.
In the Query section, the FROM fields take your input for device-group name, device name, and rule, respectively.
The SELECT fields contain inputs for a KPI key based on the rule you set earlier. If the rule you selected is
system.cpu/check-system-cpu
, the SELECT field could show options for CPU utilization value, CPU utilization high threshold, CPU utilization low threshold, and so on.The Aggregation field describes data aggregation computation to be performed on the KPI field data (CPU utilization in this example) such as mean, median, sum, and so on.
The Transformation field (optional) describes computations performed on subsequent values in a single field. For example, rate of change, elapsed time, differences, and so on.
The WHERE section allows you to set a condition to filter the field data. You must enter a left operand, a right operand and a conditional operand such as equal to, matches with, greater than, less than, and so on. The left operand can be either a key or a field name.
In this example, no conditions are set in the WHERE section.
The GROUP BY section allows you to group the filtered data by a time interval you specify and handle output value in cases where no field data is available. You can choose group by time interval from the drop-down menu.
If you set the time interval in GROUP BY field as $_interval, then Grafana sets the time interval for data aggregation based on the number of points received in TSDB.
In the example configuration, the group_by interval is set at 1 minute for vMX1, vMX2, and MX240 devices.
In the Visualization section, you can enter the y-axis minimum and maximum values, y-axis label and choose unit such as bytes, kilobytes, and so on.
In the example configuration, the y-axis range for mean CPU utilization per minute is set on a scale of 0 to 100 percentage.
Graph panel
The graph displays mean CPU utilization in percentage for vMX1, vMX2, and MX240 devices.
How do I monitor RE CPU usage for multiple devices side-by-side?
Playbook used: system-kpis-playbook
Graph configuration
The example shows separate configuration for two devices — vMX1 and MX240 — in a single canvas titled Canvas1. The query section takes routing engine’s CPU utilization (re-cpu-utilization) as field input, computes mean every minute for the three devices. The example configurations are set for the time series graph captured over 6 hours.
In the Query section, the FROM fields take your input for device-group name, device name, and rule, respectively.
The SELECT fields contain inputs for a KPI key based on the rule you set earlier. If the rule you selected is
system.cpu/check-system-cpu
, the SELECT field could show options for CPU utilization value, CPU utilization high threshold, CPU utilization low threshold, and so on.The Aggregation field describes data aggregation computation to be performed on the KPI field data (CPU utilization in this example) such as mean, median, sum, and so on.
The Transformation field (optional) describes computations performed on subsequent values in a single field. For example, rate of change, elapsed time, differences, and so on.
The WHERE section allows you to set a condition to filter the field data. You must enter a left operand, a right operand and a conditional operand such as equal to, matches with, greater than, less than, and so on. The left operand can be either a key or a field name.
In this example, no conditions are set in the WHERE section.
The GROUP BY section allows you to group the filtered data by a time interval you specify and handle output value in cases where no field data is available. You can choose group by time interval from the drop-down menu.
If you set the time interval in GROUP BY field as $_interval, then Grafana sets the time interval for data aggregation based on the number of points received in TSDB.
In the Visualization section, you can enter the y-axis minimum and maximum values, y-axis label and choose unit such as bytes, kilobytes, and so on.
In the example configurations, this section is not configured.
Graph panel
The canvas titled Canvas1 has two graphs (because of separate configuration) for the vMX1 and MX240 devices side-by-side.