Partager via


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

  1. Accédez au Portail Azure et à votre volet SignalR Service.

  2. Dans le menu du service, sous Surveillance, sélectionnez Paramètres de suivi 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.

    Capture d’écran de l’ouverture de l’outil de suivi 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

  1. Accédez au Portail Azure et à votre volet SignalR Service.

  2. Sélectionnez Contrôle d’accès (IAM) .

  3. Sélectionnez +Ajouter, puis Attribution de rôle.

  4. Sous l’onglet Rôles de fonction de tâche, sélectionnez le rôle Propriétaire SignalR Service, puis sélectionnez Suivant.

  5. Sur le volet Membres, cliquez sur +Sélectionner des membres.

  6. Recherchez et sélectionnez des membres, puis cliquez sur Sélectionner.

  7. Sélectionnez Vérifier + attribuer, puis attendez la notification d’achèvement.

Activer l’outil de suivi dynamique

  1. Accédez au Portail Azure et à votre volet SignalR Service.

  2. Dans le menu du service, sous Surveillance, sélectionnez Paramètres de suivi 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.

    Capture d’écran de l’ouverture de l’outil de suivi dynamique.

Connectez-vous avec votre compte Microsoft

  1. 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.

  2. 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.

Capture d’écran de la capture des journaux de ressources avec l’outil de suivi dynamique.

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.

  1. Accédez au portail Azure.

  2. Dans le volet Paramètres de diagnostic de votre instance de service Azure Web PubSub, sélectionnez + Ajouter un paramètre de diagnostic.

    Capture d’écran de l’affichage des paramètres de diagnostic et de la création d’un nouveau paramètre.

  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, sélectionnez Archiver dans un compte de stockage.

    Capture d’écran de la configuration du paramètre de diagnostic.

  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 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 :

  1. Dans le volet Paramètre de diagnostic, sous Détails de la destination, sélectionnez Envoyer à l’espace de travail Log Analytics.

  2. Dans Abonnement, sélectionnez l’abonnement que vous voulez utiliser.

  3. Pour la destination des journaux, sélectionnez Espace de travail Log Analytics.

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

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

    Capture d’écran de l’élément de menu Log Analytics.

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

    Capture d’écran d’une requête dans Log Analytics.

Pour utiliser un exemple de requête pour le service SignalR, procédez comme suit :

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

  2. Sélectionnez Requêtes pour ouvrir l’explorateur de requêtes.

  3. Sélectionnez Type de ressource pour regrouper des exemples de requêtes par type de ressource.

  4. Sélectionnez Exécuter pour exécuter le script.

    Capture d’écran d’un exemple de requête dans 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 (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.