Mostrando entradas con la etiqueta Analytics. Mostrar todas las entradas
Mostrando entradas con la etiqueta Analytics. Mostrar todas las entradas

domingo, 3 de mayo de 2015

Application Insights para Sharepoint

Microsoft liberó hace unas semanas el producto “Application Insights” que permite agregar el tracking o ver la performance de sitios webs o apps.

Voy a mostrar un ejemplo de cómo integrarlo con Sharepoint (en este caso Sharepoint Online, pero se puede hacer lo mismo para Sharepoint on-premise mientras el cliente tenga acceso a internet)

Ingreso al portal nuevo de Azure (https://portal.azure.com) y creo un servicio de “Application Insights”. Seleccionar en el tipo de aplicación “Aplicación web ASP.NET”

image

image

image

Una vez creado el servicio hago click en el icono de inicio rápido.

image

Después selecciono “Obtener código para supervisar mis páginas webs”

image

Copio el código, y voy a una página de Sharepoint, agrego un web part de código (Script Editor).

image

Y pego el código

image

Después de un tiempo de navegar la página, vemos que ya tenemos resultados

image

image

image

image

Podemos agregar custom eventos, por ejemplo: Qué usuario estaba logueado

appInsights.trackEvent("UsuarioLogueado:christianazcon");

image

En la página lo veremos así

image

Para tomar el usuario loguedo en Sharepoint podemos usar la siguiente variable de javascript “_spPageContextInfo.userLoginName”. Esta variable no siempre está disponible, ya que depende del tipo de página y feature que se tiene habilitada. Por ello también podés usar REST o JSOM.

image

Al revisar en Azure cómo quedo el evento vemos esto.

image

Cómo podemos hacer para que se deploye en cada página de Sharepoint? Tenés dos opciones: agregar el código en la master page, o utilizar inject JavaScript (javascript embed). El último es más recomendado, ya que es más mantenible.

En otro post mostraré cómo podemos usar esta funcionalidad en nuestros servidores on-premise descargando el cliente para Windows Server

image

Más información:

http://azure.microsoft.com/en-us/documentation/articles/app-insights-web-track-usage/

Azure Services Bus (Events Hubs) con Sharepoint

Event Hubs es un servicio de Azure que permite agregar y procesar millones de eventos por segundo. Es muy útil para almacenar datos en tiempo real o de forma batch.

image

Hace un tiempo se liberó el sdk para trabajar vía Javascript (+ REST) con Event Hubs. https://github.com/ddobric/ServiceBusJavaScriptSdk

En este post lo usaremos para hacer un custom analytics para sitios de Sharepoint o para evaluar en tiempo real quién se conecta al sitio. Hace algunas semanas Microsoft libero Azure Insights para hacer el tacking del uso en sitios (http://azure.microsoft.com/en-us/services/application-insights/). La idea es mostrar cómo se podría hacer con Azure Event Hubs, y tener tu propio Azure Insights.

image

image

image

el sdk requiere algunos parámetros

var queuePath = "sharepointanalytics";
var ehClient = new EventHubClient(
            {
                'name': queuePath,
                'devicename': 'urlsitio', // es la especificación para “partition key”
                'namespace': "sharepointanalytics-ns",
                'sasKey': "gIAsGZEd3kObjQN9gvnx7wRjm3Hf97aBmFyXWbszBtQ",
                'sasKeyName': "RootManageSharedAccessKey",
                'timeOut': 10,
            });

‘queuePath’ es el nombre del Event Hub

image

'devicename' se usa cómo key de partición, ver el siguiente link: https://msdn.microsoft.com/en-us/library/azure/dn836025.aspx

'namespace': es el nombre del service bus

image

'sasKey': es el nombre de la policy de acceso del service bus, 'sasKeyName': es la primary key de la policy de acceso.

image

image

Ej: Endpoint=sb://sharepointanalytics-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=gIAsGZEd3kObjQN9gvnx7wRjm3Hf97aBmFyXWbszBtQ=

En el sdk, hay un archivo llamado EventHubSamples.html, lo edito y

image

Agrego el siguiente código html (lo importante en amarillo)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>  
    <title>Service Bus JavaScrcipt SDK QueueClient Test Page</title>

   <link rel="stylesheet" href="css/main.css" type="text/css" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"> </script>
    <script src="Scripts/servicebusjssdk-1.2.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {

           var queuePath = "sharepointanalytics";
            var ehClient = new EventHubClient(
            {
                'name': queuePath,
                'devicename': 'urlsitio', // This is by specification partition key.
                'namespace': "sharepointanalytics-ns",
                'sasKey': "gIAsGZEd3kObjQN9gvnx7wRjm3Hf97aBmFyXWbszBtQ=",
                'sasKeyName': "RootManageSharedAccessKey",
                'timeOut': 10,
            });

            $("#btnSend").click(function () {

                var eventBody = { "Horario": "22/02/2015 10:00 am", "Pagina": "Home.aspx", "sitio": "http://contoso.com", "usuario": "christianazcon"   };

                var msg = new EventData(eventBody);               

                ehClient.sendMessage(msg, function (messagingResult) {
                    $("#result").html(messagingResult.result);
                    $("#eventData").html(JSON.stringify(eventBody));
                });
            });

        });
    </script>
