Device Health Monitoring (This document intended for Intermec SE community) Please report any errors or suggestions to: Allen Henley Product Manager allen.henley@intermec.com Revision: January 1, 2012 “The 1 Page Overview” What is it? Device Health Monitoring is a series of hardware sensors and software algorithms that provides capabilities for monitoring, troubleshooting, and logging mobile computer performance. Why? This capability enables advanced remote troubleshooting and predictive maintenance. It allows device managers to more efficiently manage their devices and prevent problems before they impact users. How does it work? The computer is configured to periodically monitor and log it own hardware and software subsystems. Based on the information collected, a set of rules is applied to determine if the device is healthy. If the device is found to be “unhealthy”, it can automatically generate an alert message which notifies the user, a remote console, or both. When troubleshooting a suspected problem, this logging data can be viewed remotely or automatically sent to a remote console (such as SmartSystems console) on a periodic basis. The logging function is set through Intermec Settings. This function determines which subsystems are monitored, and how often the data is collected. Each time the logging function collects a snapshot of data; this “snapshot” is stored in device memory until the next logging event when the data is then overwritten. The rules engine is set to factory default values, but the rules can also be easily configured by an IT administrator. Each time the logging function takes a snapshot of data, the rules engine will analyze the data and determine if it needs to generate an alert. When an alert is generated, the user can be notified (with a flashing blue light) and/or the remote console can be notified with an alert message and a copy of the snapshot of data that generated the alert. At any time, the user can access a summary of information through the Device Health dashboard by using the front panel “?” key. This dashboard displays the last snapshot of data (it does not initiate a fresh snapshot). Also, at any time a remote administrator can request a full set of the last data that was logged. This is known as an asset message. The mobile computer does not keep ‘old’ records. Each time new data is logged it replaces the previous snapshot. When the rules engine determines an alert is necessary, this data can be sent to the remote console, which can keep historical data for trending device performance. Device Health must be licensed to use with Mobile Device Management solutions such as SmartSystems, SOTI, etc. Device Health requires a license on each device. Key subsystems which are monitored are: Battery, Wireless Networks, Imager, Memory, GPS, Camera, Touch Panel, Peripherals. Configuring Data Logging Data logging can be configured through settings in Intermec Setting. You can configure this from the front panel or through SmartSystems. Upon saving these changes, you do not need to reboot the computer. The logging timers are automatically reset to zero and the first snapshot will be captured based on the value of the new settings. To configure logging from the front panel: Select: Start -> Settings -> System -> Intermec Settings -> Device Monitor -> Device Health Controls -> Set Data Refresh Periods To configure logging with the Intermec SmartSystem Console: 1. “Discover” the device with SS Console 2. Right Click on the Device Icon 3. Select “Start Intermec Settings” 4. Drill down into Device Monitor -> Device Health Controls -> Set Data Refresh Periods 5. Set “Systems Device Health” – in seconds 6. Set “Network Device Health” – in seconds Some subsystems are logged based on internal settings that are not controlled through Intermec Settings. For instance, the scanner statistics are logged into memory every 5 minutes. This is not intended to be user configurable, although it can be changed by advanced users with changes to registry settings (beyond the scope for this author). System Device Health Logs Data On: 1. Battery, Memory, Storage, GPS, Processes, Drivers, AC Power, Camera, etc Network Device Health Logs Data On: 2. WLAN, Bluetooth, Ethernet, etc. Other Systems Logged based on Registry Settings: (TBD – Not sure on this) 3. Scanner, WWAN?, Touch Panel?, others ? Forcing Asset Messages In most cases, it is not necessary to send asset messages unless some “rule” has been broken and the mobile computer determines it is supposed to send an asset message to the console. In some case it may be desirable (like troubleshooting a problem) to simply have the computer send asset messages on a regular basis. For example, if you want the mobile computer to send an asset message every 10 minutes, you can configure this as part of Intermec Setting on the device. Example: To configure the mobile computer to send an asset message every 10 minutes; From the device front panel: Select: Start -> Settings -> System -> Intermec Settings -> Device Monitor -> Device Health Controls -> Set Data Refresh Periods Set Asset Msg Send Period = 10 Special Notes: 1) Send period is minutes (not seconds like the logging timers) 2) Sending an asset message does not force data to be collected, it simply sends the last data that was logged Viewing Logged Data Once logging is enabled, there will be a snapshot of data that stored in memory. It is periodically updated based on how logging has been configured. To view logged data, you can use the front panel “Dashboard” or you can use remote device management tools such as Intermec SmartSystems. Other non-Intermec device management solutions may support this through the SmartSystems API. Contact them directly to see if they support Intermec Device Health Monitoring. From the Front Panel Dashboard To use the front panel Device Health Dashboard, press the “?” key. This will bring up a dashboard that allows you to drill down into the various subsystems of data that has been collected. From SmartSystems Console 1) Launch SmartSystems Console 2) Discover the Device 3) Right click on the device. Select Refresh 4) Right click on the device. Select Properties 5) Use the various tabs to view the data on the device. Some important notes when using SmartSystems Console 1. The data you are viewing is called an Asset Message 2. Using the drop down menu at the top of the Console Screen, you can select different Asset Messages that have been received by the console 3. If you believe you have received Asset Messages that are not shown in the pull down list, you might need to refresh the list. To do this, select View->Refresh. Important Note: This does not force the computer to send a new message, see #5 below. 4. The time/date of these messages is when the message was received by SmartSystems, it is not when the data was collected. For example, if you are logging data once per hour and you ask for an asset message, the actual logged data could be up to 1 hour old. As of this writing, the author does not know any method to force a logging “snapshot”. 5. Although you cannot force data to be logged, you can force the mobile computer to send the console an asset message with the last data that was logged. To do this from SmartSystem main screen, Right Click on the mobile computer and select Refresh. If you know go to Properties, you should see a message that was recently received. Understanding “Rules” Each time data is logged, a set of “Rules” will analyze the data and determine if some action needs to be taken. The two actions that are normally taken will be #1 Turn on the Blue Flashing Light to alert the user or #2 Send an Asset Message to a remote device console such as Smart Systems. You can configure the device to do either or both of these actions. Where are the rules located? The rules engine is based on an xml file located on the device. By default, the rule file is located in \SmartSystems\HealthRules.txt and \SmartSystems\HealthRules.xml. Using Intermec Settings, you can change the location and filename for the HealthRules file. In Intermec Settings use the following: Select: Start -> Settings -> System -> Intermec Settings -> Device Monitor -> Device Health Controls -> Set Rule File Location Important: If you change the rules file, you need to remember that the rules won’t be evaluated until the next logging cycle. You do not need to reboot the device. Creating your own Rules SmartSystems console has a function that allows you to create and edit your own rules file. It is an interpreted programming language that provides some simple programming capability and logic. SmartSystems has some pretty good examples, but to get you started follow these steps 1) Launch SmartSystems Console 2) Right-click on one of your Health Rules files and select “Edit Rule File” 3) Use the GUI editor at the top of the screen or the Text Editor at the bottom. 4) Save your file to a new Filename such as “My Rules rev 1”) 5) Drag and Drop the New rules file onto the device Following is a very simple rules file that shows you how to create your own messages for the rule. /* * This is Allen's Health Rules.txt file. * The rule says that whenever the device is on charge it will start flashing the blue light * and send a Asset Message to the console. Asset message are sent whenever * there is a state change. Note: It won’t start flashing until a snapshot is logged */ { INT RTW_BROKEN = 1; INT RTW_UNHEALTHY = 2; INT RTW_HEALTHY = 3; INT ACLineStatus = @[health/System/Power/ACLineStatus]; if (ACLineStatus == 1) { SetRtwState(RTW_UNHEALTHY, "Unit is being charged",0, __BLOCK__); } /*Default to connected if we didn't set anything else, Connected*/ SetRtwState(RTW_HEALTHY, "", 4, __BLOCK__); } Why do we have a .txt and a .xml file on the device? When using SmartSystems to create and download a new rules file to the device, it automatically generates a .txt file, a .xml file, and it sets the correct file name in Intermec Settings. The .txt file contains the rules (described in the example above) and the .xml file contains text strings that are status message. The text in the message file can be replaced with non-English strings, so that status message will appear in local languages.