Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Frequency Profiles and Offset Time

 

Frequency Profiles

Frequency profiles are a central location in which sensor and rule time frequencies can be managed. To understand frequency profiles, consider the following.

When defining rules in HealthBot you can:

  • Define multiple rules that use the same sensor

  • Define different sensor frequencies for each of the rules

  • Apply all of these rules to the same device group/devices

This creates complexity in rule application and frequency adjustments within the individual rules:

  • A key, consisting of sensor-path for OpenConfig and Native GPB sensors, or the tuple of file and table for iAgent sensors is used to identify the specific rules.

  • HealthBot takes the minimum defined frequency for that sensor from the applied rules and uses it to subscribe to, or fetch, data from the devices.

  • This make it hard to identify what the data rate should be for that sensor. To do that, you would have to go through the all the applied rules.

  • A change in the sensor frequency of an applied rule might not take effect as intended.

To address these complexities, HealthBot needed a common place from which to control these frequencies.

Starting in HealthBot 3.0.0, frequency profiles can be created that allow you to manage sensor and rule frequencies from a single location and then apply the profiles in various locations in HealthBot. Application of these profiles allows for persistent and repeatable behavior in regard to frequencies for rules, sensors, triggers, formulas, references, learning periods, and hold times.

A sensor profile consists of a profile name and two optional sections: the sensors section and the non-sensors section. In each section, an entry consists of a sensor or rule name and a frequency. Frequency profiles are applied to device groups or network groups.

The steps for configuration are shown below.

Configuration Using HealthBot GUI

Frequency profiles are configured and managed in the HealthBot GUI or in the HealthBot CLI. In the GUI, they are managed by navigating to the Settings > Ingest Settings page and selecting the Frequency Profile tab from the left side of the page.

Note

While the sections of the frequency profile are both optional, at least one section must be filled out per frequency profile if you want the applied profile to be able to do anything.

Add a Frequency Profile

  1. Click the + FREQUENCY PROFILE button

    The Add Frequency Profile window appears.

  2. Give the profile a name such as Profile1
  3. (Optional) Click the + ADD SENSORS button.
  4. In the Sensor Name field, enter the sensor name as per the following guidelines:
    • OpenConfig Sensors: Enter the OpenConfig path for the desired sensor, such as /components or /interfaces.

    • iAgent Sensors: Enter the table name used in the sensor definition, such as ChassisAlarmTable or REutilizationTable

    • SNMP: Enter the sensor name such as npr_qmon_ext

    • BYOI: Enter <topic-name/rule-name/sensor-name>, such as topic1/rule1/sensor1

  5. In the Frequency field, enter the appropriate frequency, such as 30seconds, 1minute, 2hours, and so on.
  6. (Optional) Click the + ADD NON-SENSORS button.
  7. In the Rule Name field, enter the rule name such as check-chassis-alarms.
  8. In the Frequency field, enter the appropriate frequency, such as 45seconds, 3minutes, 1hour, and so on.

    Repeat steps 3 through 5 or 6 through 8 as desired for the profile.

    An example result of the previous steps might look like:

    Figure 1: Edit a Frequency Profile
    Edit a Frequency Profile
  9. Click the SAVE & DEPLOY button to save and deploy the profile.

    The new sensor profile is added to the list.

To edit an existing frequency profile:

  1. Click the <Profile Name> from the list.
  2. Make the needed changes as shown in the previous section.
  3. Click the SAVE button to save the profile for later deployment or the SAVE & DEPLOY button to save and deploy immediately.

To delete an existing frequency profile:

  1. Click the Trash Can icon to the right of the profile name.
  2. Click the DELETE button to delete the profile but not deploy the change or the DELETE & DEPLOY button to delete and deploy immediately.

Usage Notes:

  • Profile Entries–Multiple entries can be configured in each section as shown in Figure 1.

  • Override–Sensor or rule frequency defined within an applied frequency profile overrides those defined within the individual rule or sensor.

  • Order of Precedence–If a sensor or rule is defined in multiple frequency profiles, each with different frequency settings, the minimum frequency value for the sensor or rule is used.

