Flux de métriques temps réel : Surveiller et diagnostiquer avec une latence de 1 secondeLive Metrics Stream: Monitor & Diagnose with 1-second latency

Sondez le cœur de votre application web dynamique en production en utilisant les flux de métriques temps réel depuis Application Insights.Probe the beating heart of your live, in-production web application by using Live Metrics Stream from Application Insights. Sélectionnez et filtrez les métriques et les compteurs de performances à surveiller en temps réel, sans aucune perturbation de votre service.Select and filter metrics and performance counters to watch in real time, without any disturbance to your service. Inspectez les traces de pile à partir d’échantillons de demandes en échec et d’exceptions.Inspect stack traces from sample failed requests and exceptions. Avec Profiler, le Débogueur de capture instantanée.Together with Profiler, Snapshot debugger. Live Metrics Stream fournit un outil de diagnostic puissant et non invasif pour votre site web actif.Live Metrics Stream provides a powerful and non-invasive diagnostic tool for your live web site.

Avec les flux de métriques temps réel, vous pouvez :With Live Metrics Stream, you can:

  • Valider un correctif lors de sa publication, en observant les performances et les nombres d’échecs.Validate a fix while it is released, by watching performance and failure counts.
  • Observer l’effet des tests de charge et diagnostiquer les problèmes de façon dynamique.Watch the effect of test loads, and diagnose issues live.
  • Vous concentrer sur des sessions de tests particulières ou filtrer les problèmes connus, en sélectionnant et en filtrant les mesures que vous voulez observer.Focus on particular test sessions or filter out known issues, by selecting and filtering the metrics you want to watch.
  • Obtenir les traces des exceptions quand elles se produisent.Get exception traces as they happen.
  • Faites des essais avec les filtres pour rechercher les indicateurs de performance clés les plus pertinents.Experiment with filters to find the most relevant KPIs.
  • Surveiller en temps réel des compteurs de performances Windows.Monitor any Windows performance counter live.
  • Identifiez plus facilement un serveur qui rencontre des problèmes et filtrez tous les indicateurs de performance clés/flux en temps réel sur ce serveur uniquement.Easily identify a server that is having issues, and filter all the KPI/live feed to just that server.

Vidéo sur les flux de métriques temps réelLive Metrics Stream video

Les métriques temps réel sont actuellement prises en charge pour les applications ASP.NET, ASP.NET Core, Azure Functions, Java et Node.js.Live Metrics are currently supported for ASP.NET, ASP.NET Core, Azure Functions, Java, and Node.js apps.

Bien démarrerGet started

  1. Si vous n’avez pas encore installé Application Insights dans votre application web, faites-le maintenant.If you haven't yet install Application Insights in your web app, do that now.

  2. En plus des packages Application Insights standard, Microsoft.ApplicationInsights.PerfCounterCollector est nécessaire pour activer le flux de métriques temps réel.In addition to the standard Application Insights packages Microsoft.ApplicationInsights.PerfCounterCollector is required to enable Live Metrics stream.

  3. Mettez à jour vers la dernière version du package Application Insights.Update to the latest version of the Application Insights package. Dans Visual Studio, cliquez avec le bouton droit sur votre projet et choisissez Gérer les packages NuGet.In Visual Studio, right-click your project and choose Manage Nuget packages. Ouvrez l’onglet Mises à jour et sélectionnez tous les packages Microsoft.ApplicationInsights.*.Open the Updates tab, and select all the Microsoft.ApplicationInsights.* packages.

    Redéployez votre application.Redeploy your app.

  4. Dans le portail Azure, ouvrez la ressource Application Insights pour votre application puis ouvrez Flux temps réel.In the Azure portal, open the Application Insights resource for your app, and then open Live Stream.

  5. Sécurisez le canal de contrôle si vous utilisez des données sensibles comme des noms de clients dans vos filtres.Secure the control channel if you might use sensitive data such as customer names in your filters.

Pas de données ?No data? Vérifier le pare-feu de votre serveurCheck your server firewall

