Monitorizando desarrollos en SharePoint: SPMonitoredScope, ULS y Developer Dashboard


Hola a todos,

Un tema importante cuando se desarrolla para SharePoint es todo lo relacionado con la monitorización del código desarrollado, para poder hacer seguimiento y el control de las excepciones que se producen en el mismo.

SharePoint nos da muchas herramientas para realizar estas tareas, hoy vamos a ver las que estoy utilizando yo en mis proyectos actualmente. Hace tiempo que he estado leyendo sobre ellas, pero no quería escribir hasta que no las hubiera probado y utilizado por mi mismo.

Developer Dashboard

El Developer Dashboard es una herramienta que aparece a partir de la versión de SharePoint 2010 para permitir, tanto a los administradores como desarrolladores de SharePoint, hacer seguimiento y monitorizar diferentes aspectos de la herramienta como pueden ser WebParts, eventos y llamadas a base de datos entre otra información de utilidad. El Developer Dashboard inicialmente está deshabilitado, aunque se puede activar o bien vía Modelo de objetos, PowerShell o stsadm.exe.

Os dejo unos enlaces sobre cómo activar el Developer Dashboard, y reproduzco cómo hacerlo vía PowerShell, para mí la forma más cómoda de hacerlo.

http://zimmergren.net/technical/sp-2010-developing-for-performance-part-1-developer-dashboard

http://sharepointgroup.wordpress.com/2012/05/04/enbl-sharepoint-developer-dashboard-with-powershell/

Para activarlo vía PowerShell haremos los siguiente

$dashboard = [Microsoft.SharePoint.Administration.SPWebService]::ContentService.DeveloperDashboardSettings;
$dashboard.DisplayLevel = “OnDemand”;
$dashboard.TraceEnabled = $true;
$dashboard.Update()

Hay otras dos posibilidades para la opción DisplayLevel: On, Off.

image_12

Esta es una captura de pantalla del Dashboard de SharePoint 2010, el de SharePoint 2013 incluye importantes mejoras, pero aún no he podido probarlo, porque no he tenido oportunidad, aunque hay un rediseño completo del dashboard y una mejora en la forma y cantidad de la información que se muestra.

SPMonitoredScope

La clase SPMonitoredScope nos va a permitir monitorizar partes del código desarrollado. Os dejo el enlace donde se describe esta clase.

http://msdn.microsoft.com/es-es/library/office/ff512758(v=office.14).aspx

El uso de SPMonitoredScope es muy sencillo, solo es necesario encapsular aquella parte del código propio desarrollado que queremos que sea monitorizado. Vamos a ver un ejemplo:

using(SPMonitoredScope scope = new SPMonitoredScope("Ejemplo1"))
{
      //Aquí el código a monitorizar
      SomethingToDo();
}

La información que se genera a partir de este código se puede consultar o bien en el Developer Dashboard o en el ULS (Unified Logging Service).

Unified Logging Service

Otro de los elementos que nos permite monitorizar lo que ocurre con nuestro código es a través del ULS (Unified Logging Service). Éste, proporciona un mecanismo eficaz para escribir información útil para identificar y ayudar en la solución de problemas durante el ciclo de vida de la aplicación. El ULS permite escribir eventos en el Log de SharePoint normalmente almacenado en la siguiente ruta “\14\LOGS\SERVER-YYYmmDD-ID.log”.

Desde el modelo de objetos del servidor podemos escribir en ese Log de manera que posteriormente podamos acceder al mismo y analizar lo que ha ocurrido. Voy a mostrar a continuación como podemos usar el ULS en SharePoint.

try
{
  //OwnCode
} 
catch (Exception ex) 
{
  SPDiagnosticsService.Local.WriteTrace(0, new SPDiagnosticsCategory("EXAMPLE", TraceSeverity.Unexpected, EventSeverity.Error), TraceSeverity.Unexpected, ex.Message, ex.StackTrace);
}

Os dejo un enlace donde podréis ver el significado de cada uno de los parámetros del método WriteTrace, aunque básicamente lo que estamos haciendo es escribir una entrada en el Log, con la categoría “EXAMPLE” de tipo Unexpected y con la información del mensaje de la excepción y la traza de la misma.

http://msdn.microsoft.com/es-es/library/microsoft.sharepoint.administration.spdiagnosticsservicebase.writetrace.aspx

En el siguiente artículo de la MSDN se puede ver una forma de crear una clase para encapsular el logging de errores y poder hacerlo de una forma más sencilla y elegante.

http://msdn.microsoft.com/en-us/library/office/gg512103(v=office.14).aspx

Para poder realizar una mejor visualización y análisis del ULS disponemos de la herramienta ULS Log Viewer, que podremos descargar de forma gratuita y usarla para un análisis de los log más sencilla y clara.

Y hasta aquí lo que quería comentar sobre el tema de monitorización y seguimiento de código en SharePoint, espero que sea de utilidad. Quizá un poco tarde para haber empezado a usarlo, pero como dicen, si la dicha es buena, siempre estamos a tiempo.

Un saludo.

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s