1-Click Capacity Planning vCOps Dashboard – Part 2

XMLIn the first part for this series I covered some of the super metrics needed for pulling out ESXi Cluster capacity planning data in vCOps. In this part I would like to show you how to work with vCOps interaction mode XML files. Out-of-the-box, vCOps delivered with two defaults “interaction mode” XML files – sample.xml and sampleScoreboard.xml. Currently, only 3 widgets can leverage those XML files – “Metric Graph”, “Generic Scoreboard” and “Metric SparkLines”. In order to start working with vCOps XMLs using WinSCP, login to vCOps UI VM with “admin” account and navigate to the following path where you will find the two XML files:

01. WinSCP

 /usr/lib/vmware-vCops/tomcat-enterprise/webapps/vCops-custom/WEB-INF/classes/resources/reskndmetrics/

Make 4 copies out of the sampleScoreboard.xml file into your desktop (or a folder of your choosing), as those are the ones we will edit later on.

XML File Structure

Before we start editing the file, let’s understand its structure.

02. Original XML

  • AdapterKind – points from which vCOps adapter to select a resource. For example, in order to work with the built-in VMWARE adapter kind:

<AdapterKind adapterKindKey=”VMWARE“>

  • ResourceKind – points from which resource kind to select attributes keys. For example, in order to work with virtual machine attributes, select VirtualMachine

<ResourceKind resourceKindKey=”VirtualMachine“>

The metric line includes the following parameters:

  • Metric attrkey – This is a unique metric attribute key. Depends on the Resources Kind you are working with, this attribute key will change respectively.  
  • Label – Determines the label shows for the metric in the widget
  • unit + unit thresholds by color – Determines how the widget colors the data. This is only relevant to the “Generic Scoreboard” widget as the “Metric Graph” doesn’t show colors for the data. You need to fill it anyway so that any of the widgets will be able to read the XML they point to.

Retrieve metric attribute keys using a temporary “Health Status” Widget

There are two methods retrieve metric attribute key. For the purpose of this blog post I will be using the “Health Status” widget method. If you want to learn more about the other method using SQL query on the vCOps database, please open VMware vCenter Operations Manager Administration Guide (pg.92).

  1. Add a “Health Status” widget to a new temporary custom dashboard.
  2. On the right side, under the Metric section check the custom option. As a reminder, this is the metrics table from the first part of this blog post series. Red color represents OOTB metrics and green color represents Super Metrics.
  3. CPU

    Memory

    Storage

    Density and Deployment

    CPU Demand (%)

    Memory Usage (%)

    Cluster Datastores Used Space (GB)

    vCPU to pCPU Ratio

    Cluster Total CPU Capacity (GHz)

    Cluster Physical Memory Capacity (GB)

    Cluster Total Storage Throughput (KBps)

    VM to Host Ratio

    Cluster Total CPU Demand (GHz)

    Cluster Total Memory Usage (GB)

    Cluster Total IOPS

    Deployed VMs

     

    Cluster Datastores Total Capacity (GB)

     

    Cluster Datastores Used Space (%)

    Using the “Health Status” widget, our goal is to retrieve the OOTB metrics. The first attribute key we need is ESXi hosts “CPU Demand (%)” metric. Start by typing “cpu|dem” and notice how all matches attributes are starting to show. 03. Health Status widget 01

  4. Select the “cpu|demandPct” and copy the key to a temporary text file 04. cpudemandPct
  5. Now, it takes some “vCOps time” and practice to know what to look for and match the attribute keys to their metrics. My suggestion is for you to practice using the Operations > All Metrics screen in the vSphere UI.

I put together a table of OOTB metrics and their matching attribute keys needed for our capacity planning dashboard:

Metric

Attribute Key

CPU Demand (%)

cpu|demandPct

Memory Usage (%)

mem|host_usagePct

Cluster Datastores Used Space in GB

diskspace|used

Cluster Total Storage Usage (Throughput)

disk|usage_average

Cluster Total IOPS

disk|commandsAveraged_average

vCPU to pCPU Ratio

density|ratio|vcpu2pcpu

VM to Host Ratio

density|ratio|vm2host

Deployed VMs

deployed|countDistinct|vm

Editing the XML

Now that we have all the metrics attribute keys its time to add the data into the XML. Change the names of the XML copies you made earlier, each file will include metrics from different Resource Kinds.

  • CP_Cluster_CPU.xml
  • CP_Cluster_Mem.xml
  • CP_Cluster_Storage.xml
  • CP_Cluster_Density_Deployment.xml

For each XML file we need to include both the OOTB metrics and the Super Metrics created in part 1 for this series.

Edit each file according to the following example. Since we are using the XMLs in a “Metric Graph” widget the unit thresholds are less important here because in this kind of widget colors do not come into play.

CP_Cluster_CPU.xml

05. CP_Cluster_CPU

Two things to notice here:

  1. Don’t forget to change the resourceKindKey to “ClusterComputeResource”.
  2. Match the Super Metrics IDs to your environment. You can find the IDs in the Super Metrics Editor.

06. Super Metrics Editor

CP_Cluster_Mem.xml

07. CP_Cluster_Mem

CP_Cluster_Storage.xml

08. CP_Cluster_Storage

CP_Cluster_Density_Deployment.xml

09. CP_Cluster_Density_Deployment

After you’ve done with the XML files, copy all 4 to the same folder in the vCOps UI VM. Make sure you do this with vCOps “admin” account.

10. WinSCP with XML

In the last part for this series we will put everything we’ve done so far in the mix to create our capacity planning interactive dashboard. Stay tuned…

3 Comments

  1. Thank you so much for sharing. This is awesome work. I find this much more useful than the default CapIQ reports.

    A quick question…
    In your table of OOTB metrics you use:
    storage|usage_average
    storage|commandsAveraged_average

    But in your screenshot for CP_Cluster_Storage.xml you use:
    disk|usage_average
    disk|commandsAveraged_average

    Which metric do you actually use? I was not able to get IOPS to display with “storage|commandsAveraged_average”

    Thanks again for your work on this!

    • Thank you for your comments!
      I just noticed that there is a mistake in my table. The metrics are as follow:
      Cluster Total IOPS – disk|commandsAveraged_average
      Cluster Total Storage Usage (Throughput) – disk|usage_average
      Fixed it

Leave a Reply