Configuration Using HealthBot CLI

In the HealthBot CLI, you can configure the same frequency profile described above. An example of the CLI configuration needed to complete the example above looks like:

user@mgd-69ab987fbc6-pt9sh> show configuration healthbot ingest-settings frequency-profile Profile1

Apply a Frequency Profile Using the HealthBot GUI

Frequency profiles are applied to HealthBot device groups or network groups. When you create or edit a device or network group, you apply frequency profiles by selecting them from the Ingest Frequency section of the Device Group definition. Figure 2 below shows an example of frequency profiles being applied to a device group.

Figure 2: Apply Frequency Profiles
Apply Frequency Profiles

Once you have applied the needed profiles, save and deploy the device group using the SAVE & DEPLOY button.

Best Practice

It is strongly recommended that you only apply frequency profiles to rules that make use of the Offset Time Unit feature.

Apply a Frequency Profile Using the HealthBot CLI

An example of a device group CLI configuration which includes a frequency profile and could be deployed in HealthBot is shown below.

user@mgd-69ab987fbc6-pt9sh> show configuration healthbot device-group lab-group

Offset Time Unit

The HealthBot offset time unit is used in conjunction with the Frequency Profiles to automatically manage time range calculations in various places within HealthBot rules. To understand the HealthBot offset function, consider the following scenario:

In HealthBot, you can define a rule which

  • Uses a sensor to gather data with a frequency of 10 seconds

  • Has a field that calculates the mean every 60 seconds

If you later decide to increase the frequency of the sensor to 60 seconds, then calculating the mean every 60 seconds would not make any sense. The result is that you would have to manually update the field calculation any time up want to change the sensor frequency.

Starting with HealthBot Release 3.0.0, you can set the time range for the mean calculation to a value of 6o, or 6offset, rather than 60s, or 60 seconds. Using an offset time value rather than a static time value tells HealthBot to automatically multiply the sensor frequency by the numeric value of the offset. Thus, any change to sensor frequency will automatically be included in the time range calculation for a formula.

An offset time unit can be used in place of standard time units in the following time range locations:

  • Formulas

  • References

  • Vectors

  • Trigger Frequency

  • Trigger Term

Below we discuss GUI and CLI examples of how to configure the offset time unit in each of the locations mentioned above.

Offset Used in Formulas

In this example, we are creating a rule, Rule1, with a sensor, Sensor1. The sensor frequency is set to 10 seconds.

In Figure 3 below, you can see the Fields block definition for Rule1 with the Sensors block definition framed in green. The formula, formula1, has a Time range value of 2o

Figure 3: Offset in a Formula
Offset in a Formula

A CLI formatted configuration snippet for the same field looks like:

Usage Notes for Offset Used in Formulas

  • An offset value applied to the time range of a formula multiplies the rule, sensor, or trigger frequency of that rule.

  • The result of this example is that the time range for the Max formula is now 2 times the Sensor1 frequency of 10 seconds, or 20 seconds (2 * 10s = 20s).

  • If a frequency profile of 30 seconds is applied to the rule used in the example, then the resulting time-range would be 60 seconds (2 * 30s = 60s).

  • Offset time can be applied to the following formulas: latest, count, min, max, sum, mean, on-change, and stdev.

Offset Used in References

In this example, there are two rules in play, but only one is shown. The unseen rule, Rule1, is in the topic routing-engines and is named routing-engines (routing-engines/routing-engines). Rule1 has a frequency of 20 seconds. Rule1 is referenced .

Rule2, shown in Figure 4, is a network rule which has a reference field named ref1. The field, ref1, references back to Rule1 through the Reference XPath Expression with a Time Range setting of 3offset.

Figure 4: Offset Time Used in Reference Field
Offset Time Used in Reference
Field

Usage Notes for Offset Used in References

  • Offset values used in references multiply the frequency of the referenced rule by the offset value. In this case, the 20 second frequency of Rule1 is multiplied by 3, resulting in a 60 second time-range (3 * 20s = 60s).

  • If a frequency profile of 60 seconds (60s) was applied to Rule1, the time range for the reference would increase to 180 seconds (3 * 60s = 180s).

