Dela via


Felsöka med resursloggar

Den här guiden innehåller en översikt över Azure Web PubSub-resursloggar och tips för hur du använder loggarna för att felsöka problem. Du kan använda loggar för problemidentifiering, anslutningsspårning, meddelandespårning, SPÅRNING av HTTP-begäranden och analys.

Vad är resursloggar?

Det finns tre typer av resursloggar:

  • Anslutningsloggar innehåller detaljerad information för Azure Web PubSub Hub-anslutningar. De kan innehålla grundläggande information som användar-ID och anslutnings-ID eller händelseinformation som anslutning och frånkoppling.
  • Meddelandeloggar tillhandahåller spårningsinformation för hubbmeddelanden som skickas eller tas emot via Azure Web PubSub-tjänsten, till exempel spårnings-ID eller meddelandetyp.
  • HTTP-begärandeloggar tillhandahåller spårningsinformation för HTTP-begäranden till Azure Web PubSub-tjänsten, till exempel HTTP-metod eller statuskod. Vanligtvis registreras en HTTP-begäran när den anländer till eller lämnar tjänsten.

Samla in resursloggar med hjälp av livespårningsverktyget

Livespårningsverktyget i Azure Web PubSub-tjänsten kan samla in resursloggar i realtid, vilket är användbart för att felsöka problem i utvecklingsmiljön. Livespårningsverktyget kan samla in anslutningsloggar, meddelandeloggar och HTTP-begärandeloggar.

Du bör tänka på följande faktorer när du använder livespårningsverktyget:

  • Realtidsresursloggarna som livespårningsverktyget samlar in faktureras som meddelanden (utgående trafik).
  • Instansen på den kostnadsfria nivån för Azure Web PubSub-tjänsten har en daglig gräns på 20 000 meddelanden (utgående trafik). Du kan oväntat nå den dagliga gränsen med hjälp av livespårning.
  • Livespårningsverktyget stöder för närvarande inte Microsoft Entra-auktorisering. Du måste aktivera åtkomstnycklar för att kunna använda livespårning. Under Inställningar väljer du Nycklar och aktiverar sedan Åtkomstnyckel.

Starta livespårningsverktyget

När du aktiverar en åtkomstnyckel använder du åtkomsttoken för att autentisera livespårningsverktyget. Annars använder du Microsoft Entra-ID för att autentisera livespårningsverktyget. Du kan ta reda på om åtkomstnyckeln är aktiverad genom att gå till fönstret Nycklar i Azure SignalR Service-instansen i Azure Portal.

Öppna livespårningen när åtkomstnyckeln är aktiverad

  1. Gå till Azure-portalen och sidan för SignalR Service.

  2. På tjänstmenyn går du till Övervakning och väljer Inställningar för livespårning.

  3. Välj Aktivera livespårning.

  4. Klicka på knappen Spara. Det tar en stund innan ändringarna börjar gälla.

  5. När uppdateringen är klar väljer du Öppna livespårningsverktyget.

    Skärmbild av att öppna livespårningsverktyget.

Öppna livespårningsverktyget när åtkomstnyckeln är inaktiverad

Tilldela direktspårningsverktygs-API-behörighet till dig själv

  1. Gå till Azure-portalen och SignalR-servicepanelen.

  2. Välj Åtkomstkontroll (IAM) .

  3. Välj +Lägg till och sedan Rolltilldelning.

  4. På fliken Jobbfunktionsroller väljer du rollen SignalR Service-ägare och väljer sedan Nästa.

  5. Klicka på +Välj medlemmar i fönstret Medlemmar.

  6. Sök efter och välj medlemmar och klicka sedan på Välj.

  7. Välj Granska + tilldela och vänta tills du får ett slutförandemeddelande.

Aktivera livespårningsverktyget

  1. Gå till Azure-portalen och SignalR Service-panelen.

  2. På tjänstmenyn går du till Övervakning och väljer Inställningar för livespårning.

  3. Välj Aktivera livespårning.

  4. Klicka på knappen Spara. Det tar en stund innan ändringarna börjar gälla.

  5. När uppdateringen är klar väljer du Öppna livespårningsverktyget.

    Skärmbild av att öppna livespårningsverktyget.

Logga in med ditt Microsoft-konto

  1. Livespårningsverktyget gör att ett Microsoft-inloggningsfönster öppnas. Om inget fönster öppnas tillåter du popup-fönster i webbläsarinställningarna.

  2. Vänta tills Klar visas i statusfältet.

Samla in resursloggarna

Livespårningsverktyget kan hjälpa dig att samla in resursloggarna för felsökning.

  • Capture börjar samla in resursloggar i realtid från Azure Web PubSub.
  • Rensa rensar de insamlade resursloggarna i realtid.
  • Loggfilter filtrerar de insamlade resursloggarna i realtid med ett specifikt nyckelord. Vanliga avgränsare som blanksteg, kommatecken och semikolon behandlas som en del av nyckelordet.
  • Status visar om livespårningsverktyget är anslutet eller frånkopplat till den specifika instansen.

