Live Metrics Stream: Controle & met latentie van 1 seconde

Controleer uw live webtoepassing in productie met behulp van Live Metrics Stream (ook wel bekend als QuickPulse) van Application Insights. Selecteer en filter metrische gegevens en prestatiemeters om in realtime te bekijken, zonder dat u te maken hebt met uw service. Controleer stack-traceringen van mislukte voorbeeldaanvragen en uitzonderingen. Samen met Profiler en Snapshot Debuggerbiedt Live Metrics Stream een krachtig en niet-diagnostisch hulpprogramma voor uw livewebsite.

Met Live Metrics Stream kunt u het volgende doen:

  • Valideer een oplossing terwijl deze wordt vrijgegeven door het aantal prestaties en fouten te bekijken.
  • Bekijk live het effect van het laden van tests en het vaststellen van problemen.
  • Richt u op bepaalde testsessies of filter bekende problemen uit door de metrische gegevens die u wilt bekijken te selecteren en te filteren.
  • Haal uitzonderings traceringen op wanneer deze zich voor doen.
  • Experimenteer met filters om de meest relevante KPI's te vinden.
  • Beveer Windows prestatiemeters live.
  • Identificeer eenvoudig een server die problemen heeft en filter alle KPI/live feed naar die server.

Tabblad Live Metrics

Live Metrics worden momenteel ondersteund voor ASP.NET-, ASP.NET Core-, Azure Functions-, JavaNode.js apps.

Aan de slag

  1. Volg taalspecifieke richtlijnen om live metrische gegevens in teschakelen.

  2. Open in Azure Portalapplication Insights resource voor uw app en open Live Stream.

  3. Beveilig het besturingskanaal als u gevoelige gegevens, zoals klantnamen, in uw filters kunt gebruiken.

LiveMetrics inschakelen met behulp van code voor elke .NET-toepassing

Hoewel LiveMetrics standaard is ingeschakeld bij het onboarden met behulp van aanbevolen instructies voor .NET-toepassingen, laat het volgende zien hoe u live metrische gegevens handmatig kunt instellen.

  1. Installeer het NuGet-pakket Microsoft.ApplicationInsights.PerfCounterCollector
  2. De volgende voorbeeldcode voor de console-app toont het instellen van live metrische gegevens.
using Microsoft.ApplicationInsights;
using Microsoft.ApplicationInsights.Extensibility;
using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;
using System;
using System.Threading.Tasks;

namespace LiveMetricsDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a TelemetryConfiguration instance.
            TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
            config.InstrumentationKey = "INSTRUMENTATION-KEY-HERE";
            QuickPulseTelemetryProcessor quickPulseProcessor = null;
            config.DefaultTelemetrySink.TelemetryProcessorChainBuilder
                .Use((next) =>
                {
                    quickPulseProcessor = new QuickPulseTelemetryProcessor(next);
                    return quickPulseProcessor;
                })
                .Build();

            var quickPulseModule = new QuickPulseTelemetryModule();

            // Secure the control channel.
            // This is optional, but recommended.
            quickPulseModule.AuthenticationApiKey = "YOUR-API-KEY-HERE";
            quickPulseModule.Initialize(config);
            quickPulseModule.RegisterTelemetryProcessor(quickPulseProcessor);

            // Create a TelemetryClient instance. It is important
            // to use the same TelemetryConfiguration here as the one
            // used to setup Live Metrics.
            TelemetryClient client = new TelemetryClient(config);

            // This sample runs indefinitely. Replace with actual application logic.
            while (true)
            {
                // Send dependency and request telemetry.
                // These will be shown in Live Metrics stream.
                // CPU/Memory Performance counter is also shown
                // automatically without any additional steps.
                client.TrackDependency("My dependency", "target", "http://sample",
                    DateTimeOffset.Now, TimeSpan.FromMilliseconds(300), true);
                client.TrackRequest("My Request", DateTimeOffset.Now,
                    TimeSpan.FromMilliseconds(230), "200", true);
                Task.Delay(1000).Wait();
            }
        }
    }
}

Hoewel het bovenstaande voorbeeld voor een console-app is, kan dezelfde code worden gebruikt in alle .NET-toepassingen. Als er andere TelemetryModules zijn ingeschakeld die automatisch telemetriegegevens verzamelen, is het belangrijk om ervoor te zorgen dat dezelfde configuratie die wordt gebruikt voor het initialiseren van deze modules ook wordt gebruikt voor de module Live Metrics.

Wat is Live Metrics Stream verschil met Metrics Explorer analytics?

