Dela via


Så här felsöker du med resursloggar

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

Vad är resursloggar?

Det finns tre typer av resursloggar: anslutnings-, meddelande- och HTTP-begäranden.

  • Anslutningsloggar innehåller detaljerad information för Azure Web PubSub Hub-anslutningar. Till exempel grundläggande information (användar-ID, anslutnings-ID och så vidare) och händelseinformation (ansluta, koppla från och så vidare).
  • Meddelandeloggar tillhandahåller spårningsinformation för Azure Web PubSub Hub-meddelanden som tas emot och skickas via Azure Web PubSub-tjänsten. Till exempel spårnings-ID och meddelandetyp för meddelandet.
  • HTTP-begärandeloggar tillhandahåller spårningsinformation för HTTP-begäranden till Azure Web PubSub-tjänsten. Till exempel HTTP-metod och statuskod. Vanligtvis registreras HTTP-begäran när den kommer till eller lämnar tjänsten.

Samla in resursloggar med hjälp av livespårningsverktyget

Livespårningsverktyget för Azure Web PubSub-tjänsten har möjlighet att 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.

Kommentar

Följande överväganden gäller för användning av livespårningsverktyget:

  • Realtidsresursloggarna som registreras av livespårningsverktyget faktureras som meddelanden (utgående trafik).
  • 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.
  • Azure Web PubSub-tjänstens kostnadsfria nivåinstans har en daglig gräns på 20 000 meddelanden (utgående trafik). Livespårning kan göra att du oväntat når den dagliga gränsen.

Starta livespårningsverktyget

Kommentar

När du aktiverar åtkomstnyckeln 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 kontrollera om du aktiverar åtkomstnyckeln eller inte på signalR-tjänstens nyckelsida i Azure Portal.

Steg för att aktivera åtkomstnyckeln

  1. Gå till sidan Azure Portal och SignalR Service.

  2. Välj Inställningar för livespårning under Övervakning på menyn till vänster.

  3. Välj Aktivera livespårning.

  4. Välj 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 starta livespårningsverktyget.

Steg för åtkomstnyckel inaktiverad

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

  1. Gå till sidan Azure Portal och SignalR Service.
  2. Välj Åtkomstkontroll (IAM) .
  3. På den nya sidan klickar du på +Lägg till och sedan på Rolltilldelning.
  4. På den nya sidan fokuserar du på fliken Jobbfunktionsroller , Välj rollen SignalR-tjänstägare och klickar sedan på Nästa.
  5. sidan Medlemmar klickar du på +Välj medlemmar.
  6. I den nya panelen söker du efter och väljer medlemmar och klickar sedan på Välj.
  7. Klicka på Granska + tilldela och vänta på slutförandemeddelandet.

Besök livespårningsverktyget

  1. Gå till sidan Azure Portal och SignalR Service.

  2. Välj Inställningar för livespårning under Övervakning på menyn till vänster.

  3. Välj Aktivera livespårning.

  4. Välj 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 starta livespårningsverktyget.

Logga in med ditt Microsoft-konto

  1. Livespårningsverktyget öppnar ett Microsoft-inloggningsfönster. Om inget fönster visas kontrollerar du och tillåter popup-fönster i webbläsaren.
  2. Vänta tills Klar visas i statusfältet.

Samla in resursloggarna

Livespårningsverktyget innehåller funktioner som hjälper dig att samla in resursloggarna för felsökning.

  • Avbilda: Börja samla in resursloggarna i realtid från Azure Web PubSub.
  • Rensa: Rensa de insamlade resursloggarna i realtid.
  • Loggfilter: Med livespårningsverktyget kan du filtrera insamlade realtidsresursloggar med ett specifikt nyckelord. De vanliga avgränsarna (till exempel blanksteg, kommatecken, semikolon och så vidare) behandlas som en del av nyckelordet.
  • Status: Statusen visar om livespårningsverktyget är anslutet eller frånkopplat till den specifika instansen.

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

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

Name Beskrivning
Time Logghändelsetid
Loggningsnivå Logghändelsenivå kan vara [Trace | Felsök | Information | Varning | Fel]
Händelsenamn Händelsens åtgärdsnamn
Meddelande Detaljerat meddelande för händelsen
Undantag Körningsfelet 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 Routningsmallen för API:et
Http-metod Http-metoden (POST/GET/PUT/DELETE)
webbadress Den enhetliga resurslokaliseraren
Spårnings-ID Den unika identifieraren för anropet
Statuskod Http-svarskoden
Varaktighet Varaktigheten mellan att ta emot begäran och bearbeta begäran
Sidhuvuden Ytterligare information som skickas av klienten och servern med en HTTP-begäran eller ett HTTP-svar