</head>
<body>
     <button id="btnSend">Send</button>
    <div class="message-wrapper">
                <p>Event Data:</p>
                <div id="eventData">
                </div><br />
                <p>Message Body:</p>
                <div id="result">
                </div><br />
      </div> <!-- END: .message-wrapper --></body>
</html>

En la página se ve así:

image

Presiono Send, me retorna “Sucess”

image

Ahora abro Service Bus explorer, https://code.msdn.microsoft.com/windowsazure/Service-Bus-Explorer-f2abca5a

Y veo que ya aparece el mensaje que envie

image

image

Ahora tendrás que revisar en que partición cayó el mensaje, ej: 5

image

Presiono Start

image

image

Cómo pueden ver, aparece el texto del mensaje.{"Horario":"22/02/2015 10:00 am","Pagina":"Home.aspx","sitio":"http://contoso.com","usuario":"christianazcon"}

Esto nos permite agregar un montón de eventos a las páginas mediante javascript y guardarlas en un Event Hub, y procesarlos a posteriori.

Por ejemplo para tomar el usuario logueado, puedo usar el siguiente script: https://lixuan0125.wordpress.com/2013/05/10/sharepoint-2013-get-current-user-loginname-using-jsom-rest/

Ej:

  • Eventos que realiza el usuario (donde hace click, cuanto tiempo está en cada página, etc)
  • Información de navegadores
  • etc

sábado, 2 de marzo de 2013

Links útiles #24 Sharepoint 2013

1-SkyDrive Pro

http://www.sharepointsharon.com/2013/02/an-overview-of-skydrive-pro/

2-User Permissions en MySite: restricciones de creación de uso de Mysite

http://christopherclementen.wordpress.com/2013/02/25/put-restrictions-on-mysite/

3-Cambios en el search de Sharepoint 2013

http://msdnrss.thecoderblogs.com/2013/03/changes-in-sharepoint-2013-search/

4-Data Explorer con Sharepoint 2013

http://www.spsdemo.com/blog/Lists/Posts/Post.aspx?List=c67861cd-a0d9-4ed8-9d9d-9b29652a516f&ID=371&Web=f74569c2-ae3f-42c6-a3fa-9f099dfaeb7f

5-Scripts útiles de Sharepoint 2013

SharePoint 2013: Use the Analytics namespace to log usage analytic events:

http://code.msdn.microsoft.com/SharePoint-2013-Use-the-bf5062a4

SharePoint 2013: Create and retrieve taxonomic metadata in apps for SharePoint

http://code.msdn.microsoft.com/SharePoint-2013-Create-and-1ebbdd36

SharePoint 2013: Implement live tile navigation for SharePoint lists

http://code.msdn.microsoft.com/SharePoint-2013-Implement-4dc68bf1

SharePoint 2013: Work with user profile properties in apps for SharePoint

http://code.msdn.microsoft.com/SharePoint-2013-Work-with-99d43c17

SharePoint 2013: Use SharePoint 2013 translation services from Word

http://code.msdn.microsoft.com/SharePoint-2013-Use-698b9cef

viernes, 22 de febrero de 2013

Tips Info #97 Sharepoint 2010

1-Indexar archivos grandes en Sharepoint 2010

En Sharepoint 2010 el crawl por default no indexa archivos más grandes que 16 MB. Se puede cambiar esta propiedad mediante el siguiente comando de powershell:

$dSize = Get-SPEnterpriseSearchServiceApplication;
$dSize.SetProperty("MaxDownloadSize", 32);
$dSize.Update();

Recuerde que deberá reiniciar el servicio de search: Restart-Service osearch14

2-Reducir el tamaño de la base de datos de logging (WSS_UsageApplication) en Sharepoint 2010

Por default la cantidad de días que se retiene la información es de 14 días. Se puede verificar con el siguiente comando de power shell: Get-SPUsageDefinition

Se puede reducir el tamaño de la base ejecutando el siguiente comando:

Set-SPUsageDefinition –Identity "Page Requests" -DaysRetained 3

Esto provocará que se reduzca el tamaño.

Una manera rápida de ejecutar el comando sobre todas las features es mediante el siguiente script:

$definicionUsage = Get-SPUsageDefinition

Foreach($def in $definicionUsage)

{

Set-SPUsageDefinition –Identity $def.Name –DaysRetained 3

}