Live Stream Metrics Explorer en analyse
Latentie Gegevens die binnen één seconde worden weergegeven Geaggregeerd in minuten
Geen retentie Gegevens blijven bestaan terwijl ze in de grafiek staan en worden vervolgens verwijderd Gegevens die 90 dagen worden bewaard
Op aanvraag Gegevens worden alleen gestreamd terwijl het deelvenster Live Metrics is geopend Gegevens worden verzonden wanneer de SDK is geïnstalleerd en ingeschakeld
Gratis Er worden geen kosten in rekening Live Stream gegevens Onderhevig aan prijzen
Steekproeven Alle geselecteerde metrische gegevens en tellers worden verzonden. Er wordt een steekproef genomen van fouten en stack-traceringen. Er kan een steekproef van gebeurtenissen worden genomen
Besturingskanaal Filterbeheersignalen worden naar de SDK verzonden. U wordt aangeraden dit kanaal te beveiligen. Communicatie is één manier, naar de portal

Uw metrische gegevens selecteren en filteren

(Beschikbaar met ASP.NET, ASP.NET Core en Azure Functions (v2).)

U kunt aangepaste KPI live bewaken door willekeurige filters toe te passen op elke toepassing Insights telemetrie van de portal. Klik op het filterbesturingselement dat wordt weer geven wanneer u de muisaanwijzer over een van de grafieken beweegt. In de volgende grafiek wordt een aangepaste KPI voor het aantal aanvragen uitgezet met filters voor URL- en duurkenmerken. Valideer uw filters met de sectie Stream Preview waarin een livefeed met telemetrie wordt weergegeven die overeenkomt met de criteria die u op een bepaald moment hebt opgegeven.

Aanvraagsnelheid filteren

U kunt een andere waarde dan Aantal bewaken. De opties zijn afhankelijk van het type stroom, wat elke Application Insights-telemetrie kan zijn: aanvragen, afhankelijkheden, uitzonderingen, traceringen, gebeurtenissen of metrische gegevens. Dit kan uw eigen aangepaste meting zijn:

Opbouwfunctie voor query's op aanvraagsnelheid met aangepaste metrische gegevens

Naast Application Insights-telemetrie kunt u ook elk Windows-prestatiemeter aantal controleren door deze te selecteren in de stroomopties en de naam van het prestatiemeterwerkpunt op te geven.

Live metrische gegevens worden op twee punten geaggregeerd: lokaal op elke server en vervolgens op alle servers. U kunt de standaardwaarde wijzigen door andere opties te selecteren in de desbetreffende vervolgkeuzeopties.

Voorbeeld van telemetrie: aangepaste live diagnostische gebeurtenissen

Standaard toont de livefeed van gebeurtenissen voorbeelden van mislukte aanvragen en afhankelijkheidsaanvragen, uitzonderingen, gebeurtenissen en traceringen. Klik op het filterpictogram om de toegepaste criteria op elk moment weer te gegeven.

Filterknop

Net als bij metrische gegevens kunt u willekeurige criteria opgeven voor elk van de toepassingstypen Insights telemetrietypen. In dit voorbeeld selecteren we specifieke aanvraagfouten en gebeurtenissen.

Opbouwfunctie voor query's

Notitie

Op dit moment gebruikt u voor criteria op basis van uitzonderingsbericht het buitenste uitzonderingsbericht. In het vorige voorbeeld is het zo dat de goedaardige uitzondering met het interne uitzonderingsbericht (volgt op het scheidingsteken '<--') 'De verbinding met de client is verbroken' wordt uitgefilterd. gebruik een bericht dat geen 'fout bij het lezen van aanvraaginhoud' bevat.

Bekijk de details van een item in de livefeed door erop te klikken. U kunt de feed onderbreken door te klikken op Onderbreken of door omlaag te schuiven of door op een item te klikken. De livefeed wordt hervat nadat u terug scrolt naar de bovenkant of door te klikken op de teller met items die zijn verzameld tijdens het onderbreken.

Schermopname van het venster Voorbeeld van telemetrie met een geselecteerde uitzondering en de details van de uitzondering die onderaan het venster worden weergegeven.

Filteren op server-exemplaar

Als u een bepaald serverfunctie-exemplaar wilt bewaken, kunt u filteren op server. Als u wilt filteren, selecteert u de servernaam onder Servers.

Voorbeelden van live-fouten

Het besturingskanaal beveiligen

Notitie

Op dit moment kunt u alleen een geverifieerd kanaal instellen met behulp van handmatige instrumentatie (SDK) en kunt u geen servers verifiëren met behulp van Azure-serviceintegratie (of automatische instrumentatie).

De criteria voor aangepaste filters die u in de portal voor live metrische gegevens opgeeft, worden teruggestuurd naar het onderdeel Live Metrics in de Application Insights SDK. De filters kunnen mogelijk gevoelige informatie bevatten, zoals customerIDs. U kunt het kanaal beveiligen met een geheime API-sleutel naast de instrumentatiesleutel.

Een API-sleutel maken

API-sleutel > tabblad API-sleutel  maken. Selecteer 'SDK-besturingskanaal verifiëren' en vervolgens 'sleutel genereren'

API-sleutel toevoegen aan configuratie

ASP.NET

Voeg in applicationinsights.config bestand AuthenticationApiKey toe aan de QuickPulseTelemetryModule:

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

ASP.NET Core

Volg ASP.NET Core onderstaande instructies voor ASP.NET Core toepassingen.