Vérifiez que les ports sortants pour le flux de métriques temps réel sont ouverts dans le pare-feu de vos serveurs.Check the outgoing ports for Live Metrics Stream are open in the firewall of your servers.

En quoi les flux de métriques temps réel diffèrent-ils de Metrics Explorer et d’Analytique ?How does Live Metrics Stream differ from Metrics Explorer and Analytics?

Flux temps réelLive Stream Metrics Explorer et AnalytiqueMetrics Explorer and Analytics
LatenceLatency Données affichées en une secondeData displayed within one second Agrégé sur plusieurs minutesAggregated over minutes
Pas de conservationNo retention Les données persistent tant qu’elles se trouvent sur le graphique puis elles sont abandonnées.Data persists while it's on the chart, and is then discarded Données conservées pendant 90 joursData retained for 90 days
À la demandeOn demand Les données sont diffusées dès que vous ouvrez les métriques temps réelData is streamed while you open Live Metrics Les données sont envoyées quand le SDK est installé et activéData is sent whenever the SDK is installed and enabled
GratuitFree Pas de facturation pour les données du flux temps réelThere is no charge for Live Stream data Soumis à tarificationSubject to pricing
échantillonnageSampling Tous les compteurs et métriques sélectionnés sont transmis.All selected metrics and counters are transmitted. Les échecs et les traces de pile sont échantillonnés.Failures and stack traces are sampled. Les processeurs de télémétrie ne sont pas appliqués.TelemetryProcessors are not applied. Les événements peuvent être échantillonnésEvents may be sampled
Canal de contrôleControl channel Les signaux de contrôle de filtre sont envoyés au SDK.Filter control signals are sent to the SDK. Nous vous recommandons de sécuriser ce canal.We recommend you secure this channel. La communication est unidirectionnelle vers le portailCommunication is one way, to the portal

Sélectionner et filtrer vos métriquesSelect and filter your metrics

(Disponible avec ASP.NET, ASP.NET Core et Azure Functions (v2).)(Available with ASP.NET, ASP.NET Core, and Azure Functions (v2).)

Vous pouvez surveiller un KPI personnalisé en temps réel en appliquant des filtres arbitraires sur les données de télémétrie Application Insights à partir du portail.You can monitor custom KPI live by applying arbitrary filters on any Application Insights telemetry from the portal. Cliquez sur la commande de filtre qui s’affiche lorsque vous passez la souris sur un graphique.Click the filter control that shows when you mouse-over any of the charts. Le graphique suivant indique un KPI de nombre de demandes personnalisé avec des filtres sur les attributs d’URL et de durée.The following chart is plotting a custom Request count KPI with filters on URL and Duration attributes. Vérifiez vos filtres grâce à la section Vue d’ensemble du flux qui affiche un flux en temps réel de télémétrie correspondant aux critères que vous avez spécifiés.Validate your filters with the Stream Preview section that shows a live feed of telemetry that matches the criteria you have specified at any point in time.

Indicateur de performance clé (KPI) de demande personnalisé

Vous pouvez surveiller une valeur autre qu’un nombre.You can monitor a value different from Count. Les options varient selon le type de flux, qui peut être n’importe quelle télémétrie Application Insights : demandes, dépendances, exceptions, suivis, événements ou métriques.The options depend on the type of stream, which could be any Application Insights telemetry: requests, dependencies, exceptions, traces, events, or metrics. Il peut s’agir d’une mesure personnalisée :It can be your own custom measurement:

Options de valeur

En plus des données de télémétrie Application Insights, vous pouvez également surveiller n’importe quel compteur de performances Windows en le sélectionnant dans les options de flux et en fournissant le nom du compteur de performances.In addition to Application Insights telemetry, you can also monitor any Windows performance counter by selecting that from the stream options, and providing the name of the performance counter.

Les métriques temps réel sont agrégées à deux endroits : localement sur chaque serveur, puis sur tous les serveurs.Live metrics are aggregated at two points: locally on each server, and then across all servers. Vous pouvez modifier la valeur par défaut en sélectionnant d’autres options dans les listes déroulantes respectives.You can change the default at either by selecting other options in the respective drop-downs.

