Řešení potíží s protokoly prostředků
Tento průvodce postupy poskytuje přehled protokolů prostředků Azure Web PubSub a tipy pro použití protokolů k řešení problémů. Protokoly můžete použít k identifikaci problému, sledování připojení, trasování zpráv, trasování požadavků HTTP a analýze.
Co jsou protokoly prostředků?
Existují tři typy protokolů prostředků:
- Protokoly připojení poskytují podrobné informace o připojeních centra Azure Web PubSub. Můžou obsahovat základní informace, jako je ID uživatele a ID připojení, nebo informace o událostech, jako je připojení a odpojení.
- Protokoly zasílání zpráv poskytují informace o trasování zpráv centra, které se odesílají nebo přijímají prostřednictvím služby Azure Web PubSub, jako je ID trasování nebo typ zprávy.
- Protokoly požadavků HTTP poskytují trasovací informace pro požadavky HTTP na službu Azure Web PubSub, jako je metoda HTTP nebo stavový kód. Požadavek HTTP se obvykle zaznamená, když dorazí do služby nebo z ní odejde.
Zachycení protokolů prostředků pomocí nástroje živého trasování
Nástroj živého trasování ve službě Azure Web PubSub může shromažďovat protokoly prostředků v reálném čase, což je užitečné při řešení problémů ve vašem vývojovém prostředí. Nástroj živého trasování může zaznamenávat protokoly připojení, protokoly zasílání zpráv a protokoly požadavků HTTP.
Při použití nástroje pro živé trasování byste měli zvážit následující faktory:
- Protokoly prostředků v reálném čase, které zachytává nástroj pro živé trasování, se účtují jako zprávy (odchozí provoz).
- Instance úrovně Free služby Azure Web PubSub má denní limit 20 000 zpráv (odchozí provoz). Denní limit můžete neočekávaně dosáhnout pomocí živého trasování.
- Nástroj živého trasování v současné době nepodporuje autorizaci Microsoft Entra. Abyste mohli živé trasování používat, musíte povolit přístupové klíče. V části Nastavení vyberte Klíče a pak povolte přístupový klíč.
Spuštění nástroje živého trasování
Když povolíte přístupový klíč, použijete přístupový token k ověření nástroje živého trasování. V opačném případě použijete Microsoft Entra ID k ověření nástroje živého trasování. To, jestli je přístupový klíč povolený, zjistíte tak, že přejdete do podokna Klíče v instanci služby Azure SignalR na webu Azure Portal.
Otevření živého trasování při povolení přístupového klíče
Přejděte na web Azure Portal a podokno služby SignalR.
V nabídce služby v části Monitorování vyberte nastavení živého trasování.
Vyberte Povolit živé trasování.
Vyberte tlačítko Uložit. Změny se projeví za chvíli.
Po dokončení aktualizace vyberte Otevřít nástroj Živé trasování.
Otevřete nástroj živého trasování, když je přístupový klíč zakázaný.
Přiřazení oprávnění rozhraní API nástroje živého trasování sobě
Přejděte na web Azure Portal a podokno služby SignalR.
Vyberte Řízení přístupu (IAM) .
Vyberte +Přidat a pak vyberte Přiřazení role.
Na kartě Role funkce úlohy vyberte roli Vlastník služby SignalR a pak vyberte Další.
V podokně Členové klikněte na +Vybrat členy.
Vyhledejte a vyberte členy a klepněte na tlačítko Vybrat.
Vyberte Zkontrolovat a přiřadit a počkejte na oznámení o dokončení.
Povolení nástroje živého trasování
Přejděte na web Azure Portal a podokno služby SignalR.
V nabídce služby v části Monitorování vyberte nastavení živého trasování.
Vyberte Povolit živé trasování.
Vyberte tlačítko Uložit. Změny se projeví za chvíli.
Po dokončení aktualizace vyberte Otevřít nástroj Živé trasování.
Přihlásit se pomocí účtu Microsoft
Nástroj živého trasování způsobí, že se otevře přihlašovací okno Microsoftu. Pokud se neotevře žádné okno, povolte automaticky otevíraná okna v nastavení prohlížeče.
Počkejte na zobrazení Připraveno na stavovém řádku.
Zachycení protokolů prostředků
Nástroj živého trasování vám může pomoct zachytit protokoly prostředků pro účely řešení potíží.
- Zachytávání začne zaznamenávat protokoly prostředků v reálném čase z azure Web PubSub.
- Vymaže zachycené protokoly prostředků v reálném čase.
- Filtr protokolu filtruje zachycené protokoly prostředků v reálném čase jedním konkrétním klíčovým slovem. Běžné oddělovače, jako je mezera, čárka a středník, se považují za součást klíčového slova.
- Stav ukazuje, jestli je nástroj živého trasování připojený nebo odpojený s konkrétní instancí.
Protokoly prostředků v reálném čase zachycené nástrojem pro živé trasování obsahují podrobné informace pro řešení potíží.
Název | Popis |
---|---|
Time | Protokolovat čas události |
Úroveň protokolu | Úroveň událostí protokolu (Trace , Debug , Warning Informational nebo Error ) |
Název události | Název operace události |
Zpráva | Podrobná zpráva o události |
Výjimka | Výjimka modulu runtime služby Azure Web PubSub |
Centrum | Uživatelsky definovaný název centra |
ID připojení | Identita připojení |
ID uživatele | Identita uživatele |
IP | IP adresa klienta |
Šablona trasy | Šablona trasy rozhraní API |
Metoda HTTP | Metoda HTTP (POST , GET nebo PUT DELETE ) |
Adresa URL | Lokátor jednotek prostředků |
ID trasování | Jedinečný identifikátor vyvolání |
Stavový kód | Kód odpovědi protokolu HTTP |
Doba trvání | Doba trvání mezi příjmem žádosti a zpracováním žádosti |
Záhlaví | Další informace předávané klientem a serverem s požadavkem nebo odpovědí HTTP |
Zachycení protokolů prostředků pomocí služby Azure Monitor
Povolení protokolů prostředků
Azure Web PubSub v současné době podporuje integraci se službou Azure Storage.
Přejděte na Azure Portal.
V podokně Nastavení diagnostiky instance služby Azure Web PubSub vyberte + Přidat nastavení diagnostiky.
Do pole Název nastavení diagnostiky zadejte název nastavení.
V podrobnostech o kategorii vyberte libovolnou kategorii protokolu, kterou potřebujete.
V podrobnostech cíle vyberte Možnost Archivovat do účtu úložiště.
Výběrem možnosti Uložit uložte nastavení diagnostiky.
Poznámka:
Účet úložiště by měl být ve stejné oblasti jako služba Azure Web PubSub.
Archivace do účtu úložiště Azure
Protokoly se ukládají do účtu úložiště nakonfigurovaného v podokně nastavení diagnostiky. Kontejner s názvem insights-logs-<CATEGORY_NAME>
se automaticky vytvoří pro ukládání protokolů prostředků. V kontejneru jsou protokoly uloženy v souboru 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
. Cesta se zkombinuje a resource ID
Date Time
. Soubory protokolu jsou rozděleny podle hour
. Hodnota minuty je vždy m=00
.
Všechny protokoly se ukládají ve formátu JSON (JavaScript Object Notation). Každá položka obsahuje pole řetězců, která používají formát popsaný v následujících částech.
Řetězce JSON v archiválních protokolech obsahují prvky uvedené v následujících tabulkách.
Formát
Název | Popis |
---|---|
time |
Protokolovat čas události |
level |
Úroveň událostí protokolu |
resourceId |
ID prostředku instance služby Azure SignalR Service |
location |
Umístění instance služby Azure SignalR Service |
category |
Kategorie události protokolu |
operationName |
Název operace události |
callerIpAddress |
IP adresa vašeho serveru nebo klienta |
properties |
Podrobné vlastnosti související s touto událostí protokolu (viz následující tabulka) |
Tabulka Vlastností
Název | Popis |
---|---|
collection |
Shromažďování událostí protokolu (Connection Authorization neboThrottling ) |
connectionId |
Identita připojení |
userId |
Identita uživatele |
message |
Podrobná zpráva o události protokolu |
hub |
Uživatelsky definovaný název centra |
routeTemplate |
Šablona trasy rozhraní API |
httpMethod |
Metoda HTTP (POST , GET nebo PUT DELETE ) |
url |
Lokátor jednotek prostředků |
traceId |
Jedinečný identifikátor vyvolání |
statusCode |
Kód odpovědi protokolu HTTP |
duration |
Doba trvání mezi přijetí a zpracováním požadavku |
headers |
Další informace předávané klientem a serverem s požadavkem nebo odpovědí HTTP |
Následující kód je příkladem řetězce JSON v archivačním protokolu:
{
"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"
}
Archivace do Azure Log Analytics
Odeslání protokolů do pracovního prostoru služby Log Analytics:
V podokně Nastavení diagnostiky vyberte v části Podrobnosti o cíli možnost Odeslat do pracovního prostoru služby Log Analytics.
V rozevíracím seznamu Předplatné vyberte předplatné, které chcete použít.
Jako cíl protokolů vyberte pracovní prostor služby Log Analytics.
Pokud chcete zobrazit protokoly prostředků, postupujte takto:
Vyberte protokoly v cílovém pracovním prostoru služby Log Analytics.
Pokud chcete zadat dotaz na protokol, zadejte
WebPubSubConnectivity
neboWebPubSubHttpRequest
WebPubSubMessaging
a pak vyberte časový rozsah. Pokročilé dotazy najdete v tématu Začínáme se službou Log Analytics ve službě Azure Monitor.
Pokud chcete použít ukázkový dotaz pro službu SignalR, postupujte takto:
Vyberte protokoly v cílovém pracovním prostoru služby Log Analytics.
Výběrem možnosti Dotazy otevřete Průzkumníka dotazů.
Výběrem typu prostředek seskupíte ukázkové dotazy podle typu prostředku.
Vyberte Spustit a spusťte skript.
Sloupce protokolu archivu obsahují prvky uvedené v následující tabulce.
Název | Popis |
---|---|
TimeGenerated |
Protokolovat čas události |
Collection |
Shromažďování událostí protokolu (Connection , Authorization a Throttling ) |
OperationName |
Název operace události |
Location |
Umístění instance služby Azure SignalR Service |
Level |
Úroveň událostí protokolu |
CallerIpAddress |
IP adresa vašeho serveru nebo klienta |
Message |
Podrobná zpráva o události protokolu |
UserId |
Identita uživatele |
ConnectionId |
Identita připojení |
ConnectionType |
Typ připojení (Server připojení ze strany serveru; a Client , připojení ze strany klienta) |
TransportType |
Typ přenosu spojení (Websockets , ServerSentEvents a LongPolling ) |
Řešení potíží s využitím protokolů prostředků
Pokud zjistíte neočekávané zvýšení nebo snížení počtu připojení, můžete problém vyřešit pomocí protokolů prostředků. Mezi potenciální problémy patří neočekávané změny množství připojení, připojení při dosažení limitů připojení a selhání autorizace.
Neočekávané události odpojení
Pokud se připojení odpojí, zaznamená prostředek událost odpojení s ConnectionAborted
nebo ConnectionEnded
v operationName
.
Rozdíl mezi ConnectionAborted
a ConnectionEnded
je to ConnectionEnded
očekávaný odpojení aktivované klientem nebo serverem. Naproti tomu obvykle odkazuje na událost, ConnectionAborted
ve které připojení neočekávaně klesne, a důvod odpojení je uveden v message
.
Následující tabulka uvádí důvody neočekávaného odpojení.
Důvod | Popis |
---|---|
Počet připojení dosáhne limitu | Počet připojení dosáhne limitu vaší aktuální cenové úrovně. Zvažte vertikální navýšení kapacity jednotky služby. |
Opětovné načítání služby, opětovné připojení | Služba Azure Web PubSub se znovu načítá. Musíte implementovat vlastní mechanismus opětovného připojení nebo se ručně znovu připojit ke službě Azure Web PubSub. |
Vnitřní přechodná chyba serveru | Ve službě Azure Web PubSub dojde k přechodné chybě. Obnovení by mělo být automatické. |
Neočekávané zvýšení počtu připojení
Pokud se počet klientských připojení neočekávaně zvýší, měli byste postupovat podle těchto kroků. Nejprve vyfiltrujte nadbytečná připojení a přidejte jedinečné ID testovacího uživatele do připojení testovacího klienta. Pak zkontrolujte protokoly prostředků. Pokud si všimnete, že více než jedno připojení klienta má stejné TESTOVACÍ ID uživatele nebo IP adresu, je pravděpodobné, že klient vytváří více připojení, než se čekalo. Zkontrolujte kód klienta a vyhledejte zdroj dalších připojení.
Selhání autorizace
Pokud se pro požadavky klientů vrátí 401 Neautorizováno , zkontrolujte protokoly prostředků. Pokud zjistíte Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>
, znamená to, že všechny cílové skupiny ve vašem přístupového tokenu jsou neplatné. Zkuste použít platné cílové skupiny navrhované v protokolu.
Omezování
Pokud zjistíte, že nemůžete navázat připojení klientů ke službě Azure Web PubSub, zkontrolujte protokoly prostředků. Pokud se v protokolu prostředků zobrazí Connection count reaches limit
, vytvořili jste příliš mnoho připojení ke službě Azure Web PubSub a dosáhli jste limitu počtu připojení. Zvažte vertikální navýšení kapacity instance služby Azure Web PubSub.
Pokud se v protokolu prostředků zobrazí Message count reaches limit
a používáte úroveň Free, znamená to, že jste použili kvótu zpráv. Pokud chcete odesílat další zprávy, zvažte změnu instance služby Azure Web PubSub na úroveň Standard. Další informace najdete v tématu Azure Web PubSub – ceny.