Contatori delle prestazioni di sistema in Application InsightsSystem performance counters in Application Insights

Windows offre un'ampia gamma di contatori delle prestazioni, ad esempio su occupazione della CPU, memoria, disco e utilizzo di rete.Windows provides a wide variety of performance counters such as CPU occupancy, memory, disk, and network usage. È anche possibile definire contatori personalizzati.You can also define your own. Application Insights può mostrare questi contatori delle prestazioni se l'applicazione viene eseguita in IIS in un host locale o in una macchina virtuale a cui si ha accesso come amministratore.Application Insights can show these performance counters if your application is running under IIS on an on-premises host or virtual machine to which you have administrative access. I grafici indicano le risorse disponibili per l'applicazione live e possono aiutare a identificare un eventuale carico sbilanciato tra istanze del server.The charts indicate the resources available to your live application, and can help to identify unbalanced load between server instances.

I contatori delle prestazioni sono visualizzati nel pannello Server, che include una tabella segmentata in base all'istanza del server.Performance counters appear in the Servers blade, which includes a table that segments by server instance.

Contatori delle prestazioni segnalati in Application Insights

I contatori delle prestazioni non sono disponibili per App Web di Azure.(Performance counters aren't available for Azure Web Apps. Tuttavia, è possibile inviare i dati del servizio Diagnostica di Azure ad Application Insights.But you can send Azure Diagnostics to Application Insights.)

Visualizzare i contatoriView counters

Il pannello Server mostra un set predefinito di contatori delle prestazioni.The Servers blade shows a default set of performance counters.

Per visualizzare altri contatori, modificare i grafici nel pannello Server oppure aprire un altro riquadro Esplora metriche e aggiungere nuovi grafici.To see other counters, either edit the charts on the Servers blade, or open a new Metrics Explorer blade and add new charts.

I contatori disponibili sono elencati come metriche quando si modifica un grafico.The available counters are listed as metrics when you edit a chart.

Contatori delle prestazioni segnalati in Application Insights

Per visualizzare tutti i grafici più utili in un'unica posizione, creare un dashboard e aggiungervi i grafici.To see all your most useful charts in one place, create a dashboard and pin them to it.

Aggiungere contatoriAdd counters

Se il contatore delle prestazioni desiderato non appare nell'elenco delle metriche, significa che non viene raccolto da Application Insights SDK nel server Web.If the performance counter you want isn't shown in the list of metrics, that's because the Application Insights SDK isn't collecting it in your web server. È possibile configurare l'SDK a questo scopo.You can configure it to do so.

  1. È possibile identificare i contatori disponibili nel server usando questo comando di PowerShell nel server:Find out what counters are available in your server by using this PowerShell command at the server:

    Get-Counter -ListSet *

    Vedere Get-Counter.(See Get-Counter.)

  2. Aprire ApplicationInsights.config.Open ApplicationInsights.config.

    • Se Application Insights è stato aggiunto all'app durante lo sviluppo, modificare ApplicationInsights.config nel progetto e quindi distribuirlo di nuovo nei server.If you added Application Insights to your app during development, edit ApplicationInsights.config in your project, and then re-deploy it to your servers.
    • Se è stato usato Status Monitor per instrumentare un'app Web al runtime, trovare ApplicationInsights.config nella directory radice dell'app in IIS.If you used Status Monitor to instrument a web app at runtime, find ApplicationInsights.config in the root directory of the app in IIS. Aggiornarlo qui in ogni istanza del server.Update it there in each server instance.
  3. Modificare la direttiva dell'agente di raccolta delle prestazioni:Edit the performance collector directive:

    <Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
      <Counters>
        <Add PerformanceCounter="\Objects\Processes"/>
        <Add PerformanceCounter="\Sales(photo)\# Items Sold" ReportAs="Photo sales"/>
      </Counters>
    </Add>

È possibile acquisire contatori standard e quelli implementati manualmente.You can capture both standard counters and those you have implemented yourself. \Objects\Processes è un esempio di contatore standard, disponibile in tutti i sistemi Windows.\Objects\Processes is an example of a standard counter, available on all Windows systems. \Sales(photo)\# Items Sold è un esempio di contatore personalizzato che può essere implementato in un servizio Web.\Sales(photo)\# Items Sold is an example of a custom counter that might be implemented in a web service.

Il formato è \Category(instance)\Counter" oppure, per categorie non associate a istanze, solo \Category\Counter.The format is \Category(instance)\Counter", or for categories that don't have instances, just \Category\Counter.

ReportAs è necessario per i nomi dei contatori che non corrispondono a [a-zA-Z()/-_ \.]+, ovvero che contengono caratteri che non sono inclusi in questi set: lettere, parentesi tonde, barra, trattino, carattere di sottolineatura, spazio e punto.ReportAs is required for counter names that do not match [a-zA-Z()/-_ \.]+ - that is, they contain characters that are not in the following sets: letters, round brackets, forward slash, hyphen, underscore, space, dot.

Se si specifica un'istanza, questa verrà raccolta come dimensione "CounterInstanceName" della metrica indicata.If you specify an instance, it will be collected as a dimension "CounterInstanceName" of the reported metric.

Raccogliere contatori delle prestazioni nel codiceCollecting performance counters in code

Per raccogliere i contatori delle prestazioni di sistema e inviarli ad Application Insights, è possibile adattare il frammento di codice seguente:To collect system performance counters and send them to Application Insights, you can adapt the snippet below:


    var perfCollectorModule = new PerformanceCollectorModule();
    perfCollectorModule.Counters.Add(new PerformanceCounterCollectionRequest(
      @"\.NET CLR Memory([replace-with-application-process-name])\# GC Handles", "GC Handles")));
    perfCollectorModule.Initialize(TelemetryConfiguration.Active);

