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
Gå till sidan Azure Portal och SignalR Service.
Välj Inställningar för livespårning under Övervakning på menyn till vänster.
Välj Aktivera livespårning.
Välj knappen Spara . Det tar en stund innan ändringarna börjar gälla.
När uppdateringen är klar väljer du Öppna livespårningsverktyget.
Steg för åtkomstnyckel inaktiverad
Tilldela direktspårningsverktygs-API-behörighet till dig själv
- Gå till sidan Azure Portal och SignalR Service.
- Välj Åtkomstkontroll (IAM) .
- På den nya sidan klickar du på +Lägg till och sedan på Rolltilldelning.
- På den nya sidan fokuserar du på fliken Jobbfunktionsroller , Välj rollen SignalR-tjänstägare och klickar sedan på Nästa.
- På sidan Medlemmar klickar du på +Välj medlemmar.
- I den nya panelen söker du efter och väljer medlemmar och klickar sedan på Välj.
- Klicka på Granska + tilldela och vänta på slutförandemeddelandet.
Besök livespårningsverktyget
Gå till sidan Azure Portal och SignalR Service.
Välj Inställningar för livespårning under Övervakning på menyn till vänster.
Välj Aktivera livespårning.
Välj knappen Spara . Det tar en stund innan ändringarna börjar gälla.
När uppdateringen är klar väljer du Öppna livespårningsverktyget.
Logga in med ditt Microsoft-konto
- Livespårningsverktyget öppnar ett Microsoft-inloggningsfönster. Om inget fönster visas kontrollerar du och tillåter popup-fönster i webbläsaren.
- 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.
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.
Gå till Azure-portalen.
På sidan Diagnostikinställningar för din Azure Web PubSub-tjänstinstans väljer du + Lägg till diagnostikinställning.
I Namn på diagnostikinställning anger du inställningsnamnet.
I Kategoriinformation väljer du alla loggkategorier som du behöver.
I Målinformation kontrollerar du Arkivera till ett lagringskonto.
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:
- På sidan Diagnostikinställning går du till Målinformation och väljer **Skicka till Log Analytics-arbetsyta.
- Ange den prenumeration som du vill använda.
- 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:
Välj
Logs
i mållogganalysen.Ange
WebPubSubConnectivity
,WebPubSubMessaging
ellerWebPubSubHttpRequest
och välj sedan tidsintervallet för att fråga loggen. Avancerade frågor finns i Kom igång med Log Analytics i Azure Monitor.
Följ stegen nedan om du vill använda en exempelfråga för SignalR-tjänsten.
- Välj
Logs
i mållogganalysen. - Välj
Queries
för att öppna frågeutforskaren. - Välj om du
Resource type
vill gruppera exempelfrågor i resurstyp. - Välj
Run
att köra skriptet.
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.