Skärmbild av insamling av resursloggar med livespårningsverktyget.

Resursloggarna i realtid som samlas in av livespårningsverktyget innehåller detaljerad information för felsökning.

Name Beskrivning
Tid Logghändelsetid
Loggnivå Logghändelsenivå (Trace, Debug, Informationaleller WarningError)
Händelsenamn Händelsens åtgärdsnamn
Meddelande Detaljerat meddelande för händelsen
Undantag Körningsundantag för Azure Web PubSub-tjänsten
Hubb Användardefinierat hubbnamn
Anslutnings-ID Anslutningens identitet
Användar-ID Användaridentitet
IP Klientens IP-adress
Routningsmall Routningsmall för API:et
HTTP-metod HTTP-metod (POST, GETeller PUTDELETE )
URL Enhetlig resurslokaliserare
Spårnings-ID Unik identifierare för anropet
Statuskod HTTP-svarskod
Varaktighet Varaktighet mellan att ta emot begäran och bearbeta begäran
Rubriker Ytterligare information som skickas av klienten och servern med en HTTP-begäran eller ett HTTP-svar

Samla in resursloggar med Azure Monitor

Aktivera resursloggar

För närvarande stöder Azure Web PubSub integrering med Azure Storage.

  1. Gå till Azure-portalen.

  2. I fönstret Diagnostikinställningar i din Azure Web PubSub-tjänstinstans väljer du + Lägg till diagnostikinställning.

    Skärmbild av att visa diagnostikinställningar och skapa en ny.

  3. I Namn på diagnostikinställning anger du inställningsnamnet.

  4. I Kategoriinformation väljer du alla loggkategorier som du behöver.

  5. I Målinformation väljer du Arkivera till ett lagringskonto.

    Skärmbild av hur du konfigurerar diagnostikinställningen.

  6. Spara diagnostikinställningen genom att välja Spara .

    Anteckning

    Lagringskontot ska finnas i samma region som Azure Web PubSub-tjänsten.

Arkivera till ett Azure Storage-konto

Loggar lagras i lagringskontot som konfigurerats i inställningsfönstret Diagnostik. En container med namnet insights-logs-<CATEGORY_NAME> skapas automatiskt för att lagra resursloggar. I containern lagras loggar i filen resourceId=/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/XXXX/PROVIDERS/MICROSOFT.SIGNALRSERVICE/SIGNALR/XXX/y=YYYY/m=MM/d=DD/h=HH/m=00/PT1H.json. Sökvägen bildas av resource ID och Date Time. Loggfilerna delas av hour. Minutvärdet är alltid m=00.

Alla loggar lagras i JSON-format (JavaScript Object Notation). Varje post har strängfält som använder formatet som beskrivs i följande avsnitt.

JSON-strängar i arkivloggar innehåller element som anges i följande tabeller.

Format

Name Beskrivning
time Logghändelsetid
level Logghändelsenivå
resourceId Resurs-ID för din Azure SignalR Service-instans
location Plats för din Azure SignalR Service-instans
category Kategori för logghändelsen
operationName Händelsens åtgärdsnamn
callerIpAddress IP-adress för servern eller klienten
properties Detaljerade egenskaper relaterade till den här logghändelsen (se följande tabell)

Egenskapstabell

Name Beskrivning
collection Insamling av logghändelsen (Connectioneller AuthorizationThrottling)
connectionId Anslutningens identitet
userId Användarens identitet
message Detaljerat meddelande om logghändelse
hub Användardefinierat hubbnamn
routeTemplate Routningsmall för API:et
httpMethod HTTP-metod (POST, GETeller PUTDELETE )
url Enhetlig resurslokaliserare
traceId Unik identifierare för anropet
statusCode HTTP-svarskod
duration Tidsperioden mellan när begäran tas emot och bearbetas
headers Ytterligare information som skickas av klienten och servern med en HTTP-begäran eller ett HTTP-svar

Följande kod är ett exempel på en JSON-sträng i en arkivlogg:

{
  "properties": {
    "message": "Connection started",
    "collection": "Connection",
    "connectionId": "LW61bMG2VQLIMYIVBMmyXgb3c418200",
    "userId": null
  },
  "operationName": "ConnectionStarted",
  "category": "ConnectivityLogs",
  "level": "Informational",
  "callerIpAddress": "167.220.255.79",
  "resourceId": "/SUBSCRIPTIONS/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/RESOURCEGROUPS/MYGROUP/PROVIDERS/MICROSOFT.SIGNALRSERVICE/WEBPUBSUB/MYWEBPUBSUB",
  "time": "2021-09-17T05:25:05Z",
  "location": "westus"
}

Arkivera till Azure Log Analytics

