VMware {code} Community
vnshilpa
Contributor
Contributor

generating reports on the performance of the ESX server.

Hi all,

How do we generate Report on the Performance of the ESX server on weekly basis based on CPU, DISK, MEMEORY,NETWORK using VI SDK?

Where is the performance related data of the ESX server stored for the VI Client to pop up the Performance graphs(ie, the source data for the graphs)?

Which database is used in the VC? And how do i connect the database to the VC? Is there any internal database used in VC?

Regards,

SHILPA

0 Kudos
4 Replies
lamw
Community Manager
Community Manager

vCenter will aggregate the performance data from all the host(s) and then store it in it's VCDB. Going to the VCDB is one method, but you could also query this performance data from each of the host as vCenter does.

Take a look at viperformance.pl which is part of the VI Perl Toolkit: http://www.vmware.com/support/developer/viperltoolkit/viperl15/doc/viperformance.html

You can dump the data out on a given interval and then generate your own reports.

With regards to your VCDB, depending if you've configured a local db or external db, you just need to create a RO account (in my opinion) and look at the schema to extract the data of interest. The VCDB, last I check was not too bad to eyeball and the tables have all been named to what they hold. Again, if you write a script to query this information out and schema changes from release to release, you'll need to update your SQL queries. It's probably best you go through the VI API and compatibility will hold across releases or as much as possible.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at:

If you find this information useful, please award points for "correct" or "helpful".

0 Kudos
vnshilpa
Contributor
Contributor

Hi William,

Thanks for the reply.and this link for the script will help me out i think.

As told,The VC aggregates the performance data,but is this stored in the ESX server itself? or directly is the VC so intelligent to access the performance related data from each ESX servers connected to it.

could you please let me know what is RO account? To add i am using SDK API's to talk to the ESX server.

Regards,

SHILPA

0 Kudos
lamw
Community Manager
Community Manager

Yes, vCenter aggregates the perf data from each of the host(s), this data is available from each host as I've stated before.

Please take a look at viperformance.pl script to get an idea of how this is being done, you may also want to take a look at these documents regarding extracting perf data using the VI SDK: http://communities.vmware.com/docs/DOC-9840

RO = read-only, you should not be using the primary account that vCenter was setup with, probably best to either create or have a DBA setup a read-only account so you won't be able to make any modifications to the db, this assume you're going the VCDB route.

=========================================================================

William Lam

VMware vExpert 2009

VMware ESX/ESXi scripts and resources at:

If you find this information useful, please award points for "correct" or "helpful".

0 Kudos
vnshilpa
Contributor
Contributor

Thank you:)

0 Kudos