Wijzig ConfigureServices het bestand Startup.cs als volgt:

Voeg de volgende naamruimte toe.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Wijzig vervolgens ConfigureServices de methode zoals hieronder wordt beschreven.

public void ConfigureServices(IServiceCollection services)
{
    // existing code which include services.AddApplicationInsightsTelemetry() to enable Application Insights.
    services.ConfigureTelemetryModule<QuickPulseTelemetryModule> ((module, o) => module.AuthenticationApiKey = "YOUR-API-KEY-HERE");
}

Meer informatie over het configureren van ASP.NET Core-toepassingen vindt u in onze richtlijnen voor het configureren van telemetriemodules in ASP.NET Core.

WorkerService

Volg de onderstaande instructies voor WorkerService-toepassingen.

Voeg de volgende naamruimte toe.

using Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse;

Voeg vervolgens de volgende regel toe vóór de aanroep services.AddApplicationInsightsTelemetryWorkerService .

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

Meer informatie over het configureren van WorkerService-toepassingen vindt u in onze richtlijnen voor het configureren van telemetriemodules in WorkerServices.

Azure Function-apps

Voor Azure Function Apps (v2) kan het beveiligen van het kanaal met een API-sleutel worden uitgevoerd met een omgevingsvariabele.

Maak een API-sleutel vanuit uw Application Insights-resource en ga naar Instellingen > Configuratie voor uw functie-app. Selecteer Nieuwe toepassingsinstelling en voer een naam en APPINSIGHTS_QUICKPULSEAUTHAPIKEY een waarde in die overeenkomt met uw API-sleutel.

Als u echter alle verbonden servers herkent en vertrouwt, kunt u de aangepaste filters proberen zonder het geverifieerde kanaal. Deze optie is zes maanden beschikbaar. Deze overschrijven is vereist zodra elke nieuwe sessie of wanneer een nieuwe server online komt.

Opties voor Live Metrics Auth

Notitie

We raden u ten zeerste aan het geverifieerde kanaal in te stellen voordat u mogelijk gevoelige informatie, zoals CustomerID, in de filtercriteria in moet invoeren.

Tabel met ondersteunde functies

Taal Metrische basisgegevens Metrische gegevens voor prestaties Aangepast filteren Voorbeeld-telemetrie CPU gesplitst per proces
.NET Framework Ondersteund (V2.7.2+) Ondersteund (V2.7.2+) Ondersteund (V2.7.2+) Ondersteund (V2.7.2+) Ondersteund (V2.7.2+)
.NET Core (target=.NET Framework) Ondersteund (V2.4.1+) Ondersteund (V2.4.1+) Ondersteund (V2.4.1+) Ondersteund (V2.4.1+) Ondersteund (V2.4.1+)
.NET Core (target=.NET Core) Ondersteund (V2.4.1+) Ondersteund* Ondersteund (V2.4.1+) Ondersteund (V2.4.1+) Niet ondersteund
Azure Functions v2 Ondersteund Ondersteund Ondersteund Ondersteund Niet ondersteund
Java Ondersteund (V2.0.0+) Ondersteund (V2.0.0+) Niet ondersteund Ondersteund (V3.2.0+) Niet ondersteund
Node.js Ondersteund (V1.3.0+) Ondersteund (V1.3.0+) Niet ondersteund Ondersteund (V1.3.0+) Niet ondersteund

Metrische basisgegevens omvatten aanvraag-, afhankelijkheids- en uitzonderingsfrequentie. Prestatiemetrieken (prestatiemeters) omvatten geheugen en CPU. Voorbeeld-telemetrie toont een stroom gedetailleerde informatie voor mislukte aanvragen en afhankelijkheden, uitzonderingen, gebeurtenissen en traceringen.

*De ondersteuning voor PerfCounters varieert enigszins tussen versies van .NET Core die niet zijn gericht op de .NET Framework:

  • Metrische gegevens van PerfCounters worden ondersteund bij het uitvoeren in Azure App Service voor Windows. (AspNetCore SDK versie 2.4.1 of hoger)
  • PerfCounters worden ondersteund wanneer de app wordt uitgevoerd op Windows machines (VM, cloudservice of on-prem, enzovoort) (AspNetCore SDK versie 2.7.1 of hoger), maar voor apps die zijn gericht op .NET Core 2.0 of hoger.
  • PerfCounters worden ondersteund wanneer de app ANYWHERE (Linux, Windows, App Service voor Linux, containers, enzovoort) in de nieuwste versies (dat wil zeggen AspNetCore SDK versie 2.8.0 of hoger) wordt uitgevoerd, maar alleen voor apps die zijn gericht op .NET Core 2.0 of hoger.

Problemen oplossen

Live Metrics Stream gebruikt andere IP-adressen dan andere Application Insights telemetrie. Zorg ervoor dat deze IP-adressen zijn geopend in uw firewall. Controleer ook of de uitgaande poorten Live Metrics Stream zijn geopend in de firewall van uw servers.

Volgende stappen