EMC – HeatMap Analyzer – Basics – Part 3 – Charts

This is part 3 of a series where I will go into a little more detail on how you use HeatMap Analyzer. In this article I will look at the different sort of charts that can be drawn using the Analyzer component.


Line Chart


This is a standard Line chart. Line style charts (Line, Stacked and Line by Day) are all comprised of several sections – the main chart (upper) and the control section (lower). The control section allows you to zoom and pan the chart. If, for example, you are viewing several months worth of performance data (as above) then analysing specific points in time becomes quite difficult. Dragging the sliders in the control section closer together will allow you to view the data in greater detail.



Hovering over a data point will display a tool-tip with the details of that point.


Line by Day Chart

The Line by Day chart breaks down a standard Line chart and overlays each day. This can be useful in finding time related trends in data sets. For example, looking at a particular SP’s utilization over the past 3 weeks might look something like this:



Trying to work out time based trends in this data is visually difficult, however if we chart it using a Line by Day chart it allows you to analyze the data more intuitively. You could make the following conclusions:

1. Utilization over the weekend is generally lower.

2. There is consistently a peak in utilization at 5 am.

3.  The highest peak during business hours is at 9 am.

4. Utilization of the array begins to increase from around 6 pm.




Bear in mind that charting multiple objects in the one chart will potentially make analysis more difficult, and while tool tips are shown when you hover over a data point, the time will be correct however the date is all converted back to 1st January 2000.


Stacked Chart



A stacked chart aggregates the data points for the selected objects, and shows the total of the attribute charted for a particular time. Only certain types of Attributes can be charted in a Stacked chart (and Pie charts). For example it doesn’t make a lot of sense to draw a Stacked chart of SP utilization. However, where the unit of measurement is “aggregatable” like Total Bandwidth (measured in MB/s) or Total Throughput ( measured in IOPS ), it can be charted this way.


If you really want to be able to chart these other unit types using Stacked charts, you can modify the units aggregatable flag in the Configuration tab under the “Attribute Units”  section, removing the unit and re-adding it  with the aggregatable flag ticked. This should enable this chart type for those attributes.


Pie Chart



When selecting a Pie Chart, you are unable to select which objects are to be drawn (all objects are included in the chart calculations). Specifying Max Slices will limit the chart to display n-1 objects, the objects that are shown will be ordered largest to smallest, and all other objects will be combined under the “Other” slice.


Distribution Chart



A distribution chart allows you to determine the percentage of data sets that fall within particular bands.  The above chart shows that 46% of SP A’s response times are in the 0-3 ms band, whereas 45% of SP B’s response times are in the 6-9ms band.  When drawing a Distribution chart leaving the Minimum and Maximum blank will leave the script to determine the  ranges that will contain the entire data set. Using the Minimum and Maximum you can change the range that is charted, and changing the interval will change the number of bands displayed (by default 10).



Changing the Minimum to 0, Maximum to 20 would result in the above chart, breaking the distribution down into smaller bands



This option displays a text table of the Attribute and Objects that you have selected, you can select all the data and paste it into you favorite analytic tool


Connectivity Graphic


Connectivity charts show the hierarchical connectivity of the array (currently this chart is only available for CLARiiON arrays)

Front End Ports → Storage Processor →LUN → MetaLUN Component → RAID Group / Pool  → Private RAID Group → Disk

Modifying the depth field will change the depth to which the chart is drawn. Modifying the Attribute field will change the Attribute that is represented on the chart (Connectivity is a special attribute that weights each link the same). Link size is relative to the average for the selected attribute for the particular object, where the object does not expose that attribute (i.e. Ports don’t expose Utilization) will show a thin link.

NOTE: Arrays with more complex configurations and larger number of disks don’t necessarily display very clearly in this format.




In Part 4 we will look at the Configuration tab and how to Automate NAR file collection.


  1. Hi,

    There are some problems I ran into while checking this script.

    I am manually uploading the NAR files into the analyzer.

    I am getting “ERROR – invalid data” while I try to filter for objects.

    I might have messed up one thing, by hardcoding the ARRAY serial number and Name in the processNAR.pl.

    However I can still get the HeatMap reports

  2. hey,

    sorry to hear that you have been having problems, are you only getting the error when you try and filter the objects or does it occur when you go into the analyzer tab?

    what are the parameters of the filter fields?

    I’d probably try and avoid hard-coding the serial number and name into the scripts, that could be causing some issues I guess … why did you go down that path, were there issues with it trying to discover the name/SN?

    are you able to e-mail me a NAR file so I can see if I can duplicate the issue?



  3. Hi,

    Yes I am getting the error only when I try to filter for the object.

    I wanted to see if I can tweak the script to be used as an offline analyser.

    As you said, it might be causing the issues.

    Let me try some more. I really Like scripting and I am really amazed to see this kind. Though I am a RUBY fan,I am not averse to learn other scripting Languages.

    Thanks a lot for your reply. I will surely post my findings.


  4. Hey,

    you should be able to use the script as a standalone analyzer – you need to be connected to the internet and have access to the Google APIs to get access to a lot of the charts (there is some basic charting functionality if you don’t have access to the APIs).

    However, you should be able to just load up a NAR file without having the script have direct access to the array. The only time the script should be querying the array at the moment is when you configure auto NAR download (it gets the serial number) and when its automatically downloading the NAR file.

    what were the filter settings when you recieved the error, perhaps I’m not dealing with a “special character” properly.

    happy to help out where I can



Comments are closed.