2012-09-20 39 views
5

He descargado Sigar API (http://support.hyperic.com/display/SIGAR/Home) y me gustaría utilizarlo en un proyecto para obtener información sobre los diferentes procesos que se están ejecutando.Sigar API para JAVA (necesita una guía)

Mi problema es que realmente no puedo encontrar algunos fragmentos de código útiles para aprender y el javadoc de su sitio web no es de mucha ayuda, porque no sé lo que debería estar buscando.

¿Tiene alguna idea en la que pueda encontrar más información?

+1

Solía ​​SIGAR antes, y me pareció bastante fácil. ¿Puedes especificar exactamente lo que estás buscando? La página de doc de PTQL combina con javadoc me parece un buen comienzo. –

+0

Entonces, como punto de partida, necesito la información sobre el uso del proccessor/memoria para un determinado proceso, como explorer.exe (ejemplo). – CosminO

+1

Esto es una especie de suposición, por lo que no lo publicaré como respuesta; Creo que acaba de hacer ProcMem pm = new ProcMem(); pm.gather (sigar, suPid); pm.getsize(). Analógico para la CPU con ProcTime. Puede usar ProcessFinder para encontrar un pid de una expresión PTQL. –

Respuesta

8

Para encontrar el pid (que es necesario para obtener información sobre un determinado proceso), puede utilizar un ProcessFinder. El método para encontrar un único proceso pid es findSingleProcess(String expression). Ejemplo:

Sigar sigar=new Sigar(); 
    ProcessFinder find=new ProcessFinder(sigar); 
    long pid=find.findSingleProcess("Exe.Name.ct=explorer"); 
    ProcMem memory=new ProcMem(); 
    memory.gather(sigar, pid); 
    System.out.println(Long.toString(memory.getSize())); 

La sintaxis de la expresión es la siguiente:

Class.Attribute.operator=value 

Dónde:

Class is the name of the Sigar class minus the Proc prefix. 
Attribute is an attribute of the given Class, index into an array or key in a Map class. 
operator is one of the following for String values: 
eq - Equal to value 
ne - Not Equal to value 
ew - Ends with value 
sw - Starts with value 
ct - Contains value (substring) 
re - Regular expression value matches 
operator is one of the following for numeric values: 
eq - Equal to value 
ne - Not Equal to value 
gt - Greater than value 
ge - Greater than or equal value 
lt - Less than value 
le - Less than or equal value 

Más información aquí: http://support.hyperic.com/display/SIGAR/PTQL

+1

Estoy tratando de usar 'findSingleProcess (" Exe.Name.ct = explorer ");' como dices y recibo este error 'org.hyperic.sigar.SigarException: Query no concuerda con ningún proceso'. Y el proceso 'explorer.exe' se está ejecutando como puedo ver en el administrador de tareas. – Alvaro

+0

¿qué SO estás usando? – CosminO

+0

Estoy usando Windows 7. – Alvaro

0

En su último paquete, que dan una gran cantidad de ejemplos de uso bajo bindings\java\examples. Échales un vistazo.

1

Si está utilizando Windows 7 intentar hacer algo

likefindSingleProcess("State.Name.ct=explorer"); 
Cuestiones relacionadas