Idera nSoftware Compellent

Get-GoogleChart


posted by Richard Giles
12-04-2009

Downloads: 173
File size: 2.1kB
Views: 730

Embed
Get-GoogleChart
  1. ## ===================================================================== 
  2. ## Title       : Get-GoogleChart 
  3. ## Description : Example of creating a chart from data using Google Chart API 
  4. ## Author      : Idera 
  5. ## Date        : 10/15/2009 
  6. ## Input       :  
  7. ## Output      : Chart 
  8. ## Usage       : PS> .\Get-GoogleChart 
  9. ## Tag         : Google Chart 
  10. ## Attributed  : Jabob Bindslet 
  11. ##               http://mspowershell.blogspot.com/2008/01/google-chart-api-powershell.html 
  12. ## Change log  :  
  13. ## =====================================================================  
  14.  
  15. function DownloadAndShowImage ($url) { 
  16.     $filename = $home + "\chart.png" 
  17.     $webClient = new-object System.Net.WebClient 
  18.     $webClient.Headers.Add("user-agent", "Idera PowerShellPlus"
  19.     $Webclient.DownloadFile($url, $filename
  20.     Invoke-Item $filename 
  21.  
  22. function simpleEncoding ($valueArray, $labelArray, $size, [switch] $chart3D) { 
  23.     $simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' 
  24.     if ($chart3D) {$chartType = "p3"} else {$chartType ="p"
  25.     $total =
  26.     foreach ($value in $valueArray) { 
  27.         $total = $total + $value 
  28.     
  29.     for ($i = 0;$i -lt $valueArray.length;$i++) { 
  30.         $relativeValue = ($valueArray[$i] / $total)*62 
  31.         $relativeValue = [math]::round($relativeValue
  32.         $encodingValue = $simpleEncoding[$relativeValue
  33.         $chartData = $chartData + "" + $encodingValue 
  34.     }     
  35.     $chartLabel = [string]::join("|",$labelArray
  36.     Write-Output "http://chart.apis.google.com/chart?chtt=Running Process CPU Usage&cht=$chartType&chd=s:$chartdata&chs=$size&chl=$chartLabel" 
  37.  
  38. function GetProcessArray() { 
  39.     $ListOfProcs = Get-Process | Sort-Object CPU -desc | Select-Object CPU, ProcessName -First 10 
  40.     $ListOfProcs | ForEach-Object
  41.         $ProcName = $ProcName + "," + $_.ProcessName 
  42.         $ProcUsage = $ProcUsage + "," + $_.CPU 
  43.     
  44.     Write-Output (($ProcName.trimStart(",")).split(","), ($ProcUsage.trimStart(",")).split(",")) 
  45.  
  46. $data = GetProcessArray 
  47. $url = simpleEncoding $data[1] $data[0] "700x350" -chart3D 
  48. DownloadAndShowImage $url 
Filed under:
Demonstrates using Google Chart web services to create a chart image that can be displayed locally.

Comments

Aleksandar wrote re: Get-GoogleChart
on 12-04-2009 11:29 AM

Excellent.

Andrew Tearle wrote re: Get-GoogleChart
on 12-23-2009 8:59 PM

Excellent. Happy Xmas.

Copyright 2010 PowerShell.com. All rights reserved.