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 Live Trace 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 utilisez le jeton d’accès pour authentifier l’outil Live Trace. Sinon, vous allez utiliser Microsoft Entra ID pour authentifier l’outil Live Trace. Vous pouvez vérifier si vous activez la clé d’accès ou non sur votre page Clés SignalR Service dans le Portail Azure.
Étapes pour la clé d’accès activée
Accédez au portail Azure et à votre page SignalR Service.
Dans le menu de gauche, sous Surveillance, sélectionnez Paramètres de trace 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.
Étapes pour la clé d’accès désactivée
Attribuer l’autorisation de l’API de l’outil Live Trace à vous-même
- Accédez au portail Azure et à votre page SignalR Service.
- Sélectionnez Contrôle d’accès (IAM) .
- Sur la nouvelle page, cliquez sur +Ajouter, puis sur Attribution de rôle.
- Sur la nouvelle page, concentrez-vous sur l’onglet Rôles de fonction de travail, sélectionnez le rôle Propriétaire SignalR Service, puis cliquez sur Suivant.
- Sur la page Membres, cliquez sur +Sélectionner des membres.
- Dans le nouveau panneau, recherchez et sélectionnez des membres, puis cliquez sur Sélectionner.
- Cliquez sur Vérifier + attribuer, puis attendez la notification d’achèvement.
Visiter l’outil Live Trace
Accédez au portail Azure et à votre page SignalR Service.
Dans le menu de gauche, sous Surveillance, sélectionnez Paramètres de trace 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 Live Trace affiche une fenêtre de connexion Microsoft. Si aucune fenêtre contextuelle n’apparaît, vérifiez que les fenêtres contextuelles sont autorisées dans votre navigateur.
- Attendez que Prêt apparaisse 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.
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 |
---|---|
Temps | 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 |
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
Comment activer les journaux de ressources
Actuellement, Azure Web PubSub prend en charge l’intégration avec Stockage Azure.
Accédez au portail Azure.
Sur la page 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, cochez 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 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 |
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. 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 :
- Dans la page Paramètres de diagnostic, sous Détails de destination, sélectionnez **Envoyer à l’espace de travail Log Analytics.
- Sélectionnez l’Abonnement à utiliser.
- Sélectionnez l’espace de travail Log Analytics à utiliser comme destination pour les journaux.
Pour afficher les journaux de ressources, procédez comme suit :
Sélectionnez
Logs
dans votre espace de travail Log Analytics cible.Entrez
WebPubSubConnectivity
,WebPubSubMessaging
ouWebPubSubHttpRequest
, 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.
Pour utiliser un exemple de requête pour le service SignalR, effectuez les étapes ci-dessous.
- Sélectionnez
Logs
dans votre espace de travail Log Analytics cible. - Sélectionnez
Queries
pour ouvrir l’explorateur de requêtes. - Sélectionnez
Resource type
pour regrouper des exemples de requêtes dans le type de ressource. - Sélectionnez
Run
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. 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 : 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.