Logical grouping of Temperature Sensors
search cancel

Logical grouping of Temperature Sensors

book

Article ID: 449428

calendar_today

Updated On:

Products

VMware Smart Assurance Network Observability

Issue/Introduction

Background:

The HP Aruba wired switch SNMP health driver (ic-hp-aruba-wiredswitch-health.asl) discovers individual TemperatureSensor instances on each device.

For a single chassis, this typically produces 10–17 discrete sensor objects — one per internal probe index. These objects currently exist in isolation:

  • There is no single object that represents "the temperature health of this device".
  • Operators must examine each sensor separately to assess aggregate thermal status.
  • No group-level event can be raised when the device's overall average temperature exceeds a threshold.

Objective:

This article introduces a TemperatureSensorGroup class to aggregate all per-device sensors, and lays the groundwork to raise a single, actionable event when the group's average temperature crosses an operator-configured threshold.

Raise a single HighAverageTemperature event on the TemperatureSensorGroup object when the aggregate average exceeds a configurable threshold.

New Event Definition

event HighAverageTemperature 
"Average temperature across all sensors exceeds the configured threshold." 
{
   severity = MAJOR;
   eventType = "EnvironmentalAlarm";
   probableCause = "ThresholdCrossed";
}

Environment

All Supported Smarts releases

Resolution

Step#1 Create a Dynamic Model for event generation (TemperatureSensorGroup.mdl)

Place the attached TemperatureSensorGroup.mdl at the location: <Install_Directory>/IP/smarts/local/model/ directory
Reference from the MDL file as follows:

interface TemperatureSensorGroup : RedundancyGroup
  {

    internal propagate attribute float avg TSG_PropAvgCurrentTemp

        "Internal: propagated average of CurrentValue from all TemperatureSensors in ComposedOf."
        = TemperatureSensor, ComposedOf, CurrentValue;

    computed attribute float TSG_AvgCurrentTemp
        "Average temperature in degrees C across all sensors in the group."
        = TSG_PropAvgCurrentTemp
        else 0.0;

    stored attribute float TSG_AvgTempThreshold
        "Threshold in degrees C above which TSG_AvgTempOutOfRange is raised. Operator-editable." = 45.0;

    computed attribute boolean TSG_IsAvgOverThreshold
        "TRUE when TSG_AvgCurrentTemp exceeds TSG_AvgTempThreshold."
        = (TSG_AvgCurrentTemp > TSG_AvgTempThreshold);

}

Threshold Configuration

TSG_AvgTempThreshold

45.0

Operator-configured threshold in °C

TSG_AvgTempHysteresis

3.0

Margin to clear event (threshold − hysteresis)

 

Step#2 Update the Certification references for HP devices

Place the attached DISCOVERY_HP.import at the location: <Install_Directory>/IP/smarts/local/conf/discovery/ directory.

Changes: The local override replaces the original GA_Driver with a GA_CompoundDriver to sequence the two drivers.

GA_CompoundDriver::Performance-HP-Aruba-Wired-Switch-Driver {
   drivers = { 
       {"Performance-HP-Aruba-WiredSwitch-Health-Driver", 10}, 
       {"HP-Aruba-TempGroup-Driver", 20} 
   }
   waitForCompletion = TRUE
}

Step#3 Enrich the discovery scripts to perform the grouping during the discovery of the devices:

Place the attached ic-hp-aruba-temp-group.asl at the location: <Install_Directory>/IP/smarts/local/rules/discovery/ directory.

Step#4 Compile and load the Dynamically Modelled Files:

Review the steps explained at the documentation reference: Location and Loading of Dynamic Model Files

Step#5 Load the changes by performing a Domain Manager restart

Stop the AMPM domain using:

<Install_Directory>/IP/smarts/bin/sm_service stop <AMPM Domain>

Once stopped, Start the AMPM domain using:

Stop the AMPM domain using:

<Install_Directory>/IP/smarts/bin/sm_service stop <AMPM Domain>

 

Additional Information

Attributes Reference

Attribute

Type

Source

Description

NumberOfComponents

computed int

 

ComposedOf

SystemName

computed string

PartOf

Read-only; auto-set via node link

TSG_DeviceName

stored string

Set by ASL

Name of the parent switch node

TSG_MaxCurrentTemp

propagate float max

CurrentValue

Highest live temperature across sensors

Attachments

TemperatureSensorGroup.mdl get_app
ic-hp-aruba-temp-group.asl get_app
DISCOVERY_HP.import get_app