Using Filters to Forecast Metrics

OpenNMS includes several pre-defined filters that HELM can use to display forecast metrics in a panel. Adding a forecast filter can help you anticipate when you might need to make changes to your network depending, for example, on anticipated bandwidth usage, disk space capacity, network traffic, and so on.

This procedure describes how to create forecast metrics on network usage, using the ifHCOutOctets attribute (the number of octets sent by the interface).

Create a Network Usage Panel

  1. In your dashboard, click the Add panel icon.

  2. Click Add Query.

  3. In the Query drop-down, select the datasource.

    1. You need to select a performance datasource.

  4. In the Type drop-down, choose Attribute.

  5. Specify the node you want to monitor.

  6. Specify the resource ID.

  7. In the Attribute field label, click the tag icon to display the list of available attributes and select ifHCOutOctets.

To display this information in bits, create an expression:

  1. Click Add Query.

  2. In the Type drop-down, choose Expression.

  3. In the Expression field, add the following: ifHCOutOctets * 8.

  4. Add a label, for example, Out.

  5. Hide the ifHCOutOctets attribute you configured by clicking the disable/enable (eye) icon beside it.

Create a Forecast Filter

  1. Click Add Query.

  2. In the Type drop-down, choose Filter.

  3. Click the Filter type label, select HoltWinters from the pop-up dialog, and click Select.

    1. Note that the far right column displays requirements on the node being queried, e.g., R, Java.

  4. For the Input column, specify the name of the attribute or expresssion you wish to forecast, in this case, Out.

  5. Specify an output, or accept the default (HW).

    1. The output is the prefix for the lower and upper fit (how successfully the forecast method fits to your data).

  6. Specify the number of periods to forecast, the size of the period in seconds, and the desired probability in the appropriate fields.

    1. Note that the number of periods to forecast, the size of the period, and the time range are interdependent. For example, the following specifies a three-hour forecast:

      Periods
    2. Your time range must include at least more than twice the period size to get the historical data required for the forecast. For example, to forecast a period of one hour (3600 seconds), you need to specify a time range greater than two hours.

    3. Consider the seasonality of the data (i.e., you may not want weekend network usage to be included in a forecast of usage during regular business hours) when specifying a time range.

  7. If you have noisy or spiky data, forecasting does not work as well. You should also add the Chomp and Outlier filters, and move them so that they appear before the HoltWinters filter in the list of queries. You must specify an input for the Outlier filter.

  8. Save the dashboard.

Displaying Forecast Data

Since the default time range for a panel returns data from the past to the present, you need to create a custom time range to display forecast data beyond the current time.

  1. In the upper-right of the dashboard, select Custom time range from the time range drop-down.

  2. Specify the start of your data range in the From field (for example, now-6h).

  3. For the end time, specify a time in the future, as in the following:

    Range

    The panel displays the forecast you specified:

    Periods
  4. Experiment with changing the time range and forecast results. The further into the future you forecast, the less authoritative the forecast will be.

Pre-defined Filters

The following table describes the pre-defined filters from OpenNMS that Helm provides for forecast metrics:

Filter Description Use

Chomp

Strips leading and trailing rows that contain nothing but NaNs/null values.

This filter is useful when the values from the data source do not cover the entire time interval the report uses.

HoltWinters

Performs Holt-Winters forecasting, a way to model and predict the behavior of a sequence of values over time.

Creates forecasts of your data based on the parameters you specify.

Outlier

Removes data points that differ significantly from other data and replaces them with interpolated values.

Helps to smooth the data to improve forecasting results.

Trend

Fits a trend line or polynomial to a given column.

Displays upwards or downwards changes in the forecast data.

JEXL

Generic JEXL expression filter

Filters on mathematical and conditional operators provided by JEXL. For example, you could specify a filter to display the SUM of certain data.

Percentile

Calculates percentiles.

Displays the percentage of data under the specified percentile.

Derivative

Calculates the derivative (rate of change) between rows.

Displays the rate of change during the forecast period.