Recuerde que deberá ejecutar los dos siguientes jobs para limpiar los datos históricos:

'Microsoft SharePoint Foundation Usage Data Import' y 'Microsoft SharePoint Foundation Usage Data Processing'.

3-Feature ‘Site Use Confirmation and Deletion’

Site Use Confirmation and Deletion

Puede acceder a esta feature desde Central Administration > Site Collections > Site Use Confirm and Deletion

Esta feature informa a los administradores del site collection sobre sites que no se actualizan.

Hay tres campos que juegan un papel importante en el proceso (tabla AllSites de la base de contenido del web application):

  • “DeadWebNotifyCount”
  • “CertificationDate”
  • “LastContentChange”

DeadWebNotifyCount indica las veces que se notifico al usuario. Si es cero, significa que la fecha de expiración se extendió.

CertificationDate informa cuando se verificó el site.

LastContentChange, indica cuando se modificó el site (un documento, una lista, cualquier contenido)

Para poder actualizar los emails que se envian lea este link: http://msdn.microsoft.com/en-us/library/aa979730(v=office.14).aspx

4-Scope para buscar sólo documentos de librerías en Sharepoint 2010

Una vez que se crea un scope, se debe agregar una regla de query.

image

5-Workflows no disponibles después de realizar el upgrade de Sharepoint 2007 a 2010

Después de realizar el upgrade de SharePoint 2007 de la base de datos a SharePoint 2010 se observa que los Approval workflows de 2007no están disponibles/visibles para usuarios para crear nuevos workflows.

Ejecuta los siguientes pasos para habilitar 2007 workflows después del upgrade a SharePoint 2010:

· Ir a Site Actions ->Site Settings->Site Collection Administration->Site collection features

· Activar ‘SharePoint 2007 Workflows’

· Remueve el valor ‘none’ en <AssociationCategories>none</AssociationCategories> desde los siguientes files

    -14\template\features\ReviewWorkflows\Reviewapproval.xml

    -14\template\features\ReviewWorkflows\ReviewFeedback.xml

    -14\template\features\SignatureWorkflow\Signatures.xml

· Asocia el Workflow, ir a una librería,Library Settings, Add a Workflow, Seleccionar legacy Workflow.

Recuerda realizar un backup de los tres archivos modificados.

lunes, 10 de diciembre de 2012

Links útiles #11 Sharepoint 2013

1-Google analytics para Sharepoint 2013

http://virtualizesharepoint.com/2012/12/04/google-analytics-for-sharepoint-2013-office-365/

2-Search Services mediante powersell en Sharepoint 2013

http://www.toddklindt.com/blog/Lists/Posts/Post.aspx?List=56f96349-3bb6-4087-94f4-7f95ff4ca81f&ID=378&Web=48e6fdd1-17db-4543-b2f9-6fc7185484fc

3-Cambios de la versión Sharepoint 2013 preview a la versión Sharepoint 2013

http://blogs.msdn.com/b/officeapps/archive/2012/11/05/important-developer-changes-from-office-and-sharepoint-2013-preview-to-office-and-sharepoint-2013.aspx

4-Site Policy en Sharepoint 2013

http://www.jrjlee.com/2012/12/enforcing-site-policy-selection-in.html

5-Cross Domains sharepoint 2013

http://blogs.msdn.com/b/officeapps/archive/2012/11/29/solving-cross-domain-problems-in-apps-for-sharepoint.aspx

6-Licencias en Sharepoint 2013

http://blogs.msdn.com/b/officeapps/archive/2012/11/09/licensing-your-apps-for-sharepoint.aspx

http://talbottcrowell.wordpress.com/2012/11/29/sharepoint-2013-using-claims-to-manage-licensing/

7-Apps en Sharepoint 2013

http://blogs.msdn.com/b/kaevans/archive/2012/11/27/creating-high-trust-sharepoint-apps-with-microsoft-office-developer-tools-for-visual-studio-2012-preview-2.aspx

http://sebastiantegel.wordpress.com/2012/11/29/sharepoint-apps-setup/

http://sharepointchick.com/archive/2012/07/29/setting-up-your-app-domain-for-sharepoint-2013.aspx

8-Kerberos en Sharepoint 2013

http://download.microsoft.com/download/B/B/F/BBF0C6F3-6E36-4979-8C43-DE165AD7AE34/SP2010%20Kerberos%20Guide.docx

Reporting Services: http://support.microsoft.com/kb/2723587

9-Web part Timeline y Project Sumary en Sharepoint 2013

http://www.learningsharepoint.com/2012/12/09/the-new-timeline-and-project-summary-webpart-in-sharepoint-2013/

10-Sign is as Diferente User en Sharepoint 2013

http://nickgrattan.wordpress.com/2012/07/23/sign-in-as-different-user-and-sharepoint-2013/