Exemple de télémétrie : Événements de diagnostic Azure personnalisés et en temps réelSample Telemetry: Custom Live Diagnostic Events

Par défaut, le flux d’événements temps réel présente des exemples de demandes ayant échoué et d’appels de dépendance, d’exceptions, d’événements et de suivis.By default, the live feed of events shows samples of failed requests and dependency calls, exceptions, events, and traces. Cliquez sur l’icône de filtre pour afficher les critères appliqués.Click the filter icon to see the applied criteria at any point in time.

Flux temps réel par défaut

Comme avec les métriques, vous pouvez spécifier un critère arbitraire sur les types de données de télémétrie Application Insights.As with metrics, you can specify any arbitrary criteria to any of the Application Insights telemetry types. Dans cet exemple, nous sélectionnons des échecs de demande, des suivis et des événements spécifiques.In this example, we are selecting specific request failures, traces, and events. Nous sélectionnons également toutes les exceptions et tous les échecs de dépendance.We are also selecting all exceptions and dependency failures.

Flux temps réel personnalisé

Remarque : pour les critères basés sur un message d’exception, utilisez le message d’exception le plus à l’extérieur.Note: Currently, for Exception message-based criteria, use the outermost exception message. Dans l’exemple précédent, pour éliminer l’exception sans gravité avec le message d’exception interne (après le délimiteur « <-- ») « Client déconnecté ».In the preceding example, to filter out the benign exception with inner exception message (follows the "<--" delimiter) "The client disconnected." utilisez un critère de message ne contenant pas « Erreur de lecture du contenu de la demande ».use a message not-contains "Error reading request content" criteria.

Consultez les informations détaillées d’un élément dans le flux temps réel en cliquant dessus.See the details of an item in the live feed by clicking it. Vous pouvez interrompre le flux en cliquant sur Suspendre, en faisant simplement défiler ou en cliquant sur un élément.You can pause the feed either by clicking Pause or simply scrolling down, or clicking an item. Le flux temps réel reprend lorsque vous refaites défiler vers le haut, ou en cliquant sur le compteur d’éléments collectés alors qu’il était suspendu.Live feed will resume after you scroll back to the top, or by clicking the counter of items collected while it was paused.

Échecs dynamiques échantillonnés

Filtrer par instance de serveurFilter by server instance

Si vous voulez surveiller une instance de rôle serveur spécifique, vous pouvez appliquer un filtre par serveur.If you want to monitor a particular server role instance, you can filter by server.

Échecs dynamiques échantillonnés

Sécuriser le canal de contrôleSecure the control channel

Les critères de filtres personnalisés que vous spécifiez sont renvoyés au composant de métriques temps réel dans le Kit de développement logiciel (SDK) Application Insights.The custom filters criteria you specify are sent back to the Live Metrics component in the Application Insights SDK. Les filtres peuvent potentiellement contenir des informations sensibles telles que des ID clients.The filters could potentially contain sensitive information such as customerIDs. Vous pouvez sécuriser le canal avec une clé API secrète en plus de la clé d’instrumentation.You can make the channel secure with a secret API key in addition to the instrumentation key.

Création d’une clé APICreate an API Key

Créer une clé API

Ajout d’une clé API à la configurationAdd API key to Configuration

ASP.NET classiqueClassic ASP.NET

Dans le fichier applicationinsights.config, ajoutez AuthenticationApiKey à QuickPulseTelemetryModule :In the applicationinsights.config file, add the AuthenticationApiKey to the QuickPulseTelemetryModule:


<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector">
      <AuthenticationApiKey>YOUR-API-KEY-HERE</AuthenticationApiKey>
</Add>

