Résoudre les problèmes liés aux journaux de ressource
Ce guide pratique fournit une vue d’ensemble des journaux de ressources Azure Web PubSub et des conseils pour les utiliser à des fins de dépannage. Vous pouvez utiliser les journaux pour l’identification des problèmes, le suivi des connexions, le suivi des messages, le traçage des requêtes HTTP et l’analyse.
Qu’est-ce que les journaux de ressources ?
Il existe trois types de journaux de ressources :
- Les journaux de connectivité fournissent des informations détaillées sur les connexions au hub Azure Web PubSub. Ils peuvent inclure des informations de base, telles que l’identifiant utilisateur et l’ID de connexion, ou des informations sur les événements comme les connexions et les déconnexions.
- Les journaux de messagerie fournissent des informations de suivi pour les messages hub envoyés ou reçus via le service Azure Web PubSub, comme l’ID de suivi ou le type de message.
- Les journaux de requête HTTP fournissent des informations de suivi pour les requêtes HTTP au service Azure Web PubSub, comme la méthode HTTP ou le code d’état. En général, une requête HTTP est enregistrée lorsqu’elle arrive au service ou en part.
Capturer les journaux de ressources à l’aide de l’outil de suivi dynamique
L’outil de suivi dynamique du service Azure Web PubSub peut collecter des journaux de ressources en temps réel, ce qui est utile pour résoudre les problèmes dans votre environnement de développement. L’outil de suivi dynamique peut capturer les journaux de connectivité, les journaux de messagerie et les journaux de requêtes HTTP.
Vous devez tenir compte des facteurs suivants lorsque vous utilisez l’outil de suivi dynamique :
- Les journaux de ressources en temps réel capturés par l’outil de suivi dynamique sont facturés comme des messages (trafic sortant).
- L’instance de niveau de service gratuit du service Azure Web PubSub a une limite quotidienne de 20 000 messages (trafic sortant). En utilisant le suivi dynamique, vous pouvez atteindre la limite quotidienne de façon inattendue.
- L’outil de suivi dynamique ne prend pas en charge l’autorisation Microsoft Entra pour le moment. Vous devez activer les clés d’accès pour utiliser le suivi dynamique. Sous Paramètres, sélectionnez Clés, puis activez la clé d’accès.
Lancer l’outil de suivi dynamique
Lorsque vous activez une clé d’accès, vous utilisez le jeton d’accès pour authentifier l’outil de suivi dynamique. Sinon, vous utilisez Microsoft Entra ID pour authentifier l’outil de suivi dynamique. Vous pouvez déterminer si la clé d’accès est activée en accédant au volet Clés de votre instance Azure SignalR Service dans le Portail Azure.
Ouvrez le suivi dynamique lorsque la clé d’accès est activée
Accédez au Portail Azure et à votre volet SignalR Service.
Dans le menu du service, sous Surveillance, sélectionnez Paramètres de suivi dynamique.
Sélectionnez Activer la trace dynamique.
Sélectionnez le bouton Enregistrer. Il faut un certain temps pour que les modifications prennent effet.
Une fois la mise à jour terminée, sélectionnez Ouvrir l’outil de trace dynamique.
Ouvrir l’outil de suivi dynamique lorsque la clé d’accès est désactivée
Attribuer l’autorisation de l’API de l’outil Live Trace à vous-même
Accédez au Portail Azure et à votre volet SignalR Service.
Sélectionnez Contrôle d’accès (IAM) .
Sélectionnez +Ajouter, puis Attribution de rôle.
Sous l’onglet Rôles de fonction de tâche, sélectionnez le rôle Propriétaire SignalR Service, puis sélectionnez Suivant.
Sur le volet Membres, cliquez sur +Sélectionner des membres.
Recherchez et sélectionnez des membres, puis cliquez sur Sélectionner.
Sélectionnez Vérifier + attribuer, puis attendez la notification d’achèvement.
Activer l’outil de suivi dynamique
Accédez au Portail Azure et à votre volet SignalR Service.
Dans le menu du service, sous Surveillance, sélectionnez Paramètres de suivi dynamique.
Sélectionnez Activer la trace dynamique.
Sélectionnez le bouton Enregistrer. Il faut un certain temps pour que les modifications prennent effet.
Une fois la mise à jour terminée, sélectionnez Ouvrir l’outil de trace dynamique.
Connectez-vous avec votre compte Microsoft
L’outil de suivi dynamique entraîne l’ouverture d’une fenêtre de connexion Microsoft. Si aucune fenêtre ne s’affiche, autorisez les fenêtres contextuelles dans les paramètres de votre navigateur.
Attendez que la mention Prêt apparaisse dans la barre d’état.
Capturer les journaux de ressources
L’outil de suivi dynamique peut vous aider à capturer les journaux de ressources à des fins de dépannage.
- Capturer : l’outil commence à capturer les journaux de ressources en temps réel à partir d’Azure Web PubSub.
- Effacer : l’outil efface les journaux de ressources en temps réel capturés.
- Filtre de journal : l’outil filtre les journaux de ressources en temps réel capturés sur la base d’un mot clé spécifique. Les séparateurs courants tels que l’espace, la virgule et le point-virgule sont considérés comme appartenant au mot clé.
- État : indique si l’outil de suivi dynamique est connecté ou déconnecté de l’instance spécifique.
Les journaux de ressources en temps réel capturés par l’outil de suivi dynamique contiennent des informations détaillées pour la résolution des problèmes.
Nom | Description |
---|---|
Heure | Heure de l’événement de journal |
Niveau de consignation | Niveau de l’événement de journal (Trace , Debug , Informational , Warning ou Error ) |
Nom de l’événement | Nom d’opération de l’événement |
Message | Message détaillé concernant l’événement |
Exception | Exception d’exécution du service Azure Web PubSub |
Hub | Nom du hub défini par l’utilisateur |
ID de connexion | Identité de la connexion |
Code utilisateur | Identité de l’utilisateur |
IP | Adresse IP du client |
Modèle de routage | Modèle de routage de l’API |
Méthode HTTP | Méthode HTTP (POST , GET , PUT ou DELETE ) |
URL | Uniform Resource Locator |
ID de trace | Identificateur unique de l’invocation |
Code d’état | Code de réponse HTTP |
Durée | Durée entre la réception de la requête et le traitement de la requête |
En-têtes | Informations supplémentaires passées par le client et le serveur à l’aide d’une requête ou d’une réponse HTTP |
Capturer les journaux de ressources avec Azure Monitor
Activer les journaux de ressources
Actuellement, Azure Web PubSub prend en charge l’intégration avec Stockage Azure.
Accédez au portail Azure.
Dans le volet Paramètres de diagnostic de votre instance de service Azure Web PubSub, sélectionnez + Ajouter un paramètre de diagnostic.
Dans Nom du paramètre de diagnostic, entrez le nom du paramètre.
Dans Détails de la catégorie, sélectionnez toute catégorie de journal dont vous avez besoin.
Dans Détails de la destination, sélectionnez Archiver dans un compte de stockage.
Sélectionnez Enregistrer pour créer le paramètre de diagnostic.
Remarque
Le compte de stockage doit être dans la même région que le service Azure Web PubSub.
Archiver dans un compte de stockage Azure
Les journaux sont stockés dans le compte de stockage configuré dans le volet Paramètres de diagnostic. Un conteneur nommé insights-logs-<CATEGORY_NAME>
est automatiquement créé pour stocker les journaux de ressources. Dans le conteneur, les journaux sont stockés dans le fichier 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
. Le chemin d’accès est combiné par resource ID
et Date Time
. Les fichiers journaux sont fractionnés par hour
. La valeur de minute est toujours m=00
.
Tous les journaux d’activité sont stockés au format JSON (JavaScript Object Notation). Chaque entrée comporte des champs de type chaîne au format décrit dans les sections suivantes.
Les chaînes JSON dans les journaux d’archivage incluent les éléments répertoriés dans les tableaux suivants.
Format
Nom | Description |
---|---|
time |
Heure de l’événement de journal |
level |
Niveau de l’événement de journal |
resourceId |
ID de ressource de votre instance Azure SignalR Service |
location |
Emplacement de votre instance Azure SignalR Service |
category |
Catégorie de l’événement de journal |
operationName |
Nom d’opération de l’événement |
callerIpAddress |
Adresse IP de votre serveur ou client |
properties |
Propriétés détaillées relatives à cet événement de journal (voir le tableau suivant) |
Tableau des propriétés
Nom | Description |
---|---|
collection |
Collection de l’événement de journal (Connection , Authorization ou Throttling ) |
connectionId |
Identité de la connexion |
userId |
Identité de l’utilisateur |
message |
Message détaillé de l’événement de journal |
hub |
Nom du hub défini par l’utilisateur |
routeTemplate |
Modèle de routage de l’API |
httpMethod |
Méthode HTTP (POST , GET , PUT ou DELETE ) |
url |
Uniform Resource Locator |
traceId |
Identificateur unique de l’invocation |
statusCode |
Code de réponse HTTP |
duration |
Durée entre la réception de la requête et son traitement |
headers |
Informations supplémentaires passées par le client et le serveur à l’aide d’une requête ou d’une réponse HTTP |
Le code suivant est un exemple de chaîne JSON dans un journal d’archivage :
{
"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"
}
Archiver dans Azure Log Analytics
Pour envoyer les journaux d’activité à un espace de travail Log Analytics :
Dans le volet Paramètre de diagnostic, sous Détails de la destination, sélectionnez Envoyer à l’espace de travail Log Analytics.
Dans Abonnement, sélectionnez l’abonnement que vous voulez utiliser.
Pour la destination des journaux, sélectionnez Espace de travail Log Analytics.
Pour afficher les journaux de ressources, procédez comme suit :
Sélectionnez Journaux dans votre espace de travail Log Analytics cible.
Pour interroger le journal, entrez
WebPubSubConnectivity
,WebPubSubMessaging
ouWebPubSubHttpRequest
, puis sélectionnez l’intervalle de temps. Pour des requêtes avancées, voir Démarrer avec Log Analytics dans Azure Monitor.
Pour utiliser un exemple de requête pour le service SignalR, procédez comme suit :
Sélectionnez Journaux dans votre espace de travail Log Analytics cible.
Sélectionnez Requêtes pour ouvrir l’explorateur de requêtes.
Sélectionnez Type de ressource pour regrouper des exemples de requêtes par type de ressource.
Sélectionnez Exécuter pour exécuter le script.
Les colonnes du journal d’archivage incluent les éléments répertoriés dans le tableau suivant.
Nom | Description |
---|---|
TimeGenerated |
Heure de l’événement de journal |
Collection |
Collection de l’événement de journal (Connection , Authorization et Throttling ) |
OperationName |
Nom d’opération de l’événement |
Location |
Emplacement de votre instance Azure SignalR Service |
Level |
Niveau de l’événement de journal |
CallerIpAddress |
Adresse IP de votre serveur/client |
Message |
Message détaillé de l’événement de journal |
UserId |
Identité de l’utilisateur |
ConnectionId |
Identité de la connexion |
ConnectionType |
Type de connexion (Server , une connexion côté serveur ; et Client , une connexion côté client) |
TransportType |
Type de transport de la connexion (Websockets , ServerSentEvents et LongPolling ) |
Utiliser les journaux de ressources pour résoudre des problèmes
Si vous observez des augmentations ou des diminutions inattendues du nombre de connexions, vous pouvez résoudre le problème à l’aide des journaux de ressources. Les problèmes potentiels incluent des modifications inattendues de la quantité de connexion, des connexions qui atteignent les limites de connexions et des échecs d’autorisations.
Événements de déconnexion inattendus
Si une connexion est perdue, les journaux de ressources enregistrent cet événement de déconnexion avec ConnectionAborted
ou ConnectionEnded
dans operationName
.
La différence entre ConnectionAborted
et ConnectionEnded
est que ConnectionEnded
est une déconnexion attendue déclenchée du côté du client ou du serveur. En revanche, ConnectionAborted
fait généralement référence à un événement dans lequel une connexion est perdue de manière inattendue, et la raison de la déconnexion est fournie dans message
.
Le tableau suivant répertorie les raisons d’une déconnexion inattendue.
Motif | Description |
---|---|
Le nombre de connexions atteint la limite | Le nombre de connexions atteint la limite de votre niveau de prix actuel. Envisagez d’effectuer un scale-up de l’unité de service. |
Rechargement du service, reconnexion | Le service Azure Web PubSub est rechargé. Vous devez implémenter votre propre mécanisme de reconnexion ou vous reconnecter manuellement au service Azure Web PubSub. |
Erreur temporaire de serveur interne | Une erreur temporaire se produit dans le service Azure Web PubSub. La récupération devrait être automatique. |
Augmentation inattendue des connexions
Lorsque le nombre de connexions clientes augmente de façon inattendue, vous devez suivre ces étapes. Tout d’abord, filtrez les connexions superflues et ajoutez un identifiant utilisateur de test unique à votre connexion cliente de test. Ensuite, vérifiez les journaux de ressources. Si vous constatez que plusieurs connexions clientes ont le même identifiant utilisateur de test ou la même adresse IP, il est probable que le client crée plus de connexions que prévu. Vérifiez votre code client pour trouver la source des connexions supplémentaires.
Échec de l’autorisation
Si l’erreur 401 Non autorisé est retournée pour des requêtes de clients, vérifiez vos journaux de ressources. Si vous rencontrez Failed to validate audience. Expected Audiences: <valid audience>. Actual Audiences: <actual audience>
, cela signifie qu’aucune des audiences dans votre jeton d’accès n’est valide. Essayez d’utiliser les audiences valides suggérées dans le journal.
Limitation
Si vous constatez que vous ne pouvez pas établir de connexions clientes au service Azure Web PubSub, vérifiez vos journaux de ressources. Si vous voyez Connection count reaches limit
dans le journal de ressources, cela signifie que vous avez établi trop de connexions au service Azure Web PubSub et atteint la limite du nombre de connexions. Envisagez d’effectuer un scale-up de votre instance du service Azure Web PubSub.
Si vous voyez Message count reaches limit
dans le journal des ressources et que vous utilisez le niveau Gratuit, cela signifie que vous avez atteint le quota de messages. Si vous souhaitez envoyer davantage de messages, envisagez de mettre à niveau votre instance de service Azure Web PubSub vers le niveau standard. Pour plus d’informations, consultez Tarification d’Azure Web PubSub.