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 bytes, 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.