Ou dans le code, définissez-la sur QuickPulseTelemetryModule :Or in code, set it on the QuickPulseTelemetryModule:

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
using Microsoft.ApplicationInsights.Extensibility;

             TelemetryConfiguration configuration = new TelemetryConfiguration();
            configuration.InstrumentationKey = "YOUR-IKEY-HERE";

            QuickPulseTelemetryProcessor processor = null;

            configuration.TelemetryProcessorChainBuilder
                .Use((next) =>
                {
                    processor = new QuickPulseTelemetryProcessor(next);
                    return processor;
                })
                        .Build();

            var QuickPulse = new QuickPulseTelemetryModule()
            {

                AuthenticationApiKey = "YOUR-API-KEY"
            };
            QuickPulse.Initialize(configuration);
            QuickPulse.RegisterTelemetryProcessor(processor);
            foreach (var telemetryProcessor in configuration.TelemetryProcessors)
                {
                if (telemetryProcessor is ITelemetryModule telemetryModule)
                    {
                    telemetryModule.Initialize(configuration);
                    }
                }

Applications de fonction AzureAzure Function Apps

Pour les applications de fonction Azure (v2), la sécurisation du canal avec une clé API peut se faire avec une variable d’environnement.For Azure Function Apps (v2), securing the channel with an API key can be accomplished with an environment variable.

Créez une clé API à partir de votre ressource Application Insights et accédez à Paramètres d’application pour votre application de fonction.Create an API key from within your Application Insights resource and go to Application Settings for your Function App. Sélectionnez Ajouter un nouveau paramètre et entrez le nom APPINSIGHTS_QUICKPULSEAUTHAPIKEY et une valeur qui correspond à votre clé API.Select add new setting and enter a name of APPINSIGHTS_QUICKPULSEAUTHAPIKEY and a value that corresponds to your API key.

ASP.NET Core (nécessite Application Insights ASP.NET Core SDK 2.3.0 ou version ultérieure)ASP.NET Core (Requires Application Insights ASP.NET Core SDK 2.3.0 or greater)

Modifiez votre fichier startup.cs comme suit :Modify your startup.cs file as follows:

Tout d’abord ajouterFirst add

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Ensuite, dans la méthode ConfigureServices, ajoutez :Then within the ConfigureServices method add:

services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");

Toutefois, si vous connaissez et faites confiance à tous les serveurs connectés, vous pouvez essayer les filtres personnalisés sans le canal authentifié.However, if you recognize and trust all the connected servers, you can try the custom filters without the authenticated channel. Cette option est disponible pour six mois.This option is available for six months. Ce remplacement est nécessaire à chaque nouvelle session, ou lorsqu’un nouveau serveur est en ligne.This override is required once every new session, or when a new server comes online.

Options d’authentification de métriques temps réel

Notes

Nous vous recommandons vivement de configurer le canal authentifié avant d’entrer des informations potentiellement sensibles comme un ID client dans les critères de filtre.We strongly recommend that you set up the authenticated channel before entering potentially sensitive information like CustomerID in the filter criteria.

Tableau des fonctionnalités prises en chargeSupported features table

LangageLanguage Métriques de baseBasic Metrics Mesures de performancesPerformance metrics Filtrage personnaliséCustom filtering Exemple de télémétrieSample telemetry UC fractionnée par processusCPU split by process
.NET.NET Pris en charge (V2.7.2 et versions ultérieures)Supported (V2.7.2+) Pris en charge (V2.7.2 et versions ultérieures)Supported (V2.7.2+) Pris en charge (V2.7.2 et versions ultérieures)Supported (V2.7.2+) Pris en charge (V2.7.2 et versions ultérieures)Supported (V2.7.2+) Pris en charge (V2.7.2 et versions ultérieures)Supported (V2.7.2+)
.NET Core (cible=. NET Framework).NET Core (target=.NET Framework) Pris en charge (V2.4.1 et versions ultérieures)Supported (V2.4.1+) Pris en charge (V2.4.1 et versions ultérieures)Supported (V2.4.1+) Pris en charge (V2.4.1 et versions ultérieures)Supported (V2.4.1+) Pris en charge (V2.4.1 et versions ultérieures)Supported (V2.4.1+) Pris en charge (V2.4.1 et versions ultérieures)Supported (V2.4.1+)
.NET Core (cible=. NET Core).NET Core (target=.NET Core) Pris en charge (V2.4.1 et versions ultérieures)Supported (V2.4.1+) Pris en charge*Supported* Pris en charge (V2.4.1 et versions ultérieures)Supported (V2.4.1+) Pris en charge (V2.4.1 et versions ultérieures)Supported (V2.4.1+) Non pris en chargeNot Supported
Azure Functions v2Azure Functions v2 Prise en chargeSupported Prise en chargeSupported Prise en chargeSupported Prise en chargeSupported Non pris en chargeNot Supported
JavaJava Pris en charge (V2.0.0 et versions ultérieures)Supported (V2.0.0+) Pris en charge (V2.0.0 et versions ultérieures)Supported (V2.0.0+) Non pris en chargeNot Supported Non pris en chargeNot Supported Non pris en chargeNot Supported
Node.jsNode.js Pris en charge (V1.3.0 et versions ultérieures)Supported (V1.3.0+) Pris en charge (V1.3.0 et versions ultérieures)Supported (V1.3.0+) Non pris en chargeNot Supported Pris en charge (V1.3.0 et versions ultérieures)Supported (V1.3.0+) Non pris en chargeNot Supported

