Links zu den Foren
   
PowerShell Anwendergruppe Forum
 
  Forum   Tutorials  Basisfunktionen  Performance Counters auslesen
Previous Previous
 
Next Disabled
New Post 11/14/2011 3:11 PM
  linus
2 posts
No Ranking


Performance Counters auslesen  (Germany)
Modified By linus  on 11/14/2011 4:12:13 PM)

Hallo zusammen,

ich versuche im Moment mit Powershell einige Performance Counters auszulesen und die möchte ich dann im zweiten Schritt in ne RRDTool DB einlesen, damit ein paar Graphen hinten raus fliegen.

 

Allerdings scheinen mir die Zeilen Code ziemlich lange, um "nur" den Wert der CPU Usage zu ermitteln:

 

$cpu = (get-counter "\Processor(_Total)\% Processor Time").CounterSamples | select-Object -Property CookedValue
Write-Output $cpu.CookedValue

 

Ich hatte eigentlich gehofft das Ganze ungefähr so ermitteln zu könne, aber das klappt leider nicht:

 

Write-Output (get-counter "\Processor(_Total)\% Processor Time").CounterSamples.CookedValue

 

Jemand ne Idee, was ich da falsch mache?

Hat das schon jemand gemacht? Hat mir jemand Beispielskripte für get-counter + RRDTool?

Danke und schöne Grüße

linus

 

 

 
New Post 11/15/2011 7:48 AM
  Klaus Salger
94 posts
www.axoquent.de
2nd Level Poster


Re: Performance Counters auslesen  (N/A)

Hallo Linus,

 

den aktuellen Wert bekommst Du ohne Umwege so:


((Get-Counter -Counter '\Processor(_Total)\% Processor Time').CounterSamples)[0].CookedValue

 

Wie in der Powershell üblich, kommt es halt immer darauf an, welche Objekte wie geliefert werden.
Get-Counter liefert ein Objekt vom Typ "PerformanceCounterSampleSet", das u.a. das Array "CounterSamples" enthält, dessen Elemente vom Typ "PerformanceCounterSample" sind. CookedValue ist eins von den Properties dieses Objekts, ein Double-Typ.


In diesem Fall hat das Array mit nur einem Wert, man kann es also direkt mit [0] adressieren. Wenn es mehrere wären, dann müsste man dafür sorgen, dass diese z.B. über eine Schleife ausgelesen werden oder passend über die Pipe übergeben werden.

 

Ciao
  Klaus
 

 
New Post 11/15/2011 8:33 AM
  linus
2 posts
No Ranking


Re: Performance Counters auslesen  (Germany)

 Klaus Salger schrieb

Wie in der Powershell üblich, kommt es halt immer darauf an, welche Objekte wie geliefert werden.

 

 

Hi Klaus,

 

vielen Dank dafür! Funktioniert.

 

Kann ich auch mit einem PS Befehl ermitteln, ob es sich um ein Array handelt? Denn leider war mir das nicht so bewußt, da ich ja auch mit folgendem Befehl die Werte angezeigt bekommen habe und nicht explizit [0] addressieren mußte...

(get-counter "\Processor(_Total)\% Processor Time").CounterSamples

 

Gruß linus

 
New Post 11/17/2011 7:27 AM
  Klaus Salger
94 posts
www.axoquent.de
2nd Level Poster


Re: Performance Counters auslesen  (N/A)

Hallo Linus,

 

um zu prüfen, um welchen Typ es sich bei einer Klasse oder einer Property handelt könntest Du in Deinem Fall das hier verwenden:

((Get-Counter -Counter '\Prozessor(_Total)\Prozessorzeit (%)').CounterSamples).gettype()

Die Methode gettype ist in jedem Objekt vorhanden. Damit bekommt man dann den Basistyp, nämlich "System.Array".

 

Viel komfortabler ist es allerdings an der Stelle den PowerGUI Script Editor zu verwenden.

Da weise ich das Ergebnis, das mich interessiert, einer Variablen zu und schaue mir die Variable dann in der entsprechenden Liste in PowerGUI näher an.

 

Ciao

  Klaus

 

 

 
Previous Previous
 
Next Disabled
  Forum   Tutorials  Basisfunktionen  Performance Counters auslesen