Flings
Apps and tools built by our engineers that are intended to be played with and explored.

esxplot

esxplot

Summary

Esxplot is a GUI-based tool that lets you explore the data collected by esxtop in batch mode. The program loads files of this data and presents it as a hierarchical tree where the values are selectable in the left panel of the tool, and graphs of the selected metrics are plotted in the right panel.

Esxplot allows you to “browse” the contents of these somewhat unwieldy files. You can plot up to 16 metrics on the same canvas and export the graphs to a gif, jpg, png or bmp file format. Subsets of the data can be worked with by using the regex query box which will produce a subtree that can be browsed or exported as a csv file which can, in turn, be loaded into esxplot, PERFMON or Excel.

The program is written in Python language and uses the platform-independent Window library, wxPython. Python programs written in wxPython can run unchanged on Linux, Windows, and OSX. In order to run esxplot you need to have Python 2.6.x or later installed (this program will not yet run under Python 3.x due to the lack of wxPython support).

System Requirements

The esxplot package comes with Windows and Ubuntu binaries as well as the Python source. The binaries will run without need of additional libraries or tools.  However, if you decide to use the Python script on MacOS or other Linux distro, you will need to verify the following:

  1. Ensure that you have Python 2.6 or greater (but not Python 3.x).
  2. Esxplot uses wxPython, which you can download and install from here.
  3. Esxplot also requires NumPy, available here.

Instructions

The program is written in Python language and uses the platform-independent Window library, wxPython. Python programs written in wxPython can run unchanged on Linux, Windows, and OSX. In order to run esxplot you need to have Python 2.6.x or later installed; however, this program will not yet run under Python 3.x due to the lack of wxPython support.

  • Installation for Linux/OS X:
    * There is a pre-built executable packaged with pyinstaller for ubuntu 9.04 in the bin directory. If this does not work for you, the Python source can be found in the src directory of this bundle.
    * Esxplot requires Python 2.6 or greater (but not Python 3.x). In addition, you need wxPython 2.8.10 or greater, which can be obtained at http://www.wxpython.org/download.php#binaries.
    * Some installations require NumPy which you can get at http://www.numpy.org/
    * Once these packages are installed, run the application by double-clicking on it.
  • Installation for Windows:
    * There is a pyinstaller executable in the bin directory (esxplot.exe). This was built on Windows XP SP2. In order to try out the program, navigate to the bin directory and double-click on the esxplot Python icon.

The installation includes some canned data for you to play with at data07042009-1.csv.

If you want to try this out on your own machines, from the service console try: esxtop -b -a -d 10 -n 60 > dataset.csv

Video

Change Log

Engineers

Geoffrey White

GSS
Add Comment

