2010-09-30 8 views
12

Quiero poder exponer dinámicamente varias horas y contar las métricas desde mis aplicaciones. Perf4j funciona bastante bien para los tiempos, pero no permite contar de manera directa que yo sepa.Recopilación de métricas de aplicación en Java (opcionalmente .Net)

por ejemplo que puedo hacer

StopWatch dbWriteTime = new Log4JStopWatch("ServiceName:DBWrite"); 
dbWriteTime.start(); 
... execute DB stuff here 
dbWriteTime.stop(); 

y se puede establecer estas métricas para ser registrados en cualquier intervalo y lo hace un gran trabajo de eso. Pero a veces quiero hacer algo como

Metric metric = new Metric("ServiceName:OrdersPerRequest"); 
metric.put(50); 

que podría llamar el temporizador perf4j lib 50 veces, pero eso es un truco horrible y poco eficiente para conseguir mis métricas en el registro. ¿Alguien sabe una buena biblioteca de código abierto que puede hacer ambos tipos de métricas? Además, si pudiera supervisar los registros de medidas de salida y volcarlos en una base de datos centralizada, sería genial. Además, si conoces una buena interfaz web de código abierto para graficar y mostrar este tipo de datos, estaría muy interesado en eso. Parece que esto debe ser algo que mucha gente ha necesitado antes.

Respuesta

22

Me gusta la biblioteca metrics de Coda Hale la mejor, pero es posible que también desee consultar Java Simon. Otras opciones incluyen stajistics, JAMon y parfait.

+0

Tengo esta pregunta primitiva de por qué tenemos que utilizar las bibliotecas para medir estos? ¿Cómo difiere el uso de un contador de una biblioteca de usar una variable entera e incrementarla? – mayooran

Cuestiones relacionadas