Offset Used in Vectors

In this example, there are 3 rules at play. Rules Rule1 and Rule2 are not shown but are referenced by the vector.

Rule1 is in topic line-cards and is named line-cards (line-cards/line-cards) and has a frequency of 20 seconds (20s).

Rule2 is in topic routing-engines and is named routing-engines (routing-engines/routing-engines) and has a frequency of 30 seconds (30s).

In Rule3 below, we have defined a vector, vector1 that consists of 2 path references and 1 field. The vector has a Time Range defined as 3offset. Figure 5 shows the vector block definition in the HealthBot GUI.

Figure 5: Offset Time Used in Vector Block
Offset Time Used in Vector
Block

Usage Notes for Offset Used in Vectors

  • An offset value defined in the time range of a vector multiplies the sensor or rule frequency of the referenced rule or sensor. If a field from the same rule is used as the reference, then the frequency of the rule containing the vector is used.

  • When multiple references or fields are defined for a vector and offset time is used, the offset value is applied to each path independently. So, for this example in which our offset value is 3 (3offset):

    • The path reference to Rule1: “/device-group[device-group-name='Core4']/device[device-id='R1']/topic[topic-name='line-cards']/rule[rule-name='line-cards']/memory” which has a frequency of 20 seconds, would result in a time range of 60 seconds for the vector (3 * 20s = 60s).

    • The path reference to Rule2: “/device-group[device-group-name='Core4']/device[device-id='R1']/topic[topic-name='routing-engines']/rule[rule-name='routing-engines']/field[slot='0']/ref1” which has a frequency of 30 seconds, would result in a time range of 90 seconds for the vector (3 * 30s = 90s).

      Note

      There are no spaces or line breaks in the path references. They are added to this document only to enhance readability.

    • The field reference to formula1: Since formula1 is a normal field used within the vector block, the rule frequency of the current rule is used as a basis. So, the time range for formula1 is 30 seconds (3 * 10s = 30s).

  • If a frequency profile of 60 seconds is applied to Rule1 (line-cards/line-cards), then the time range for that path in the vector would be 180 seconds (3 * 60s = 180s).

  • If a frequency profile of 120 seconds is applied to Rule2 (routing-engines/routing-engines), then the time range for that path in the vector would be 360 seconds (3 * 120s = 360s).

  • The time range for the field reference, formula1, would remain the same as before at 30 seconds unless a change is made to Rule3 or a frequency profile with a different time is applied to Rule3.

Offset Used in Triggers

In this example, we have one rule, Rule1. Figure 6 below shows the trigger block definition with the sensor block definition overlaid with a green border.

The rule, Rule1, has a sensor frequency of 10 seconds (10s) applied.

The trigger itself, Trigger1, has an offset frequency of 2 (2o) applied.

The trigger term, term1, has its own time range offset of 2 (2o) applied as well.

Figure 6: Offset Time Used in Trigger Block
Offset Time Used in Trigger
Block

Usage Notes for Offset Time Used in Triggers

  • An offset value defined in trigger frequency multiplies the sensor or rule frequency. So, the offset value of 2 in trigger1 causes the trigger frequency to be interpreted as 20 seconds (2 * 10s = 20s) because the sensor frequency of the rule is used as the basis.

  • An offset value defined in a trigger term multiplies the trigger frequency value. So, the offset value of 2 in term1 causes the term frequency to be interpreted as 40 seconds (2 * 20s = 40s).

Offset Used in Trigger Reference

In this example, we have 2 rules in the topic external, and one frequency profile, prof1.

The rules are:

  • external/test: The test rule has a sensor named components which is an OpenConfig sensor with a sensor path of /components and a sensor frequency of 10 seconds.

    It also has a trigger, trig1 with a frequency of 2o or 2offset. The trigger has a term named Term_1, which is not used in the example.

  • external/ref: The ref rule is a non-sensor rule, which means that the rule uses a reference field, trigger_reference, to reference the sensor defined in another rule; in this case external/test.

    And the frequency profile is:

  • prof1: The prof1 profile sets the frequency for the /components sensor at 30 seconds.