36 thoughts on “esxplot

  1. Pingback: RESXTOP and ESXTOP | Electric Monk

  2. Yashmeet

    Hi Geoffrey,
    This is an excellent tool that you have developed. Are there any plans to have a commandline options to get only a subset of counters (vm level and platform level).

    Thanks,
    Yashmeet

    Reply
  3. laksh

    i need a single line command to get the VM machine level view for CPU and memory, etc

    like esxtop – b …..

    pls help

    Reply
  4. Peter

    I am using esxplot to analyze resource monitoring results.
    Sometime the log file size becomes larger than 350 MB and esxplot gets stuck trying to load this log file.

    I really wish the next version comes out soon with this fix.

    Reply
  5. Eric

    First off, thanks for putting this tool out there. It’s a huge benefit.

    I have been looking everywhere for more info on the query searches in ESXPLOT. I can only figure out how to do single word queries without wildcards.

    Is there any information you can provide on the Query search: limitations and possibilities? Search capabilities including value ranges would be a huge benefit to this piece of software and would definitely take it to the next level.

    example searches:
    all instances of virtual machines with commands/sec above 500
    naa devices with a “average Driver MilliSec/Command” latency above 50

    Thanks again for putting this software out there.

    - Eric

    Reply
    1. Geoff White

      The query search capabilities for the current version of esxplot are only limited to regex expressions that match the label names of the column metrics, It uses the standard “re” package in Python…

      http://docs.python.org/library/re.html

      The actual line that gets invoked is…


      try:
      regExObject = re.compile(
      self._raw(regExString.rstrip('\n')),
      re.IGNORECASE|re.VERBOSE)
      except:
      self.MyAlert("Unrecognizable Regular Expression!")
      return

      in MyFrame._applyQuery

      Note the invocation with the properties re.IGNORECASE|re.VERBOSE, which let you enter multiline expressions. However because of this, white space must be explicitly matched. I.e. “Cpu Ready” will match nothing, but “Cpu[ ]Ready” will return a query of all of the CPU ready metrics found in the run.

      esxplot 1.5 coming real soon (hopefully by Jan 1) I have added a WHERE clause so that you can say stuff like…

      Driver[ ]MilliSec\/Command(?#WHERE max > 50)

      Which will return a result set where any column that contains Driver MilliSec/Command in the heading AND has a column value that exceeds 50.

      the left side of the logical expression can be max, min, avg, and 90th

      This should help people looking for disk latency or CPU Ready spikes.

      Smart Cookies out there will recognize the (?#WHERE max > 50) as a regex comment and it is! It’s just that esxplot 1.5 and above will scan the value space of the metric and will return the column in the result set iff the logical expression is ever true. In older versions of esxplot, it’s simply a comment and is ignored.

      Hope this will help folks.

      Reply
  6. Shaun

    Hey Geoff, got esxplot running but have been tracing large (but very filtered) esxtop logs for a storage issues we have however the app just hangs forever when trying to open the traces, any ideas, new version will fix this?
    thx
    Shaun

    Reply
    1. Geoff White

      How large is your data set?
      The next version will address this, the program is actually falling down because of the tree-control widgets on the left. I’m implementing a more lazy approach to how they are displayed, which should give you more headroom. Should be out before Thanksgiving after I do some more vSphere 5 testing. I’m seeing some strange things in the graphs and I need to determine whether it is a bug in esxplot or a bug in what esxtop is reporting. It hard to reproduce and I have other tasks of higher priority, but stay tuned.

      Reply
  7. herco

    i run esxplot on 11.04 from source since it doesnt run the compiled binary. i use this for quite a while and things are working great.
    in the source there are several mentions of a 1.1 version. i was tinkering with the source but if there are plans for an update i’d like to know to prevent from doing things twice.

    Reply
  8. Pingback: VMware Debuts Lab Site, Shares New Tools | Virtualization.com

  9. sebastien brun

    Have you examples of regex for esxplot filtering ?

    I try to identify some problems for disk latency and queue depth / lun bottleneck

    Thank’s

    Bastian !!

    Reply
  10. Pingback: Virtualization Tools That Cost Nothing But Download Time | Linux

  11. Pingback: Tool of the Week #18 – esxplot | vGeek

  12. Kris F

    This all seems useful but as we move to ESXi, I question:
    1) Is it inline with VMware’s long term vision (i.e. why not resxplot)?
    2) Why not present this functionality through the Performance tab. Maybe create a new standard plugin to vCenter called “vAdvanced Host Performance”.

    Reply
  13. Pingback: ESXTOP Replay and VM-Support output– AKA ‘Pain Train’ | virtual insanity

  14. Pingback: VMware Flings « Brad's Blog

  15. Sachin Thatte

    I’m unable to run the binary on Windows XP, I get error loading python.dll. It looks like is looking for python26.dll.

    Thanks

    Reply
    1. Geoff White

      Sachin,
      The Binary is there as a convenience. it was linked with I believe Active State Python.
      You may have to at least install Python on your XP environment. I do know that some users don’t have to perform this step. Unfortunately I will not be putting many cycles into debugging this as I’m putting cycles into getting the successor to esxplot out the door.

      Good Luck

      Geoff White

      Reply
  16. Pingback: great tool 1: ESXPLOT - isp.sad.de

  17. Pingback: Great tool 1: ESXPLOT - isp.sad.de

  18. Pingback: Great tool: esxplot - isp.sad.de

  19. Pingback: VMware: esxtop auf Schlankheitskur

  20. Pingback: VMware LABS « DeinosCloud

  21. Pingback: Interpreting ESXTOP files with ESXPlot « WJPatton.com

  22. Pingback: VMware Labs « vm-support

    1. GeoffWhite

      The binary included was built using pyinstaller on Windows XP SP2, it seems that some people have had success with some versions of Windows 2003 servers and others don’t. You can try loading a python package from python.org and see if it then loads the required dll, otherwise you will also have to load wxPython and numpy and run from source. See the README file for more instructions.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>