Så här skickar du loggar till en Log Analytics-arbetsyta:

  1. I fönstret Diagnostikinställning går du till Målinformation och väljer Skicka till Log Analytics-arbetsyta.

  2. Som Prenumeration anger du den prenumeration som du vill använda.

  3. Som mål för loggarna väljer du Log Analytics-arbetsyta.

Följ dessa steg för att visa resursloggarna:

  1. Välj Loggar i din Log Analytics-målarbetsyta.

    Skärmbild av ett Log Analytics-menyalternativ.

  2. Om du vill köra frågor mot loggen anger du WebPubSubConnectivity, WebPubSubMessagingeller WebPubSubHttpRequestoch väljer sedan tidsintervallet. Avancerade frågor finns i Kom igång med Log Analytics i Azure Monitor.

    Skärmbild av en fråga i Log Analytics.

Följ dessa steg om du vill använda en exempelfråga för SignalR-tjänsten:

  1. Välj Loggar i din Log Analytics-miljö.

  2. Välj Frågor för att öppna frågeutforskaren.

  3. Välj Resurstyp för att gruppera exempelfrågor efter resurstyp.

  4. Välj Kör för att köra skriptet.

    Skärmbild av en exempelfråga i Log Analytics.

Arkivloggkolumner innehåller element som anges i följande tabell.

Name Beskrivning
TimeGenerated Logghändelsetid
Collection Insamling av logghändelsen (Connection, Authorizationoch Throttling)
OperationName Händelsens åtgärdsnamn
Location Plats för din Azure SignalR Service-instans
Level Logghändelsenivå
CallerIpAddress IP-adressen för servern/klienten
Message Detaljerat meddelande om logghändelse
UserId Användarens identitet
ConnectionId Anslutningens identitet
ConnectionType Typ av anslutning (Serveren anslutning från serversidan och Client, en anslutning från klientsidan)
TransportType Transporttyp för anslutningen (Websockets, ServerSentEventsoch LongPolling)

Använda resursloggar för att felsöka

Om du upptäcker oväntade ökningar eller minskningar av antalet anslutningar kan du felsöka problemet med hjälp av resursloggar. Potentiella problem är oväntade ändringar av anslutningskvantitet, anslutningar som når anslutningsgränser och auktoriseringsfel.

Oväntade frånkopplingshändelser

Om en anslutning kopplas från registrerar resursloggarna frånkopplingshändelsen med ConnectionAborted eller ConnectionEnded i operationName.

Skillnaden mellan ConnectionAborted och ConnectionEnded är att ConnectionEnded är en förväntad frånkoppling som utlöses av klient- eller serversidan. Däremot ConnectionAborted refererar vanligtvis till en händelse där en anslutning oväntat avbryts och orsaken till frånkoppling anges i message.

I följande tabell visas orsaker till en oväntad frånkoppling.

Anledning Beskrivning
Antalet anslutningar når gränsen Antalet anslutningar når gränsen för den aktuella prisnivån. Överväg att skala upp tjänstenheten.
Tjänsten laddas om, återansluts Tjänsten Azure Web PubSub laddas om. Du måste implementera en egen återanslutningsmekanism eller manuellt återansluta till Azure Web PubSub-tjänsten.
Tillfälliga fel för intern server Ett tillfälligt fel uppstår i Azure Web PubSub-tjänsten. Återställningen ska vara automatisk.

Oväntad ökning av anslutningar

När antalet klientanslutningar oväntat ökar bör du följa dessa steg. Filtrera först bort de överflödiga anslutningarna och lägg till ett unikt testanvändar-ID i testklientanslutningen. Kontrollera sedan resursloggarna. Om du märker att fler än en klientanslutning har samma testanvändar-ID eller IP-adress är det troligt att klienten skapar fler anslutningar än förväntat. Kontrollera klientkoden för att hitta källan till de extra anslutningarna.

Auktoriseringen misslyckades

Om du får 401 Obehörig returnerad för klientbegäranden kontrollerar du dina resursloggar. Om du hittar Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>innebär det att alla målgrupper i din åtkomsttoken är ogiltiga. Prova att använda de giltiga målgrupper som föreslås i loggen.

Strypning

Om du upptäcker att du inte kan upprätta klientanslutningar till Azure Web PubSub-tjänsten kontrollerar du dina resursloggar. Om du ser Connection count reaches limit i resursloggen har du upprättat för många anslutningar till Azure Web PubSub-tjänsten och nått gränsen för antal anslutningar. Överväg att skala upp din Azure Web PubSub-tjänstinstans.

Om du ser Message count reaches limit i resursloggen och du använder den kostnadsfria nivån innebär det att du har förbrukat kvoten för meddelanden. Om du vill skicka fler meddelanden kan du överväga att ändra din Azure Web PubSub-tjänstinstans till standardnivå. Mer information finns i Priser för Azure Web PubSub.