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




VisualEsxtop is an enhanced version of resxtop and esxtop. VisualEsxtop can connect to VMware vCenter Server or ESX hosts, and display ESX server stats with a better user interface and more advanced features.


  1. Live connection to ESX host or vCenter Server
  2. Flexible way of batch output
  3. Load batch output and replay them
  4. Multiple windows to display different data at the same time
  5. Line chart for selected performance counters
  6. Flexible counter selection and filtering
  7. Embedded tooltip for counter description
  8. Color coding for important counters


System Requirements

You must have ESX 3.5 or above. Works with vCenter Server 4.0, 4.1, 5.0 and 5.1.  Make sure Java 1.6  is in the PATH.


  1. Download visualEsxtop_20150409.zip and unzip the file.
  2. Make sure Java 1.6  is in the PATH.
  3. Type export JAVA_OPTS=-Xmx2048m  if loading large amounts of data
  4. Run vtop.sh (linux) or vtop.bat (Windows)


Change Log

Bug Fixed:

  • Fixed color switching problem in chart tab
  • Fixed display hanging problem in Java 7
  • Now works with ESXi 5.5.

Also see: How to Run VMware's Fling VisualEsxtop on Mac OS X



Priya Sethuraman

R&D: Performance

Zhelong Pan

R&D: Performance

Haiping Yang

R&D: Performance

Joanna Guan

R&D: Performance

Ruichen Ma

R&D: Performance
Add Feedback

