Transaktionssökning är en funktion i Application Insights som du använder för att hitta och utforska enskilda telemetriobjekt, till exempel sidvisningar, undantag eller webbbegäranden. Du kan också visa loggspårningar och händelser som du kodar.
Om du vill ha mer komplexa frågor om dina data använder du Log Analytics.
Var ser du Sök?
Du hittar Sök i Azure Portal eller Visual Studio.
I Azure-portalen
Du kan öppna transaktionssökningen på fliken Översikt för Application Insights i ditt program. Du kan också välja Sök under Undersök på den vänstra menyn.
Gå till listrutan Händelsetyper om du vill se en lista över telemetriobjekt som serverbegäranden, sidvisningar och anpassade händelser som du kodade. Överst i resultatlistan finns ett sammanfattningsdiagram som visar antalet händelser över tid.
Gå tillbaka från den nedrullningsbara menyn eller välj Uppdatera för att hämta nya händelser.
I Visual Studio 2013
I Visual Studio finns även ett Application Insights Search-fönster . Det är mest användbart för att visa telemetrihändelser som genereras av programmet som du felsöker. Men den kan också visa de händelser som samlas in från din publicerade app på Azure Portal.
Öppna fönstret Application Insights Search i Visual Studio:
Application Insights Search-fönstret har funktioner som liknar webbportalen:
Fliken Spåra åtgärd är tillgänglig när du öppnar en begäran eller en sidvy. En "åtgärd" är en sekvens med händelser som är associerade med en enda begäran eller sidvy. Beroendeanrop, undantag, spårningsloggar och anpassade händelser kan till exempel vara en del av en enda åtgärd. Fliken Spåra åtgärd visar grafiskt tidpunkten och varaktigheten för dessa händelser i förhållande till begäran eller sidvyn.
Inspektera enskilda objekt
Välj valfritt telemetriobjekt för att se nyckelfält och relaterade objekt.
Vyn transaktionsinformation från slutpunkt till slutpunkt öppnas.
Filtrera händelsetyper
Öppna listrutan Händelsetyper och välj de händelsetyper som du vill se. Om du vill återställa filtren senare väljer du Återställ.
Händelsetyperna är:
- Spårning: Diagnostikloggar som TrackTrace, log4Net, NLog och System.Diagnostic.Trace-anrop.
- Begäran: HTTP-begäranden som tas emot av serverprogrammet, inklusive sidor, skript, bilder, formatfiler och data. Dessa händelser används för att skapa översiktsdiagram för begäran och svar.
- Sidvy: Telemetri som skickas av webbklienten som används för att skapa sidvisningsrapporter.
- Anpassad händelse: Om du har infogat anrop till för att
TrackEvent()
övervaka användningen kan du söka efter dem här.
- Undantag: Ohanterade undantag på servern och de undantag som du loggar med hjälp
TrackException()
av .
- Beroende: Anropar från serverprogrammet till andra tjänster, till exempel REST-API:er eller databaser, och AJAX-anrop från klientkoden.
- Tillgänglighet: Resultat av tillgänglighetstester
Filtrera efter egenskapsvärden
Du kan filtrera händelser på värdena för deras egenskaper. Vilka egenskaper som är tillgängliga beror på vilka händelsetyper du har valt. Välj Filter för att starta.
Att välja inga värden för en viss egenskap har samma effekt som att välja alla värden. Den stänger av filtrering på den egenskapen.
Observera att antalet till höger om filtervärdena visar hur många förekomster det finns i den aktuella filtrerade uppsättningen.
Hitta händelser med samma egenskap
Om du vill hitta alla objekt med samma egenskapsvärde anger du det i sökrutan eller markerar kryssrutan när du tittar igenom egenskaper på fliken Filter.
Söka i data
Kommentar
Om du vill skriva mer komplexa frågor öppnar du Loggar (analys) överst i sökfönstret .
Du kan söka efter termer i något av egenskapsvärdena. Den här funktionen är användbar om du skriver anpassade händelser med egenskapsvärden.
Du kanske vill ange ett tidsintervall eftersom sökningar över ett kortare intervall är snabbare.
Sök efter fullständiga ord, inte delsträngar. Använd citattecken för att omsluta specialtecken.
String |
Hittades inte |
Grunda |
HomeController.About |
home
controller
out |
homecontroller
about
"homecontroller.about" |
USA |
Uni
ted |
united
states
united AND states
"united states" |
Du kan använda följande sökuttryck:
Exempelfråga |
Effekt |
apple |
Hitta alla händelser i tidsintervallet vars fält innehåller ordet apple . |
apple AND banana
apple banana |
Hitta händelser som innehåller båda orden. Använd versalt AND , inte and . Kort formulär. |
apple OR banana |
Hitta händelser som innehåller något av ord. Använd OR , inte or . |
apple NOT banana |
Hitta händelser som innehåller ett ord men inte det andra. |
Sampling
Om din app genererar betydande telemetri och använder ASP.NET SDK version 2.0.0-beta3 eller senare, minskar den automatiskt volymen som skickas till portalen via anpassningsbar sampling. Den här modulen skickar bara en representativ del av händelserna. Den väljer eller avmarkerar händelser som är relaterade till samma begäran som en grupp, så att du kan navigera mellan relaterade händelser.
Lär dig mer om sampling.
Skapa arbetsobjekt
Du kan skapa en bugg i GitHub eller Azure DevOps med information från valfritt telemetriobjekt.
Gå till detaljvyn för transaktioner från slutpunkt till slutpunkt genom att välja valfritt telemetriobjekt. Välj sedan Skapa arbetsobjekt.
Första gången du gör det här steget uppmanas du att konfigurera en länk till din Azure DevOps-organisation och ditt projekt. Du kan också konfigurera länken på fliken Arbetsobjekt .
Skicka mer telemetri till Application Insights
Förutom den färdiga telemetrin som skickas av Application Insights SDK kan du:
Samla in loggspårningar från ditt favoritloggningsramverk i .NET eller Java. Det innebär att du kan söka igenom dina loggspårningar och korrelera dem med sidvisningar, undantag och andra händelser.
Skriv kod för att skicka anpassade händelser, sidvisningar och undantag.
Lär dig hur du skickar loggar och anpassad telemetri till Application Insights.
Vanliga frågor och svar
Få svar på vanliga frågor.
Hur mycket data behålls?
Se sammanfattningen Gränser.
Hur kan jag se POST-data i mina serverbegäranden?
Vi loggar inte POST-data automatiskt, men du kan använda TrackTrace eller logganrop. Placera POST-data i meddelandeparametern. Du kan inte filtrera meddelandet på samma sätt som du kan filtrera efter egenskaper, men storleksgränsen är längre.
Varför returnerar min Azure-funktionssökning inga resultat?
Azure Functions loggar inte URL-frågesträngar.
Den enhetliga diagnostikupplevelsen korrelerar automatiskt telemetri på serversidan från alla dina Application Insights-övervakade komponenter till en enda vy. Det spelar ingen roll om du har flera resurser. Application Insights identifierar den underliggande relationen och gör att du enkelt kan diagnostisera programkomponenten, beroendet eller undantaget som orsakade en transaktionsavmattning eller ett fel.
Vad är en komponent?
Komponenter är oberoende distributionsbara delar av ditt distribuerade program eller mikrotjänstprogram. Utvecklare och driftsteam har synlighet på kodnivå eller åtkomst till telemetri som genereras av dessa programkomponenter.
- Komponenter skiljer sig från "observerade" externa beroenden, till exempel SQL och händelsehubbar, som ditt team eller din organisation kanske inte har åtkomst till (kod eller telemetri).
- Komponenter körs på valfritt antal server-, roll- eller containerinstanser.
- Komponenter kan vara separata Application Insights-instrumentationsnycklar, även om prenumerationerna skiljer sig åt. Komponenter kan också vara olika roller som rapporterar till en enda Application Insights-instrumentationsnyckel. Den nya upplevelsen visar information för alla komponenter, oavsett hur de har konfigurerats.
Kommentar
Saknar du relaterade objektlänkar? All relaterad telemetri finns på vänster sida i de övre och nedre avsnitten.
Transaktionsdiagnostikupplevelse
Den här vyn har fyra viktiga delar:
- en resultatlista
- ett transaktionsdiagram mellan komponenter
- en tidssekvenslista över all telemetri som är relaterad till den här åtgärden
- informationsfönstret för alla markerade telemetriobjekt
Transaktionsdiagram mellan komponenter
Det här diagrammet innehåller en tidslinje med vågräta staplar under begäranden och beroenden mellan komponenter. Eventuella undantag som samlas in markeras också på tidslinjen.
- Den översta raden i det här diagrammet representerar startpunkten. Det är den inkommande begäran till den första komponenten som anropas i den här transaktionen. Varaktigheten är den totala tid det tar för transaktionen att slutföras.
- Alla anrop till externa beroenden är enkla rader som inte kan samlas in, med ikoner som representerar beroendetypen.
- Anrop till andra komponenter är komprimerbara rader. Varje rad motsvarar en specifik åtgärd som anropas i komponenten.
- Som standard visas begäran, beroende eller undantag som du har valt åt sidan. Välj valfri rad om du vill se dess information.
Kommentar
Anrop till andra komponenter har två rader. En rad representerar det utgående anropet (beroendet) från anroparkomponenten. Den andra raden motsvarar den inkommande begäran i den anropade komponenten. Den inledande ikonen och distinkt formatering av varaktighetsstaplarna hjälper till att skilja mellan dem.
All telemetri med det här åtgärds-ID:t
Det här avsnittet visar en platt listvy i en tidssekvens med all telemetri som är relaterad till den här transaktionen. Den visar även anpassade händelser och spårningar som inte visas i transaktionsdiagrammet. Du kan filtrera den här listan till telemetri som genereras av en specifik komponent eller ett visst anrop. Du kan välja valfritt telemetriobjekt i den här listan för att se motsvarande information på sidan.
Information om den valda telemetrin
Det här döljbara fönstret visar information om ett markerat objekt från transaktionsdiagrammet eller listan. Visa alla listor med alla standardattribut som samlas in. Alla anpassade attribut visas separat under standarduppsättningen. Välj ellipsknappen (...) under spårningsfönstret Anropa stack för att få ett alternativ för att kopiera spårningen. Öppna profilerarspårningar och Öppna ögonblicksbild av felsökning visar diagnostik på kodnivå i motsvarande informationsfönster.
Sökresultat
Det här döljbara fönstret visar de andra resultaten som uppfyller filtervillkoren. Välj valfritt resultat för att uppdatera respektive information om de föregående tre avsnitten. Vi försöker hitta exempel som är mest sannolika att ha informationen tillgänglig från alla komponenter, även om samplingen är i kraft i någon av dem. Dessa exempel visas som förslag.
Profilerare och felsökningsprogram för ögonblicksbilder
Application Insights Profiler eller Snapshot Debugger hjälper dig med diagnostik på kodnivå för prestanda- och felproblem. Med den här upplevelsen kan du se Profiler-spårningar eller ögonblicksbilder från valfri komponent med en enda markering.
Om du inte kan få Profiler att fungera kontaktar du serviceprofilerhelp@microsoft.com.
Om du inte kan få Snapshot Debugger att fungera kontaktar du snapshothelp@microsoft.com.
Vanliga frågor och svar
Det här avsnittet innehåller svar på vanliga frågor.
Varför ser jag en enskild komponent i diagrammet och de andra komponenterna visas bara som externa beroenden utan någon information?
Möjliga orsaker:
- Instrumenteras de andra komponenterna med Application Insights?
- Använder de den senaste stabila Application Insights-SDK:en?
- Om dessa komponenter är separata Application Insights-resurser kontrollerar du att du har åtkomst.
Om du har åtkomst och komponenterna är instrumenterade med de senaste Application Insights SDK:erna meddelar du oss via feedbackkanalen i det övre högra hörnet.
Jag ser duplicerade rader för beroendena. Förväntas det här beteendet?
För närvarande visar vi det utgående beroendeanropet separat från den inkommande begäran. Vanligtvis ser de två anropen identiska ut med bara varaktighetsvärdet som skiljer sig på grund av nätverkets tur och retur-resa. Den inledande ikonen och distinkt formatering av varaktighetsstaplarna hjälper till att skilja mellan dem. Är den här presentationen av data förvirrande? Ge oss din feedback!
Hur är det med klockförskjutningar mellan olika komponentinstanser?
Tidslinjer justeras för klocksnedvridningar i transaktionsdiagrammet. Du kan se exakta tidsstämplar i informationsfönstret eller med hjälp av Log Analytics.
Detta beteende är av design. Alla relaterade objekt, över alla komponenter, är redan tillgängliga på vänster sida i de övre och nedre avsnitten. Den nya upplevelsen har två relaterade objekt som den vänstra sidan inte täcker: all telemetri från fem minuter före och efter den här händelsen och användarens tidslinje.
Finns det något sätt att se färre händelser per transaktion när jag använder Application Insights JavaScript SDK?
Transaktionsdiagnostikupplevelsen visar all telemetri i en enda åtgärd som delar ett åtgärds-ID. Som standard skapar Application Insights SDK för JavaScript en ny åtgärd för varje unik sidvy. I ett ensidesprogram (SPA) genereras endast en sidvisningshändelse och ett enda åtgärds-ID används för all telemetri som genereras. Därför kan många händelser korreleras till samma åtgärd.
I dessa scenarier kan du använda Automatisk routningsspårning för att automatiskt skapa nya åtgärder för navigering i ditt SPA. Du måste aktivera enableAutoRouteTracking så att en sidvy genereras varje gång URL-vägen uppdateras (logisk sidvy inträffar). Om du vill uppdatera åtgärds-ID:t manuellt anropar du appInsights.properties.context.telemetryTrace.traceID = Microsoft.ApplicationInsights.Telemetry.Util.generateW3CId()
. Om du utlöser en PageView-händelse manuellt återställs även åtgärds-ID:t.
Varför summerar inte varaktigheten för transaktionsinformationen till varaktigheten för den högsta begärandetiden?
Tid som inte förklaras i Gantt-schemat är tid som inte omfattas av ett spårat beroende. Det här problemet kan inträffa eftersom externa anrop inte har instrumenterats, antingen automatiskt eller manuellt. Det kan också inträffa eftersom den tid det tog var i processen snarare än på grund av ett externt anrop.
Om alla anrop har instrumenterats är processen den troliga rotorsaken till den tid som spenderas. Ett användbart verktyg för att diagnostisera processen är Application Insights-profileraren.
Vad händer om jag ser meddelandet Fel vid hämtning av data när jag navigerar i Application Insights i Azure Portal?
Det här felet indikerar att webbläsaren inte kunde anropa ett obligatoriskt API, eller att API:et returnerade ett felsvar. Om du vill felsöka beteendet öppnar du ett webbläsarfönster i InPrivate och inaktiverar alla webbläsartillägg som körs och identifierar sedan om du fortfarande kan återskapa portalbeteendet. Om portalfelet fortfarande inträffar kan du testa med andra webbläsare eller andra datorer, undersöka DNS eller andra nätverksrelaterade problem från klientdatorn där API-anropen misslyckas. Om portalfelet fortsätter och behöver undersökas mer samlar du in en nätverksspårning i webbläsaren samtidigt som du återskapar det oväntade portalbeteendet och öppnar sedan ett supportärende från Azure Portal.