Monitorare un sito di SharePoint con Application InsightsMonitor a SharePoint site with Application Insights

Azure Application Insights consente di monitorare disponibilità, prestazioni e utilizzo delle app.Azure Application Insights monitors the availability, performance and usage of your apps. Di seguito verrà illustrato come impostarlo per un sito di SharePoint.Here you'll learn how to set it up for a SharePoint site.

Creare una risorsa Application InsightsCreate an Application Insights resource

Nel portale di Azurecreare una nuova risorsa di Application Insights.In the Azure portal, create a new Application Insights resource. Scegliere ASP.NET come tipo di applicazione.Choose ASP.NET as the application type.

Fare clic su Proprietà, selezionare il tasto e premere CTRL+C

Viene visualizzato un pannello che mostra le prestazioni e i dati di utilizzo relativi all'app.The blade that opens is the place where you'll see performance and usage data about your app. Per visualizzare di nuovo questo pannello al successivo accesso ad Azure, nella schermata Start dovrebbe venire visualizzato un riquadro per l'app.To get back to it next time you login to Azure, you should find a tile for it on the start screen. In alternativa, fare clic su Sfoglia per cercarla.Alternatively click Browse to find it.

Aggiungere lo script alle pagine WebAdd our script to your web pages

In Avvio rapido ottenere lo script per le pagine Web:In Quick Start, get the script for web pages:

Inserire lo script immediatamente prima del tag </head> di ogni pagina di cui si vuole tenere traccia. Se il sito Web presenta una pagina master, è possibile inserire lo script in tale posizione.Insert the script just before the </head> tag of every page you want to track. If your website has a master page, you can put the script there. Ad esempio, in un progetto ASP.NET MVC inserire lo script in View\Shared_Layout.cshtml.For example, in an ASP.NET MVC project, you'd put it in View\Shared_Layout.cshtml

Lo script contiene la chiave di strumentazione che indirizza i dati di telemetria alla risorsa di Application Insights.The script contains the instrumentation key that directs the telemetry to your Application Insights resource.

Aggiungere il codice alle pagine del sitoAdd the code to your site pages

Nella pagina masterOn the master page

Se è possibile modificare la pagina master del sito, che fornisce il monitoraggio per ogni pagina del sito.If you can edit the site's master page, that will provide monitoring for every page in the site.

Consultare la pagina master e modificarla mediante SharePoint Designer o un altro editor.Check out the master page and edit it using SharePoint Designer or any other editor.

Aggiungere il codice appena prima del tag .Add the code just before the tag.

oppure nelle singole pagineOr on individual pages

Per monitorare un set limitato di pagine, aggiungere lo script separatamente a ogni pagina.To monitor a limited set of pages, add the script separately to each page.

Inserire una Web part e incorporarvi il frammento di codice.Insert a web part and embed the code snippet in it.

Visualizza i dati sull'appView data about your app

Ridistribuire l'app.Redeploy your app.

Tornare al pannello dell'applicazione nel portale di Azure.Return to your application blade in the Azure portal.

I primi eventi verranno visualizzati nella ricerca.The first events will appear in Search.

Se si prevedono più dati, fare clic su Aggiorna dopo pochi secondi.Click Refresh after a few seconds if you're expecting more data.

Dal pannello Panoramica fare clic su Analisi di utilizzo per vedere i grafici di utenti, sessioni e visualizzazioni di pagina:From the overview blade, click Usage analytics to see to charts of users, sessions and page views:

Fare clic su qualsiasi grafico per vedere maggiori dettagli, ad esempio le visualizzazioni di pagina:Click any chart to see more details - for example Page Views:

Oppure gli utenti:Or Users:

Acquisizione dell'ID utenteCapturing User Id

Il frammento di codice della pagina Web standard non acquisisce l'ID utente da SharePoint. Per l'acquisizione è necessario eseguire una piccola modifica.The standard web page code snippet doesn't capture the user id from SharePoint, but you can do that with a small modification.

  1. Copiare la chiave di strumentazione dell'app dall'elenco a discesa Informazioni di base in Application Insights.Copy your app's instrumentation key from the Essentials drop-down in Application Insights.

  2. Sostituire la chiave di strumentazione per "XXXX" nel frammento di codice riportato di seguito.Substitute the instrumentation key for 'XXXX' in the snippet below.

  3. Incorporare lo script nell'app di SharePoint anziché il frammento di codice ottenuto dal portale.Embed the script in your SharePoint app instead of the snippet you get from the portal.


<SharePoint:ScriptLink ID="ScriptLink1" name="SP.js" runat="server" localizable="false" loadafterui="true" /> 
<SharePoint:ScriptLink ID="ScriptLink2" name="SP.UserProfiles.js" runat="server" localizable="false" loadafterui="true" /> 

<script type="text/javascript"> 
var personProperties; 

// Ensure that the SP.UserProfiles.js file is loaded before the custom code runs. 
SP.SOD.executeOrDelayUntilScriptLoaded(getUserProperties, 'SP.UserProfiles.js'); 

function getUserProperties() { 
    // Get the current client context and PeopleManager instance. 
    var clientContext = new SP.ClientContext.get_current(); 
    var peopleManager = new SP.UserProfiles.PeopleManager(clientContext); 

    // Get user properties for the target user. 
    // To get the PersonProperties object for the current user, use the 
    // getMyProperties method. 

    personProperties = peopleManager.getMyProperties(); 

    // Load the PersonProperties object and send the request. 
    clientContext.load(personProperties); 
    clientContext.executeQueryAsync(onRequestSuccess, onRequestFail); 
} 

// This function runs if the executeQueryAsync call succeeds. 
function onRequestSuccess() { 
var appInsights=window.appInsights||function(config){
function s(config){t[config]=function(){var i=arguments;t.queue.push(function(){t[config].apply(t,i)})}}var t={config:config},r=document,f=window,e="script",o=r.createElement(e),i,u;for(o.src=config.url||"//az416426.vo.msecnd.net/scripts/a/ai.0.js",r.getElementsByTagName(e)[0].parentNode.appendChild(o),t.cookie=r.cookie,t.queue=[],i=["Event","Exception","Metric","PageView","Trace"];i.length;)s("track"+i.pop());return config.disableExceptionTracking||(i="onerror",s("_"+i),u=f[i],f[i]=function(config,r,f,e,o){var s=u&&u(config,r,f,e,o);return s!==!0&&t["_"+i](config,r,f,e,o),s}),t
    }({
        instrumentationKey:"XXXX"
    });
    window.appInsights=appInsights;
    appInsights.trackPageView(document.title,window.location.href, {User: personProperties.get_displayName()});
} 

// This function runs if the executeQueryAsync call fails. 
function onRequestFail(sender, args) { 
} 
</script> 

Passaggi successiviNext Steps