Samla in resursloggar med Azure Monitor

Så här aktiverar du resursloggar

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

  1. Gå till Azure-portalen.

  2. sidan Diagnostikinställningar för 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 kontrollerar du Arkivera till ett lagringskonto.

    Skärmbild av hur du konfigurerar information om diagnostikinställningar

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

    Kommentar

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

Arkivera till ett Azure Storage-konto

Loggar lagras i lagringskontot som har 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 kombineras med 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 för arkivloggar innehåller element som anges i följande tabeller:

Format

Name Beskrivning
time Logghändelsetid
nivå Logghändelsenivå
resourceId Resurs-ID för Din Azure SignalR Service
plats Plats för Din Azure SignalR Service
category Kategori för logghändelsen
operationName Händelsens åtgärdsnamn
callerIpAddress IP-adress för servern eller klienten
egenskaper Detaljerade egenskaper som är relaterade till den här logghändelsen. Mer information finns i egenskapstabellen nedan

Egenskapstabell

Name beskrivning
samling Insamling av logghändelsen. Tillåtna värden är: Connection, Authorization och Throttling
connectionId Anslutningens identitet
Användar-ID Användarens identitet
meddelande Detaljerat meddelande om logghändelse
nav Användardefinierat hubbnamn
routeTemplate Routningsmallen för API:et
httpMethod Http-metoden (POST/GET/PUT/DELETE)
URL Den enhetliga resurslokaliseraren
traceId Den unika identifieraren för anropet
statusCode Http-svarskoden
varaktighet Varaktigheten mellan begäran tas emot och bearbetas
rubriker 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 för 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. På sidan Diagnostikinställning går du till Målinformation och väljer **Skicka till Log Analytics-arbetsyta.
  2. Ange den prenumeration som du vill använda.
  3. Välj den Log Analytics-arbetsyta som ska användas som mål för loggarna.

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

  1. Välj Logs i mållogganalysen.

    Log Analytics-menyalternativ

  2. Ange WebPubSubConnectivity, WebPubSubMessaging eller WebPubSubHttpRequestoch välj sedan tidsintervallet för att fråga loggen. Avancerade frågor finns i Kom igång med Log Analytics i Azure Monitor.

    Frågelogg i Log Analytics

Följ stegen nedan om du vill använda en exempelfråga för SignalR-tjänsten.

  1. Välj Logs i mållogganalysen.
  2. Välj Queries för att öppna frågeutforskaren.
  3. Välj om du Resource type vill gruppera exempelfrågor i resurstyp.
  4. Välj Run att köra skriptet. Exempelfråga i Log Analytics

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

Name beskrivning
TimeGenerated Logghändelsetid
Samling Insamling av logghändelsen. Tillåtna värden är: Connection, Authorization och Throttling
OperationName Händelsens åtgärdsnamn
Plats Plats för Din Azure SignalR Service
Nivå Logghändelsenivå
CallerIpAddress IP-adressen för servern/klienten
Meddelande Detaljerat meddelande om logghändelse
AnvändarID Användarens identitet
ConnectionId Anslutningens identitet
ConnectionType Typ av anslutning. Tillåtna värden är: Server | Client. Server: anslutning från serversidan; Client: anslutning från klientsidan
TransportType Transporttyp för anslutningen. Tillåtna värden är: Websockets | ServerSentEvents | LongPolling

Felsöka med resursloggarna

Om du hittar oväntade ändringar i antalet anslutningar, som antingen ökar eller minskar, kan du använda resursloggar för att felsöka problemet. Vanliga problem handlar ofta om anslutningars oväntade kvantitetsändringar, anslutningar når anslutningsgränser och auktoriseringsfel.

Oväntade ändringar i antalet anslutningar

Oväntad anslutning har släppts

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. Även om det ConnectionAborted vanligtvis är en oväntad anslutningssläppningshändelse, anges orsaken till frånkopplingen i message.

Orsakerna till avbrottet visas i följande tabell:

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änstenhet
Tjänsten laddas om, återansluts Azure Web PubSub-tjänsten 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 Tillfälligt fel inträffar i Azure Web PubSub-tjänsten, bör återställas automatiskt

Oväntad ökning av anslutningar

När antalet klientanslutningar oväntat ökar är det första du behöver göra att filtrera bort de överflödiga anslutningarna. Lägg till ett unikt testanvändar-ID i testklientanslutningen. Kontrollera sedan resursloggarna. Om du ser 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. Försök att använda de giltiga målgrupper som föreslås i loggen.

Begränsning

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 Prissättning för Azure Web PubSub-tjänsten.