Les métriques de base incluent les requêtes, les dépendances et le taux d’exceptions.Basic metrics include request, dependency, and exception rate. Les métriques du niveau de performance (compteurs de performances) incluent la mémoire et l’UC.Performance metrics (performance counters) include memory and CPU. L’exemple de télémétrie montre un flux d’informations détaillées pour les demandes et les dépendances ayant échoué, les exceptions, les événements et les traces.Sample telemetry shows a stream of detailed information for failed requests and dependencies, exceptions, events, and traces.

* La prise en charge de PerfCounters varie légèrement entre les versions de .NET Core qui ne ciblent pas le .NET Framework :* PerfCounters support varies slightly across versions of .NET Core that do not target the .NET Framework:

  • Les métriques PerfCounters sont prises en charge lors de l’exécution dans Azure App Service pour Windows.PerfCounters metrics are supported when running in Azure App Service for Windows. (Kit de développement logiciel [SDK] AspNetCore version 2.4.1 ou ultérieure)(AspNetCore SDK Version 2.4.1 or higher)
  • Les PerfCounters sont pris en charge lorsque l’application s’exécute sur n’importe quel ordinateur Windows (machine virtuelle, service cloud ou ordinateur local, etc.) [Kit de développement logiciel (SDK) AspNetCore version 2.7.1 ou ultérieure], mais pour les applications ciblant .NET Core 2.0 ou une version ultérieure.PerfCounters are supported when app is running in ANY Windows machines (VM or Cloud Service or On-prem etc.) (AspNetCore SDK Version 2.7.1 or higher), but for apps targeting .NET Core 2.0 or higher.
  • Les PerfCounters sont pris en charge lorsque l’application s’exécute n’importe où (Linux, Windows, App Service pour Linux, conteneurs, etc.) dans la dernière version bêta (c.-à-d.PerfCounters are supported when app is running ANYWHERE (Linux, Windows, app service for Linux, containers, etc.) in the latest beta (i.e le Kit de développement logiciel [SDK] AspNetCore version 2.8.0-beta1 ou ultérieure), mais pour les applications ciblant .NET Core 2.0 ou une version ultérieure.AspNetCore SDK Version 2.8.0-beta1 or higher), but for apps targeting .NET Core 2.0 or higher.

Les métriques temps réel sont désactivées par défaut dans le Kit de développement logiciel (SDK) Node.js.By default Live Metrics is disabled in the Node.js SDK. Pour activer les métriques temps réel, ajoutez setSendLiveMetrics(true) à vos méthodes de configuration lorsque vous initialisez le Kit de développement logiciel (SDK).To enable Live Metrics, add setSendLiveMetrics(true) to your configuration methods as you initialize the SDK.

DépannageTroubleshooting

Pas de données ?No data? Si votre application est dans un réseau protégé : Le Flux de métriques temps réel utilise des adresses IP différentes de celles des autres données de télémétrie Application Insights.If your application is in a protected network: Live Metrics Stream uses different IP addresses than other Application Insights telemetry. Assurez-vous que ces adresses IP sont ouvertes dans votre pare-feu.Make sure those IP addresses are open in your firewall.

Étapes suivantesNext steps