viernes, 24 de agosto de 2012

Páginas PageCatalog, ServiceStatus e HibernateStatistics de Tapestry

Apache Tapestry
Como ya he comentado en alguna ocasión anterior una de las buenas características de Tapestry es la buena información que dá cuando algo va mal con la página de Informe de error (Exception Report). También podemos obtener un montón de trazas (I, II) para conocer que es lo que está haciendo internamente en cada momento y que ayuda a resolver los problemas cuando los hay más rápidamente.

Otra buena fuente de información además de la página de un informe de error y el sistema de trazas están las páginas incluidas en el propio framework (builtin) PageCatalog, ServiceStatus y la página de estadísticas de Hibernate.

La página PageCatalog permite monitorizar el estado de las páginas de la aplicación, cuantas ha sido cargadas, que idiomas se están usando, cuantas veces se han usado, cuanto tiempo han tardado en construirse, cuantos componentes tienen y alguna cosa más. Otra cosa interesante acerca de esta página es que permite cargar todas las páginas de la aplicación permitiendo descubrir rápidamente si alguna contiene errores.


La página ServiceStatus muestra toda la lista de servicios encontrados en los diferentes módulos. Ahí podemos ver su identificativo, la interfaz que implementa, su ámbito y su estado. Para monitorizar una aplicación o descrubrir algún tipo extraño de error quizá nos resulte interesante conocer esta información.


Otra muy buena página que tapestry nos proporciona «out-of-the-box» cuando usamos Hibernate es la completa página de estadísticas del mismo. En ella obtendremos una extensa información sobre el estado de Hibernate que nos permiritá monitorizar, detectar posibles fuentes de problemas o puntos donde nuestra aplicación no so comporta de forma óptima y con ello ajustar las caches o nuestra aplicación para proporcionar un mayor rendimiento o disminuir el consumo de recursos. Los apartados de esta página son las estadísticas de Session Factory, Collections, Queries y Second Level Cache. El significado de los datos proporcionados puede consultarse en el enlace anterior. En las siguientes imágenes puede verse la página de una aplicación nada más iniciarse y después de un poco de uso, se aprecia como van aumentando los hits, misses, load count, etc...


Para obtener esta información es necesario modificar el archivo de configuración de Hibernate añadiendo la propiedad «hibernate.generate_statistics» con valor «true».

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">    
<hibernate-configuration>
 <session-factory>
    ...
    <property name="hibernate.generate_statistics">true</property>    
  </session-factory>
</hibernate-configuration>

Estas páginas son únicamente accesibles por defecto desde la máquina local (127.0.0.1) y en el modo desarrollo por seguridad.

Referencia:
Documentación sobre Apache Tapestry
http://tapestry.apache.org/service-status.html