124 thoughts on “VisualEsxtop

  1. Khoa Ngo

    Great tool! We are planning to use it to primarily monitor conflicts per second on datastore shared by esxi hosts
    Question: to connect to vcenter/esxi host, does the credential have to be in administrator role?

  2. Murali

    Trying to connect dorectly to host and Getting error “failed to convert value of type [ java,lang.string] to require….
    Please advice how to resolve this?

  3. Alex

    Hi – Please add support for Windows 10 Tech Preview. I am currently running Build 10122 and have installed Java 7 Update 80. Starts to load but freezes up. Works perfectly running same version of Java on a Server 2012 R2 system.

  4. raphael schitz

    Please correct vtop.bat where “export JAVA_OPTS=-Xmx1024m” should be “set JAVA_OPTS=-Xmx1024m”
    Thanks a lot for this awesome tool!

  5. Chris Styles

    So the answer is to add two “*”‘s to the beginning of the the counter line and it works.. Odd.
    **Virtual Disk(nfjnf)MBytes Read/sec

  6. Chris Styles

    Hi, Hope you can help. Trying to use the top filter to export a CSV of only the counters I am interested in, for later import to SQL.

    Using the command vtop-export-counter.bat to get the list of counters.. Taking these cut and paste into a file, each on a new line.

    Then using vtop-filter-stats.bat -d source file -l counters file -o output..

    Just gives me the column headings then “”,””,”” for all the counter values. No data.. Any idea what I am doing wrong? Could it be the format of the counters file?


  7. Rizul Khanna


    Can I see the list of VMs under each category just like I can see using esxtop? I see some weird parameters on the extreme left and I am willing to check for the VMs with High Ready Value. Please let me know how can I do that?

  8. Biju Krishnan

    I have loaded a ESX TOP output and selected some metrics to be graphed. The time interval is 5 secs.

    The color of the metrics keeps changing as the 5 sec interval progressed. This makes it impossible for me to track what the metrics are doing.

    How do I graph the entire time range at once?
    How do I stop the colors of the lines from changing every 5 secs?

  9. Jeff Carlson

    Great tool!

    It makes the vast amount of data provided by esxtop much easier to read and interpret.

    If I had a wish list, it would include:

    1) Include %vmwait metric

    2) The ability to aggregate like metrics (for example, vCPUs) into a single entity. There are times that i would like to see the total %RDY or average %RUN.

    3) The ability to list only VMs. I realize that I can filter for “vm.” to accomplish the same, but I’m lazy. :)

    Overall, great tool!!


  10. Roger

    downloaded the visualesxtop_20150126.zip file. when i extracted the file, i’m missing the visualextop.bat. is it hidden somewhere?

  11. Dennis Hückelheim

    I’ve an small issue with the charts. It seems that the internal index of the graph changes if there are more than 1 graph, because the colors of each graph change on each update. Also, if I mark an indicator so that the line gets bold, on each update a different graph is bold.

    I’m using it with ESXi 5.5

    Any idea?

  12. Rags

    I am running a fusion Windows 7 VM on my MAC. I have downloaded the file to my C-drive and it doesn’t pop-up the window. I have tried the same on my MAC and it works. Is there a settings I need to make on my Windows 7 VM? Please let me know. Thanks!

  13. Andi

    Same with me, connects just fine and looks fantastic for about 20 seconds before hanging. Concept is great!

    Windows 7 (x64), Java 1.7.0_51



    I am very happy to see the updated version works with ESXi 5.5.x and works with later version of Java (I am using Java 7_67).

  15. Anton Coleman

    I’m trying to run the visualEsxtop-filter-stats.bat and specify a different esxtop config, but it doesn’t take my syntaxt.

    $visualEsxtop-Filter-stats.bat -c “myfile” #this doesn’t work

    I just keep getting the reference help output. Something I’m doing wrong?

    1. ruichen

      Hi Anton,

      Have you generated counter list file?

      Following is a typical usage of visualEsxtop-filter-stats.bat:

      Given a batch output file, save selected stats into another file
      1. First list all the counters in a file, using ExportCounter. E.g. Let the esxtop batch output file be “esxtop.csv”, we want to list the counters in “counter.list”. We can use the following command:
      visualEsxtop-export-counter.bat -d esxtop.csv -o counter.list

      2. Select the counters in the counter list file. Each line in the file represents one counter instance. To choose one counter, Replace the first letter of that line with a non-space character (e.g “*”)

      3. Filter for those stats, using visualEsxtop-filter-stats.bat. E.g. We want to filter out the stats to “selected.csv”, we can use the following command:
      visualEsxtop-export-counter.bat -d esxtop.csv -l counter.list -o selected.csv

  16. Daniel Cristini

    Still having problems connecting to ESX 4.0 either directly or through vCenter, the error I get is:

    Connection failed: failed to convert value of type [java.lang.string] to required

    I’ve tried it with JRE 1.6 and 1.7 from WIndows and Linux

    Any Ideas on how to fix this?

  17. Mike Smith


    I’d like to know within VisualEsxtop and Disk World, what are the alerting number ranges.

    Like for DAVG, red, yellow, etc



    1. Ruichen Ma

      Hi Mike,
      For GAVG/cmd, DAVG/cmd, KAVG/cmd, QAVG/cmd, the ranges are;
      yellow (Warning): (25, 50]
      red (critical): >50

  18. Tim R

    You cannot connect *DIRECTLY* to a vCenter server – you can only connect *THROUGH* a vCenter server to a host (using the vCenter server credentials). To do so, you must enter the connection as follows:

    / -> which looks like this: myvcenterserver/myesxihost.mydomain.local

    I struggled with this for a bit before figuring it out.


    1. Tim R

      Gah! Stupid HTML…This is what it should look like:

      You cannot connect *DIRECTLY* to a vCenter server – you can only connect *THROUGH* a vCenter server to a host (using the vCenter server credentials). To do so, you must enter the connection as follows:

      {vCenter Server (IP or FQDN)}/{ESXi host FQDN}
      -> which looks like this: myvcenterserver/myesxihost.mydomain.local

      I struggled with this for a bit before figuring it out.


  19. Budman Mac

    Why Java??? Java is crap!!! This app craps out after 2 clicks constantly. Just rebuilt my workstation with fresh installs too…

  20. Nicolas Couture

    Hi All,

    I got to say that’s a real great tool. However I must mention a weird problem I ran into using that tool :

    When doing Storage vMotions on ESXi hosts (5.1 U2) and looking at “Disk World” stats on the ESXi host who was running the storage vmotion, the host will get disconnected from vCenter near the end of completion of the task (At the state where the ESXi host do some local disk I/O).

    This problem did not happened all the time. Most often the problem has been seen on VMs that were more than 100-150 GB.

    I was able to reproduce this error on 3 different machine types. All of my environment was checked and upgraded : last firmwares on servers, HDDs, SANs, and fiber switches. Also, most recent drivers were installed on ESXi hosts. Nothing did resolve my problem until I quit looking at my live “Disks stats” with visualEsxtop when doing storage vmotions.

    Note : I was using the “visualesxtop.zip” downloaded before march 2014. I know that after March 5th 2014, the “vtop-core.jar” was modified and one line was added in the included file “StatsParser.class”, who was about a certain “wPerDevQueueDepth”.



  21. Avi

    I’m succeeding connecting to a single esxi 5.5 host but fails to connect to a vCenter.
    I’m trying as it is written in the example . which port should i use : (443 ??).
    is it just a question of port or am i doing something wrong ??
    any one had luck with connecting to VC ?

    1. Ruichen Ma

      I’m able to connect to a VC, I used xx.xx.xx.xx/xx.xx.xx.xx, make sure you entered the credentials of your VC, not the host

  22. Alexandre Costa

    When i use Visualesxtop to connect to esx 4.1 systems it works well but when i use it to connect to esx 4.0 i get the following error:

    Connection failed: failed to convert value of type [java.lang.string] to required…

    Any hints how to fix this?

    Thank you.

    1. Daniel Cristini

      I am having the same problem as Alexandre, Visual ESXTop displays the same problem when connecting to ESX 4.0 hosts.

  23. Anil

    Looks like a great tool to monitor stats with advanced options but doesnt connect to ESxi5.5 any updates on the code,


  24. Francesco

    The tool is very useful indeed. Unfortunately, after upgrading to 5.5 we cannot use it any longer. Dear engineers, is there any plan about fixing the tool for the latest vsphere version?

  25. Stefan

    Cool tool!
    But it seems like statistics for our NFS datastores are not displayed. Any plans to implents those is future?

  26. suchit gawali

    please help with usage of application

    Make sure Java 1.6 is in the PATH. what does this means
    Type export JAVA_OPTS=-Xmx2048m if loading large amounts of data. not able to run this command
    Run visualEsxtop.sh (linux) or visualEsxtop.bat (Windows) bat file doesnt starts.

    its windows 2008 server os where am trying to run this program

  27. Peter

    All — if this helps — I’m on Win7 x64 and JAVA 7u45 — I’m finding that if I use FQDN names all around within the program instead of short names — then the program does not freeze and does allow me to use AD login credentials
    ie: vcenter.domain.com:443/esxihostname.domain.com


    I was able to connec to ESXi 5.1 hosts. Used to lockup every now and then but still was useful. After upgrading to 5.5, I get “Connection failed: /by zero”. I still have a few 5.1 host and I can connect to those fine.

  29. Travis

    Love the concept of this, however I’ve tested it out in Windows 7, Windows 2008R2, Windows2k3 x64 and all experience lockups, especially when trying to save to batch. Would definitely welcome any advice into making this more stable (I’ve tried adjusting java_opts). I’ve attempted to use both the x64 and x32 JDK (java version “1.7.0_40”)

  30. Jiri Viktorin

    Did anybody try that to connect to vSphere 5.5 esx host or vCenter? I am getting info, that it is not able to Connect:
    “Connection failed: / by zero”

    When I have try that before with vSphere 5.1 it works.


  31. Tommy Song

    What is the maximum snapshot supported when “Load All Batch Output”?
    I have a batch file of 3 hours with 5 seconds interval (2160 snapshots) and unable to load this data without run into java heap OOM. I have already allocate 4096M to java heap and still no go.

    Tommy S.

  32. Matt Gagliardi

    Does anyone have an idea of how many data points are supported? I seem to be seeing only a limited number of a longer-term capture. I’d like to widen the “domain” scope.

  33. Mike

    Could you provide more detail into the directions for running in Windows OS? What does “Make sure Java 1.6 is in the PATH” mean exactly?

    1. Matt Gagliardi

      Mike…it means that if you open a command prompt and type “java -version” you get a legit response :) Basically that your machine understands how to execute Java stuff. You should have no problem using Google to get Java into your path if you don’t get a response to the above command.

  34. Matt Gagliardi

    I’m trying to chart an ESXTOP trace that was conducted over a period of 4 hours w/5 sec samples. I can open the CSV alright but I only seem to be able to see the last ~15 minutes of data (loading the entire batch file, not replaying it). Is there some limitation on the number of data points the tool will allow?

  35. pkeating

    Works well on XP x64. Windows7 x64 hangs consistently.

    It would be great to make the graph page exportable to CSV, especially considering that the saved batch file native counters don’t have names that can be easily identify them for graphhing using other means.

    If I want to compare storage CMDS/s or GAVG/s I can’t find that in the saved counter set but I can graph them within the tool if I load the saved file. Is CMDS/s calculated? I’d love to know how some of these counters are accessed or named to get at them directly so I can greate more advanced graphs.

    Excellent job!!!

  36. Greg Smith

    The zip file for download comes up as corrupt or empty even though it shows 4.6 meg in size. Any suggestions?

    1. haiping

      1. download the zip.
      2. extract it.
      3. rename the visualEsxtop-1 file (without extension) to visualEsxtop-1.tar
      4. extract this one also.

  37. Marc Zimmermann


    Do you try to running it on Windows?
    1. download the zip.
    2. extract it.
    3. rename the visualEsxtop-1 file (without extension) to visualEsxtop-1.tar
    4. extract this one also.

    Now you see the batch scripts and the lib folder.

    have fun.

  38. john

    Application “locks” after a few seconds. I can see in vSphere client that visualesxtop is still requesting data every 5 seconds, but the application window never refreshes.

    Win7 32bit, Java 7 update 25. Tested connecting to ESXi 5.1 and 4.1 and got same results.

    Log file shows hundreds of lines with this type of error:
    2013-07-12 10:28:57,036 INFO impl.StatsSnapshot [pool-2-thread-8] – Queried for a non-existing object type: AdapterName
    2013-07-12 10:28:57,036 INFO impl.StatsSnapshot [pool-2-thread-8] – Queried for a non-existing object type: Nfs
    2013-07-12 10:28:57,036 INFO impl.StatsSnapshot [pool-2-thread-8] – Queried for a non-existing object type: MountName

  39. Ronen

    Using the local administrator user on the vCenter (which works on the vSphere Client) also fails with the same error.

  40. Ronen

    I’m able to connect directly to my ESX servers. When I’m trying to connect to my vCenter with my domain user,
    I’m receiving the following error: Connection failed: com.vmware.vtop.data.VTopDataException: Cannot find E…
    (I can’t expand the windows to see the entire error message).

  41. dch40

    Running on Win 7 x64, program hangs when clicking on ‘CPU’ tab. I can’t click on other tabs or do anything else. No error. In ‘vtop.log’ I keep getting “2013-07-09 07:23:40,749 INFO impl.StatsSnapshot [AWT-EventQueue-0] – Queried for a non-existing object type: Server” over and over – 3500 times per sec. Then get:

    2013-07-09 07:23:42,777 INFO impl.PerfObjectTypeManager [AWT-EventQueue-0] – No stats key is available
    java.util.MissingResourceException: Can’t find resource for bundle java.util.PropertyResourceBundle, key VCPU.SWAP_WAIT

    I re-launched program and tried the graphs tab. I was able to get one or two graph lines to appear but they did not update. Checked config and update was set to 5 sec.

    Tried clicking other tabs and was able to do so but info appears static. Shouldn’t it update?

    I think it needs some work.


    1. haiping

      this is weird, I meant to say vc-server-ip + / + host, but when it’s posted, only “/” is displayed.

  42. Ashok

    How do I connect to vCenter server..? Usage to connect to vcenter server says: “vCenter server:port/ESXi host”
    What is the port number that should be passed here..?

  43. Raymond

    I keep receiving error that Java is not recognized although i have set the path in environment variable…..

  44. Gabriele Sabbatino

    Seems interesting but as other it freezes on Win 7 x64 with Java 1.7. Tried to connect to an host it is ok, Vcenter is not working, shall I need to pass the port as well? Can I use Ad account to login?


    1. Matt

      I am having the same issue; how would you connect to a vCenter server? I’ve tried with AD credentials and a local login.

    2. haiping

      port number is optional(default 443), you can log in with just vc server and host name and administrator user and password.

  45. CristiCalin

    Would be nice to be able to remove a graph once it is added or separate graphs into different windows so you can look at them side by side and not overlap (in the case of different metrics).
    Cool tool though, works great on Linux (Ubuntu 13.04 x64).

  46. Bob

    Nice start, a bit rough around the edges. I’d like to eventually see this incorporated in the vCenter VIC/web client. No reason for vCenter performance charts and ESXtop to reside in different places.

    1. haiping

      Yeah, an effort is going on to add this as a VC NGC plugin. My windows testings were done on my desktop(win xp), I will make sure more testings are done on win7 etc. to make sure the hanging problem is resolved.

  47. gwatsontx

    Very exciting stuff! I’d look at EsxStop much more often with an app like this. Thank you!

    The app is freezing up on me as well. Win 7 (x64) with Java 1.7. Connected to just one ESXi host.

    Increasing the heap size did seem to extend the run time for a bit

  48. RamblingCookieMonster

    This freezes up for me as well. Windows 8 Enterprise w/ Java 7.0.170.

    Increasing the heap size seemed to help with stability. Even with increased heap size, I find when I do freeze, it is almost exclusively while looking through the file menus.

    Great idea and more convenient than working from SSH – looking forward to updates!

  49. Martin Palma

    Great tool!! It would be nice if the vm name would be displayed in the name column like in esxtop. Have you intention to maybe open source the code?

  50. Andi

    this fling is a great idea, but after 20 – 40 seconds the application hangs :-(
    No chance to keep it running on my system.

  51. Paul Petty

    Again the same result as previous comments. Works fine for a few seconds and then hangs. Looks good to start with though and certainly looking forward to seeing this fling again when the bug is fixed.

  52. Graeme Knights

    Same with me, connects just fine and looks fantastic for about 20 seconds before hanging. Fingers crossed that development continues as the concept is great!

    Windows 8 (x64), Java 1.7.0_25 (x86)

    1. haiping

      which option did you run? “file->Connect to live server”? I tried windows 7 x64, java version 1.7.0_25, kept it running for hours, was not able to repeat the hang, but I was able to get it to hang after I tried to connect to another esx host in addition to the one already connected. Did you use other options like “save to a batch file” ?

  53. Dmitry Smirnov

    Excellent product, but needs more work, I believe.
    With my cluster, it connects fine, works for about 15 to 20 seconds – then just hangs (you have to kill the process)
    Windows 7 x64, Java version 1.7.0_01
    Still, a great start, all the best of luck in developing this.


Leave a Reply

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