1.37. Release Notes 0.98.1

1.37.1. Important changes in this release

1.37.2. Improvements in this release

  • Release tar package includes copies of the default configuration files in directory doc/default_config. These copies are not used by the system but are provided for reference

  • Release tar package includes copies of the standard Python hook scripts used to process monitoring data (nw2rules.py), generate default report (nw2report.py), build views (view_builder.py) and configure monitoring variables. These scripts are located in the directory python at the top level of the hierarchy when you unpack distribution tar. These scripts are copies and are not actually used by the system, they are provided for reference only.

  • The way we build monitoring variables has changed. The purpose of this change is to make it possible for the user to add or modify monitoring variables. Now you can add variables if you know SNMP OID to poll.

    This is done using external Python hook script that both generates variables and makes decision on which interfaces and components should be monitored. We provide copies of built-in scripts in the directory python/variable_builders. As is the case with other Python hooks, in order to add your own variable builders you need to make a copy of the variable_builer_runner.py script and make changes in it. Add parameter:

    network.monitor.variableBuilder = my_var_builder.MyVariableBuilder
    

    to your configuration file nw2.conf to make NetSpyGlass find and use your builder hook script. Documentation file doc/monitoring_variables.md provides more details on this.

  • Rules that govern the display of monitoring variables in the UI have been separated from the variable definition configuration and are now located in a separate configuration file. The copy of this file is provided in doc/default_config/data_display.conf. If you want to make changes to these rules, you can do it in your config file nw2.conf by adding statements that override parameters you want to change. For example:

    variables {
      # Change some defaults
    
      ifInRate.range = [0, auto]
      ifInRate.accuracy = 2
    
      ifOutRate.range = [0, auto]
      ifOutRate.accuracy = 2
    }
    
  • We have added two new parameters to the configuration section that defined data display rules for monitoring variables: ‘accuracy’ and ‘zeroThreshold’.

    • accuracy: accuracy of a number x is given by the number of significant decimal (or other) digits to the right of the decimal point in x. significantFigures and accuracy are mutually exclusive. If accuracy > 0, it is used. Otherwise significantFigures is used.
    • zeroThreshold: if > 0.0, then it is interpreted as fraction of the maximum range of values of the variable and all values below this threshold are rounded down to zero. For interface traffic-related variable the maximum value of the range is interface speed, therefore zeroThreshold defines fraction of the speed. Absolute value of the threshold is then equal to speed * zeroThreshold. If zeroThreshold is equal to “1E-5” and interface is a Gigabit Ethernet (speed = 1E9 bits/sec), then the value of the threshold is equal to 1E9 * 1E-5 = 1E4 or 10 kbit/sec. Any values lower than this will be rounded down to zero. User with caution because this distorts actual measured values when they are displayed and makes it impossible to compare very small levels of traffic across interfaces. Default value of zeroThreshold is “0.0”, therefore it is not used.

    The main use case for the parameter zeroThreshold is to display very low levels of traffic going through high-bandwidth network interface as zero. Use with caution because with this parameter activated, two variables may appear to have the same value of zero, while in reality they may have different very small values. By default this parameter is turned off. This parameter does not affect values shown in graphs.

    Here is an example:

    # Change some defaults
    variables {
    
        ifInRate.range = [0, auto]
        ifInRate.accuracy = 2
        ifInRate.zeroThreshold = 1E-4
    
        ifOutRate.range = [0, auto]
        ifOutRate.accuracy = 2
        ifOutRate.zeroThreshold = 1E-4
    }
    

1.37.3. User Interface

  • user can configure default monitoring variable to be shown in maps. When user opens map for the very first time, this variable will be automatically selected in the map legend. Once user switches to another variable, this selection is “sticky” and all maps open with this newly selected variable. The selection persists for the duration of the browser session but is lost when user closes browser tab. Configuration parameter is network.display.map.defaultVariable and the default is ifName:

    network {
        display {
            map {
                # maps will switch to this variable by default, until user selects another one
                # in the legend or different variable is specified as part of the url
                defaultVariable = "ifName"