Building a vROps super metric to show CMDS/s for a custom group.

Storage remains one of the largest bottlenecks in today’s virtualized environments. Even with the improved performance over our old time friend, the spinning rust provided by Solid State Drives (SSD) and Non-Volatile Memory (NVMe), we must stay ever vigilant to ensure consistent performance to our consumers. The load we place on our storage is typically measured in input/output operations per second (IOPS), and commands per second (CMDS/s). The main difference between IOPS and CMDS/s is that CMDS/s includes any SCSI commands such as the awesome sounding atomic test-and-set!

One common way to measure these metrics is to use ESXTOP. This lets us see how demanding we are on our disks from both the overall host level…


And at the individual virtual machine level.

This is such a great utility for troubleshooting host or VM performance issues, but you can only run it on one host which is limiting. What if you want to take a look at an entire cluster? Enter vRealize Operations Manager!



This is already some incredibly powerful stuff! Not only does vROps let us look at the metrics for an entire cluster, but we can also visualize how it’s changed over time! What more could you want?

How about custom groups?

Cool question, bro! Custom groups may be used if you’re trying to get a handle on how much a group of VM’s, such as a distributed application is demanding on your storage. The downside, however, is that a custom group doesn’t have I/O metrics. Bummer!!




This sounds like a job for Super Metric!

Super metrics are nothing to be scared of. In fact, they’re super simple and super powerful. Super metrics let us perform mathematical functions on multiple metrics such as calculating the average of something. However, here we’re going to calculate the sum of the total number of CMDS/s for a group of virtual machines.

To create our super metric, open the Administration menu in vROps, then expand Configuration and select Super Metrics. Then click on the green plus sign to create our new metric.

This will bring up the manage super metric screen where we will configure our super metric. Start off by giving your super metric a super cool name!

Next, we need to select the sum function.

Then select the open parenthesis.

Pick the vCenter Adapter and Virtual Machine object type.


Now, double-click the Commands Per Second metric located under the Virtual Disk attribute type.

Your formula should now be sum(${adaptertype=VMWARE, objecttype=VirtualMachine, attribute=virtualDisk|commandsAveraged_average, depth=1}

Close the formula by typing or picking the close parenthesis.


Let’s take a moment to talk about depth. Depth represents the number of levels between the selected object and the metric’s object. For example, if we were to select a host cluster and we wanted to view the sum of CPU demand across all virtual machines in that cluster, the depth would be equal to two. That’s because virtual machines are located two layers below the cluster (host cluster, host system, virtual machine). In this case, my custom group is made up of virtual machines, so the depth can remain at 1.

Now, if you want to test your super metric, you can click on the visualize button

This is a great way to test your super metric before saving it!


Once you save your new super metric, select an object type.



In this example, I’ll select Container -> Department as the object type. Click select, and you’re done, right? Well, not exactly. Check out part two where we’ll enable our super metric via policies.


Matt Bradford

One Comment

  1. so thanks
    But want to know why we need supermetric for CMD/S Because I think most of time we need
    individual virtual machine level. and we can see that on each host
    Is that correct or not ?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.