Comment résoudre les problèmes liés aux journaux de ressources

Ce guide pratique fournit une vue d’ensemble des journaux de ressources Azure Web PubSub et quelques conseils pour utiliser les journaux d’activité pour résoudre certains problèmes. Les journaux peuvent être utilisés 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 : connectivité, messagerie et requêtes HTTP.

  • Les journaux de connectivité fournissent des informations détaillées sur les connexions au hub Azure Web PubSub. Par exemple, il peut s’agir d’informations de base (identifiant utilisateur, ID de connexion, etc.) et d’informations sur les événements (connexion, déconnexion, etc.).
  • Les journaux de messagerie fournissent des informations de suivi pour les messages du hub Azure Web PubSub reçus et envoyés via le service Azure Web PubSub. Par exemple, l’ID de suivi et le type de message du message.
  • Les journaux de requêtes HTTP fournissent des informations de suivi sur les requêtes HTTP envoyées au service Azure Web PubSub. Par exemple, la méthode HTTP et le code d’état. En général, la 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 permet de 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.

Remarque

Les considérations suivantes s’appliquent à l’utilisation de 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’outil de suivi en direct ne prend actuellement pas en charge l’autorisation Microsoft Entra. 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.
  • L’instance du service Azure Web PubSub de niveau de service gratuit a une limite quotidienne de 20 000 messages (trafic sortant). Le suivi dynamique peut vous faire atteindre la limite quotidienne de façon inattendue.

Lancer l’outil de suivi dynamique

Remarque

Quand vous activez la clé d’accès, vous utiliserez le jeton d’accès pour authentifier l’outil de suivi en direct. Sinon, vous allez utiliser l’ID Microsoft Entra pour authentifier l’outil de suivi en direct. Vous pouvez case activée si vous activez la clé d’accès ou non dans la page Clés de votre service SignalR dans Portail Azure.

Étapes pour la clé d’accès activée

  1. Accédez au portail Azure et à votre page SignalR Service.

  2. Dans le menu de gauche, sous Surveillance, sélectionnez Paramètres de trace dynamique.

  3. Sélectionnez Activer la trace dynamique.

  4. Sélectionnez le bouton Enregistrer. Il faut un certain temps pour que les modifications prennent effet.

  5. Une fois la mise à jour terminée, sélectionnez Ouvrir l’outil de trace dynamique.

    Screenshot of launching the live trace tool.

Étapes pour la clé d’accès désactivée

Attribuer l’autorisation de l’API de l’outil de suivi en direct à vous-même

  1. Accédez au portail Azure et à votre page SignalR Service.
  2. Sélectionnez Contrôle d’accès (IAM) .
  3. Dans la nouvelle page, cliquez sur +Ajouter, puis sur Attribution de rôle.
  4. Dans la nouvelle page, concentrez-vous sur l’onglet Rôles de fonction de travail, sélectionnez le rôle Propriétaire du service SignalR, puis cliquez sur Suivant.
  5. Dans la page Membres , cliquez sur +Sélectionner des membres.
  6. Dans le nouveau panneau, recherchez et sélectionnez des membres, puis cliquez sur Sélectionner.
  7. Cliquez sur Vérifier + affecter, puis attendez la notification d’achèvement.

Visitez l’outil de suivi en direct

  1. Accédez au portail Azure et à votre page SignalR Service.

  2. Dans le menu de gauche, sous Surveillance, sélectionnez Paramètres de trace dynamique.

  3. Sélectionnez Activer la trace dynamique.

  4. Sélectionnez le bouton Enregistrer. Il faut un certain temps pour que les modifications prennent effet.

  5. Une fois la mise à jour terminée, sélectionnez Ouvrir l’outil de trace dynamique.

    Screenshot of launching the live trace tool.

Connectez-vous avec votre compte Microsoft

  1. L’outil de suivi en direct affiche une fenêtre de connexion Microsoft. Si aucune fenêtre n’est contextuelle, case activée et autoriser les fenêtres contextuelles dans votre navigateur.
  2. Attendez l’affichage Prêt dans la barre d’état.

Capturer les journaux de ressources

L’outil de suivi dynamique offre des fonctionnalités qui vous permettent de capturer les journaux de ressources à des fins de dépannage.

  • Capturer : Commencez à capturer les journaux de ressources en temps réel à partir d’Azure Web PubSub.
  • Effacer : Effacez les journaux de ressources en temps réel capturés.
  • Filtre de journal : L’outil de suivi dynamique vous permet de filtrer les journaux de ressources en temps réel capturés à l’aide d’un mot clé spécifique. Le séparateur commun (par exemple, un espace, une virgule, un point-virgule, etc.) sera traité comme faisant partie du mot-clé.
  • État : L’état indique si l’outil de suivi dynamique est connecté ou déconnecté de l’instance spécifique.

