login vsi company logo login vsi company logo 250x40
header-01.jpg
  • Home
  • Blog
  • Login VSI
  • Cleaning up esxtop log files using PowerShell - Login VSI Tips and Tricks

Cleaning up esxtop log files using PowerShell - Login VSI Tips and Tricks

Cleaning up esxtop log files using PowerShell - Login VSI Tips and Tricks

Every now and then when doing large scale tests using Login VSI or collecting live performance data I use VMware's esxtop tool to give me a detailed insight to what’s going on at the host. While esxtop provides great insights, sometimes it’s just a little bit too much information. This got me thinking, how can I quickly sanitize the log file so it only contains information that is actually relevant for me at this moment?

And, of course, the first thing that comes to mind is a few lines of PowerShell. I simply import the csv file collected using esxtop and export it again containing only the columns of information I like. So let’s import the esxtop logfile using the Import-CSV command, select the data I like using select-object and throw it out again using export-csv.

cleaning up esxtop log files using powershell error

Hmmm, what’s happening here? This should have been a fairly straight forward. Analyzing it a bit further, I found out that this is because there is a comma ending every line.

cleaning up esxtop log files using powershell error comma

Luckily PowerShell allows me to fix that before I feed the content to import-csv. While experimenting, I figure at this point it’s probably best to create a simple script that does the following:

  • Point to the esxtop log that I would like to filter
  • Import the “broken” csv file
  • Remove the last character from every line
  • Import the “fixed” CSV file
  • Select the counters of my choice
    • *\Physical Cpu(_Total)\% Util Time
    • *\Physical Disk Adapter(vmhba0)\Commands/sec
    • *\Physical Disk Adapter(vmhba0)\Reads/sec
    • *\Physical Disk Adapter(vmhba0)\Writes/sec
  • Write it to a new file (export.csv)
  • Clean up
Write-Host Select file
$fd = New-Object system.windows.forms.openfiledialog
$fd.MultiSelect = $false
$fd.showdialog()
$fd.filenames
Write-Host Read file
$lines=@()
$text = Get-Content -Path $fd.filenames
$text | %{ $lines += $_.SubString(0,$_.Length-1) }
$FixedFilename = $fd.filenames -replace ".csv", ".fixed"
$FilteredFilename = $fd.filenames -replace ".csv", ".filtered"
Write-Host Write fixed logfile
Set-Content -Path $FixedFilename -Value $Lines
Write-Host Read fixed logfile
$csv = import-csv -path $FixedFilename
Write-Host Write filtered logfile
$csv | select-object "*\Physical Cpu(_Total)\% Util Time", "*\Physical Disk Adapter(vmhba0)\Commands/sec", "*\Physical Disk Adapter(vmhba0)\Reads/sec", "*\Physical Disk Adapter(vmhba0)\Writes/sec" | export-csv  export.csv -notypeinformation
Write-Host Delete temp files
remove-item $FixedFilename 

For those of you who have their regional settings setup in a way that Excel does not require the comma fix, that’s great! Otherwise you can now live knowing that your log files will be a lot smaller :-).

Also, make sure to read this blog about PowerShell.

About the author

Mark Plettenberg (@markplettenberg) is a product manager of Login VSI and has played a critical role in the development and growth of Login VSI. Ask Mark about motorcycle mechanics and breaking/repairing anything and everything that has a power plug.


Tags: How-to, Login VSI, VMware, Load Testing, Best Practices, Support, Scripts

What our customers are saying

Maarten Bruijnesteijn - PPG

"We are using Login VSI for hardware scaling. By testing the number of users that can run on our environment, we know the amount of hardware that we will need upfront. We also use Login VSI in our production acceptance process to test changes to the system to evaluate changes to the environment."

Maarten Bruijnesteijn, System Software Analyst at PPG Industries


Randy Groves - Teradici

"As the developer of the PCoIP protocol, we do a lot of our own internal benchmarking to make sure that we’re continuing to improve our protocol. But we can’t actually publish our internal benchmarks because everybody might think that the tests are biased. So when we want to publish results, we use Login VSI. That way, if a customer wants to repeat our results they can.”

Randy Groves, CTO at Teradici


Manoj Doshi - Aetna

"Login VSI gives you a true picture of performance in your environment, whether you’ve built it right or need to make changes. When you don’t have room for mistakes, Login VSI provides you with the confidence and assurance that the environment is going to work."

Manoj Doshi, Director - Client Technology Innovation at Aetna

Login VSI, Inc.

300 Tradecenter

Suite 3460
Woburn, MA 01801

Phone: +1 844 828 3693

Login VSI B.V.

De Entree 85
1101 BH Amsterdam
The Netherlands

Phone: +31 20 705 1200