Recently, a customer asked me how they could get performance data from their Symmetrix array into Graphite, their metrics graphing tool of choice.
I originally went straight to my old standby of 'symstat', which is good, but doesn't have an easy-to-parse output. Unlike many other SYMCLI commands, it doesn't have an XML output, so it becomes quite an exercise to parse the data. Nontheless, I did it, and you can find the file here:
However, I decided I'd rather use the newly-available Unisphere for VMAX REST API. I found some interesting things. You'll need Unisphere for VMAX 1.5.1 or later to use this.
- While we call this a REST API, its a lot closer to a SOAP API. Oh well.
- The Programmer's Guide is here: http://bit.ly/Y6BvO9
- The XSD and sample Java can be found here: https://download.emc.com/downloads/DL46151_Unisphere-for-VMAX-REST-API-1.5.1.zip
- Its pretty fast.
- It supports XML or JSON. Kinda nice. Python does JSON serialization/deserialization very well, so I went that route.
Without further ado, here is a script that pulls the total system IOPs from the Symmetrix and pushes it into Carbon/Graphite using the MetricLineReceiver method.