Screenshot of capturing resource logs with live trace tool.

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
Time Heure de l’événement de journal
Niveau du journal Le niveau d’événement du journal peut être [Trace | Débogage | Information | Avertissement | Erreur]
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
ID d’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/DELETE)
URL Localisateur de ressource uniforme
ID de trace Identificateur unique de l’invocation
Code de statut Code de réponse HTTP
Durée Durée entre la réception de la requête et le traitement de la requête
headers 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

Comment activer les journaux de ressources

Actuellement, Azure Web PubSub prend en charge l’intégration avec Stockage Azure.

  1. Accédez au portail Azure.

  2. Sur la page Paramètres de diagnostic de votre instance de service Azure Web PubSub, sélectionnez + Ajouter un paramètre de diagnostic. Screenshot of viewing diagnostic settings and create a new one

  3. Dans Nom du paramètre de diagnostic, entrez le nom du paramètre.

  4. Dans Détails de la catégorie, sélectionnez toute catégorie de journal dont vous avez besoin.

  5. Dans Détails de la destination, cochez Archiver dans un compte de stockage.

    Screenshot of configuring diagnostic setting detail

  6. 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 du journal 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 Azure SignalR Service
location Emplacement de votre Azure SignalR Service
catégorie 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. Pour plus d’informations, voir le tableau des propriétés ci-dessous

Tableau des propriétés

Nom Description
collection Collection de l’événement de journal. Les valeurs autorisées sont : Connection, Authorization et 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/DELETE)
url Localisateur de ressource uniforme
traceId Identificateur unique de l’invocation
statusCode Code de réponse HTTP
durée La 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 de 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 :

  1. Dans la page Paramètres de diagnostic, sous Détails de destination, sélectionnez **Envoyer à l’espace de travail Log Analytics.
  2. Sélectionnez l’Abonnement à utiliser.
  3. Sélectionnez l’espace de travail Log Analytics à utiliser comme destination pour les journaux.

Pour afficher les journaux de ressources, procédez comme suit :

  1. Sélectionnez Logs dans votre espace de travail Log Analytics cible.

    Log Analytics menu item

  2. Entrez WebPubSubConnectivity, WebPubSubMessaging ou WebPubSubHttpRequest, puis sélectionnez l’intervalle de temps pour interroger le journal. Pour des requêtes avancées, voir Démarrer avec Log Analytics dans Azure Monitor.

    Query log in Log Analytics

Pour utiliser un exemple de requête pour le service SignalR, effectuez les étapes ci-dessous.

  1. Sélectionnez Logs dans votre espace de travail Log Analytics cible.
  2. Sélectionnez Queries pour ouvrir l’explorateur de requêtes.
  3. Sélectionnez Resource type pour regrouper des exemples de requêtes dans le type de ressource.
  4. Sélectionnez cette option Run pour exécuter le script. Sample query in Log Analytics

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. Les valeurs autorisées sont : Connection, Authorization et Throttling
NomOpération Nom d’opération de l’événement
Emplacement Emplacement de votre Azure SignalR Service
Niveau 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 la connexion. Valeurs autorisées : Server | Client. Server : connexion du côté serveur ; Client : connexion du côté client
TransportType Type de transport de la connexion. Les valeurs autorisées sont les suivantes : Websockets | ServerSentEvents | LongPolling

Résoudre les problèmes avec les journaux de ressources

Si vous constatez des modifications inattendues dans le nombre de connexions (augmentation ou diminution), vous pouvez utiliser les journaux de ressources pour résoudre le problème. Les problèmes courants sont souvent liés à des modifications inattendues du nombre de connexions, où les connexions atteignent les limites de connexion et entraînent un échec d’autorisation.

Modifications inattendues du nombre de connexions

Abandon de connexion inattendu

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. Tandis que ConnectionAborted est généralement un événement d’abandon de connexion inattendu. La raison de la déconnexion est fournie dans message.

Les motifs d’abandon sont répertoriés dans le tableau suivant :

Motif Description
Le nombre de connexions atteint la limite Le nombre de connexions atteint la limite de votre niveau tarifaire actuel. Envisagez une montée en puissance de l’unité de service
Rechargement du service, reconnexion Le service Azure Web PubSub se recharge. 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, qui doit être récupérée automatiquement

Augmentation inattendue des connexions

Lorsque le nombre de connexions clientes augmente de façon inattendue, la première chose à faire est de filtrer les connexions superflues. Ajouter un ID d’utilisateur test unique à votre connexion cliente test. Ensuite, passez en revue les journaux de ressources ; si vous constatez que plusieurs connexions clientes ont le même ID d’utilisateur 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 demandes 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 client 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 établissez un trop grand nombre de connexions au service Azure Web PubSub, et que la limite du nombre de connexions est atteinte. 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, voir Tarification du service Azure Web PubSub.