In alternativa, è possibile eseguire la stessa operazione con le metriche personalizzate create:Or you can do the same thing with custom metrics you created:

    var perfCollectorModule = new PerformanceCollectorModule();
    perfCollectorModule.Counters.Add(new PerformanceCounterCollectionRequest(
      @"\Sales(photo)\# Items Sold", "Photo sales"));
    perfCollectorModule.Initialize(TelemetryConfiguration.Active);

Contatori delle prestazioni in AnalyticsPerformance counters in Analytics

È possibile cercare e visualizzare report dei contatori delle prestazioni in Analytics.You can search and display performance counter reports in Analytics.

Lo schema performanceCounters espone category, il nome counter e il nome instance per ogni contatore delle prestazioni.The performanceCounters schema exposes the category, counter name, and instance name of each performance counter. Nei dati di telemetria per ogni applicazione verranno visualizzati solo i contatori per l'applicazione specifica.In the telemetry for each application, you’ll see only the counters for that application. Ad esempio, per visualizzare quali contatori sono disponibili:For example, to see what counters are available:

Contatori delle prestazioni in Application Insights - Analisi

"Istanza" qui fa riferimento all'istanza del contatore delle prestazioni e non all'istanza del ruolo o del server.('Instance' here refers to the performance counter instance, not the role or server machine instance. Il nome dell'istanza del contatore delle prestazioni segmenta in genere i contatori, come quello per il tempo del processore, in base al nome del processo o dell'applicazione.The performance counter instance name typically segments counters such as processor time by the name of the process or application.)

Per ottenere un grafico della memoria disponibile nel periodo recente:To get a chart of available memory over the recent period:

Timechart delle metriche in Application Insights - Analisi

Come altri dati di telemetria, performanceCounters contiene anche una colonna cloud_RoleInstance che indica l'identità dell'istanza del server host in cui viene eseguita l'app.Like other telemetry, performanceCounters also has a column cloud_RoleInstance that indicates the identity of the host server instance on which your app is running. Ad esempio, per confrontare le prestazioni dell'applicazione su computer diversi:For example, to compare the performance of your app on the different machines:

Prestazioni segmentate per istanze del ruolo in Application Insights - Analisi

Conteggi di ASP.NET e Application InsightsASP.NET and Application Insights counts

Qual è la differenza tra il tasso di eccezione e le metriche delle eccezioni?What's the difference between the Exception rate and Exceptions metrics?

  • Tasso di eccezione è un contatore delle prestazioni del sistema.Exception rate is a system performance counter. Il CLR consente di contare tutte le eccezioni gestite e non gestite generate e divide il totale in un intervallo di campionamento per la lunghezza dell'intervallo.The CLR counts all the handled and unhandled exceptions that are thrown, and divides the total in a sampling interval by the length of the interval. SDK di Application Insights raccoglie questo risultato e lo invia al portale.The Application Insights SDK collects this result and sends it to the portal.
  • Eccezioni è un conteggio dei report TrackException ricevuti dal portale nell'intervallo di campionamento del grafico.Exceptions is a count of the TrackException reports received by the portal in the sampling interval of the chart. Include solo le eccezioni gestite in cui sono state scritte chiamate TrackException nel codice e non include le eccezioni non gestite.It includes only the handled exceptions where you have written TrackException calls in your code, and doesn't include all unhandled exceptions.

Contatori delle prestazioni nelle applicazioni Asp.Net CorePerformance counters in Asp.Net Core applications

I contatori delle prestazioni sono supportati solo se l'applicazione è destinata a .NET Framework.Performance counters are supported only if the application is targeting the full .NET Framework. Non è possibile raccogliere i contatori delle prestazioni per le applicazioni .Net Core.There is no ability to collect Performance counters for .Net Core applications.

AvvisiAlerts

Come per altre metriche, è possibile impostare un avviso per ricevere una notifica se un contatore delle prestazioni supera un limite specificato.Like other metrics, you can set an alert to warn you if a performance counter goes outside a limit you specify. Aprire il pannello Avvisi e fare clic su Aggiungi avviso.Open the Alerts blade and click Add Alert.

Passaggi successiviNext steps