Moniteur de diagnostic

Le moniteur de diagnostic est une ressource de diagnostic intégrée dans within ArcGIS Pro. Les informations d’état, les journaux et les événements sont présentés et mis à jour en permanence dans le moniteur de diagnostic (Diagnostic Monitor) pendant le fonctionnement d’ArcGIS Pro. Le moniteur de diagnostic (Diagnostic Monitor) contient un ensemble d’onglets et d’indicateurs d’état. Le moniteur de diagnostic (Diagnostic Monitor) inclut actuellement les onglets Counter (Compteur), Tasks (Tâches) et Log (Journal).

Les informations de la boîte de dialogue Diagnostic Monitor (Moniteur de diagnostic) peuvent être utilisées pour aider à diagnostiquer différents problèmes liés à l’application, y compris les conditions sans réponse, la surconsommation de ressources, les défaillances de fonction et la dégradation des performances.

Vue d’ensemble du moniteur de diagnostic

Remarque :

Le moniteur de diagnostic est disponible dans tous les produits ArcGIS Pro et ne doit pas être confondu avec ArcGIS Monitor.

Démarrer le moniteur de diagnostic

Vous pouvez démarrer le moniteur de diagnostic de l’une des manières suivantes :

  • Appuyez sur Ctrl+Alt+M lorsqu’ArcGIS Pro est ouvert.
  • Démarrez ArcGIS Pro à partir de la ligne de commande à l’aide du commutateur /enablediagnostics.

Si vous utilisez l’option de ligne de commande, vous pouvez également inclure un paramètre /loglevel=debug pour activer le mode de débogage dans le moniteur de diagnostic. Le mode de débogage dure pendant toutes les sessions ArcGIS Pro qui suivent, tant que vous ne l’avez pas désactivé dans l’onglet Log (Journal).

Remarque :

Si le moniteur de diagnostic est activé à partir de la ligne de commande, la boîte de dialogue est au départ réduite sur la barre des tâches Microsoft Windows.

Pour résoudre un problème sur un processus particulier avec le moniteur de diagnostic, ouvrez le moniteur avant d’intervenir sur la zone qui pose problème. Pour configurer la boîte de dialogue Diagnostic Monitor (Moniteur de diagnostic) afin qu’elle reste en haut de toutes les autres fenêtres d’ArcGIS Pro, cliquez avec le bouton droit de la souris sur la zone de légende de la boîte de dialogue, puis cliquez sur Always On Top (Toujours en haut). Cela peut s’avérer utile lorsque vous souhaitez surveiller de près l’activité dans le moniteur de diagnostic tout en utilisant les différentes fonctionnalités de l’application.

Vue d’ensemble de l’architecture ArcGIS Pro

ArcGIS Pro est une application modulaire multithread 64 bits. Les sous-systèmes fonctionnels sont chargés à la demande et exécutent des travaux (le calcul d’une zone tampon ou le rendu d’une carte, par exemple) dans les threads de l’opérateur ou dans des processus séparés. Dans la plupart des cas, des blocs logiques de travaux (opérations) sont organisés en une ou plusieurs tâches pendant l’exécution. Les tâches sont des éléments essentiels quant à la manière dont les choses sont réalisées dans ArcGIS Pro, et elles sont mises en avant dans le moniteur de diagnostic.

Un thread dédié est chargé du rendu des éléments de l’interface utilisateur de l’application, ainsi que du traitement des entrées utilisateur sous la forme d’entrée avec le clavier ou de clics de souris. Lorsqu’une opération est en cours d’exécution sur l’un des threads de l’opérateur, le thread de l’interface utilisateur graphique (GUI) fournit un retour quant à la manière dont l’opération se déroule, ainsi que les moyens permettant d’annuler l’opération, le cas échéant. Le moniteur de diagnostic lui-même fonctionne sur un thread spécial qui est indépendant de la GUI. Cela permet à la boîte de dialogue Diagnostic Monitor (Moniteur de diagnostic) de rester réactive même si le thread de la GUI est interrompu.

Les threads de l’opérateur dans ArcGIS Pro sont divisés en familles dédiées à des domanies fonctionnels spécifiques.

  • Threads de premier plan : ensemble de quatre threads de l’opérateur qui gouverne le modèle d’informations cartographiques (CIM), le référentiel principal de l’état de configuration dans le projet chargé actuel. Ces threads permettent également d’accélérer le rendu cartographique. Certais types d’interactions de l’utilisateur sont interdits lorsque les opérations sont en cours d’exécution sur les Threads de premier plan.
  • Background Threads (Threads d’arrière-plan) : ces threads exécutent un large éventail d’opérations qui ne dépendent pas de l’état du CIM, et peuvent être exécutés indépendamment en arrière-plan pendant que l’utilisateur exécute d’autres actions. Les tâches attribuées aux threads d’arrière-plan à priorité élevée sont exécutées plus rapidement et sont prioritaires sur les tâches attribuées aux threads d’arrière-plan à faible priorité. Le thread Shared Background (Arrière-plan partagé) est utilisé dans des cas particuliers, lorsque des ensembles de tâches doivent être exécutés sur le même thread cohérent au fil du temps.
  • Geoprocessing Threads (Threads de géotraitement) : ce thread permet d’exécuter des opérations de géotraitement en arrière-plan. En interne, le thread de géotraitement collabore souvent avec d’autres threads pour exécuter une opération.
Vue d’ensemble des threads utilisés dans le moniteur de diagnostic

Zone Status (État)

La zone Status (État) contient des indicateurs Status (État) et des indicateurs Thread Activity (Activité du thread). Les indicateurs Status (État) affichent des couleurs différentes en fonction de l’état de l’application actuelle. Ils sont utiles pour réduire les problèmes se produisant dans l’application. Les indicateurs Thread Activity (Activité du thread) affichent des couleurs en fonction de l’état des threads correspondants.

Indicateurs d’état

Indicateurs d’état dans le moniteur de diagnostic

ElémentDescription
1

Le rouge indique que le thread de la GUI n’envoie plus de messages et ne peut pas réagir à une entrée avec la souris ou le clavier. Le rendu des graphiques de l’interface utilisateur peut être incorrect lorsque le thread de la GUI ne répond pas. Toutes les occurrences d’absence de réponses sont consignées dans le journal des absences de réponse.

2

Le jaune indique que la tâche active ne fait l’objet d’aucune progression et que, de ce fait, un retour inadapté est présenté à l’utilisateur lors de l’exécution de la tâche. Les tâches connexes sont également étiquetées en jaune lorsque cette condition est détectée.

3

Le jaune indique que le taux d’émission des tâches est supérieur à 10 par seconde.

4

Le vert indique qu’une ou plusieurs requêtes HTTP sont actuellement actives dans l’application.

5

Le vert indique qu’une tâche est en cours d’exécution sur le thread de premier plan. Plusieurs boutons et outils peuvent être indisponibles lors de l’exécution d’une tâche au premier plan.

6

Le jaune indique qu’une vue (contenant en général une carte, un globe, une scène ou une mise en page) est actuellement occupée. Plusieurs boutons et outils peuvent être indisponibles lorsqu’une vue est occupée.

7

Le jaune indique qu’une fenêtre est actuellement occupée. Plusieurs boutons et outils peuvent être indisponibles lorsqu’une fenêtre est occupée.

8

Le jaune indique qu’une tâche est bloquée en raison d’opérations de dessin en cours sur l’un des threads de premier plan. Plusieurs boutons et outils peuvent être indisponibles lorsque l’application est en attente.

9

Une tâche est bloquée lorsqu’une opération de dessin préalablement suspendue reprend. Plusieurs boutons et outils peuvent être indisponibles lorsque l’application reprend.

10

Le vert indique qu’une opération de géotraitement est en cours d’exécution. Cet indicateur s’éclaire qu’il s’agisse d’une opération de géotraitement en arrière-plan ou au premier plan.

Indicateurs d’activité des threads

Chaque thread mentionné ci-dessus est associé à un indicateur d’activité correspondant dans la zone d’état du moniteur de diagnostic. Les indicateurs d’état des threads sont verts si le thread associé est en cours de fonctionnement, et en gris si le thread est inactif (en veille). Les indicateurs d’état des threads peuvent être en gris foncé si le nombre de coeurs de la CPU de la machine hôte est insuffisant pour prendre en charge des threads supplémentaires.

Onglets du moniteur de diagnostic

Le moniteur de diagnostic (Diagnostic Monitor) contient les onglets Counters (Compteurs), Tasks (Tâches) et Log (Journal). L’onglet Counters (Compteurs) dresse la liste des compteurs internes. L’onglet Tasks (Tâches) affiche les tâches récentes. L’onglet Log (Journal) présente une visionneuse du journal d’événements.

Onglet Counters (Compteurs)

L’onglet Counters (Compteurs) est composé d’une liste de compteurs internes nommés. Chaque compteur est lié au diagramme au-dessus de la liste. Lorsqu’un compteur particulier de la liste est sélectionné, le diagramme se met à jour pour afficher les valeurs historiques de ce compteur sur les 20 dernières secondes.

Onglet Counters (Compteurs) du moniteur de diagnostic (Diagnostic Monitor)

La liste de compteurs contient des mesures utiles (espace mémoire utilisé, nombre de threads, nombre de requêtes HTTP et nombre de DLL chargées, par exemple). Certains compteurs doivent faire l’objet d’explications supplémentaires :

  • Current Task Rate (Fréquence de tâche actuelle) : fréquence actuelle à laquelle les tâches sont mises dans la file d’attente vers les threads de premier plan. Un nombre élevé indique qu’un nombre de tâches inutilement élevé est prévu pour exécuter l’opération. Les opérations avec un nombre de tâches élevé peuvent être moins efficaces.
  • CIM Counters (Compteurs CIM) : ces compteurs sont utilisés pour enregistrer le nombre total d’opérations de lecture et d’écriture sur le CIM. Les lectures et écritures liés à des dessins sont comptées séparément. Chaque opération faisant l’objet de frais généraux connexes, de plus petits déplacements sont préférables à des déplacements plus importants sur une période donnée.
  • IRequest Counters (Compteurs IRequest) : ces compteurs sont réservés à un usage interne.

Onglet Tasks (Tâches)

L’onglet Tasks (Tâches) contient un journal des tâches qui ont été récemment émises suite à l’interaction de l’utilisateur, ainsi qu’un autre journal pour toutes les conditions sans réponse qui se sont produites sur le thread de l’interface utilisateur graphique.

Tâches du moniteur de diagnostic

Journal Recent UI Task (Tâches d’interface utilisateur récentes)

Le journal Recent UI Task (Tâches d’interface utilisateur récentes) fournit un enregistrement des dernières tâches émises en réponse à des interactions d’utilisateur. Compte tenu des frais généraux liés à l’identification des fonctions de tâche, ce journal est indisponible lorsque la boîte de dialogue Diagnostic Monitor (Moniteur de diagnostic) est fermée. Par défaut, les tâches sont triées dans l’ordre chronologique, la dernière tâche exécutée se trouvant en haut de la liste. Les tâches internes (placées dans la file d’attente depuis l’exécution d’une tâche externe) n’apparaissent pas dans cette liste. Les tâches placées dans la file d’attente ou qui sont en cours d’exécution s’affichent en vert. Chaque tâche est associée à un ensemble de propriétés :

  • Task # (Tâche #) : nombre indiquant la séquence d’exécution d’une tâche. Par exemple, Task # 42 (Tâche # 42) indique la quarante-deuxième tâche exécutée dans le cadre du processus d’exécution.
  • Queued Time (Durée de mise en file d’attente) : temps horloge lorsque la tâche a été mise en file d’attente pour la première fois. Les tâches initiées alors qu’une autre tâche est toujours en cours d’exécution sont mises en file d’attente et ne commencent pas tant que la tâche en cours n’est pas terminée. Les boutons et contrôles sont en principe désactivés lorsqu’une tâche de premier plan est en cours d’exécution. Il s’agit d’empêcher la mise en file d’attente de tâches supplémentaires alors que l’état de l’application est en cours de transition.
  • Task time (Durée de la tâche) : durée, en millisecondes, liée à l’exécution actuelle de la tâche.
  • Resume Time (Heure de reprise) : durée passée à attendre, en millisecondes, une reprise du dessin.
  • Wait Time (Temps d’attente) : temps passé à attendre, en millisecondes, la fin des opérations liées à un dessin.
  • Total Time (Durée totale) : durée totale nécessaire, en millisecondes, pour exécuter la tâche, depuis le moment de sa mise en file d’attente jusqu’au moment où elle se termine (y compris toutes les durées liées à la reprise du dessin).
  • Function (Fonction) : nom de la fonction la plus externe correspondant le plus à la tâche.

Les tâches mises dans la file d’attente ou qui sont toujours en cours d’exécution affichent la valeur temporelle -1. La durée réelle s’affiche en millisecondes lorsque la tâche est terminée ou annulée.

Un heuristique est utilisé pour afficher la fonction la plus pertinente pour la tâche mise dans la file d’attente. L’heuristique est transmis à la pile d’appel recherchant une image contenant des fonctions non OS.

Le journal Recent UI Task (Tâches d’interface utilisateur récentes) peut être trié par colonne, dans l’ordre croissant ou décroissant. Cette fonctionnalité peut être utilisée pour identifier rapidement, par exemple, la tâche dont la durée d’exécution est la plus longue. Le contenu du journal peut être copié dans le presse-papiers ou supprimé en cliquant n’importe où dans la liste avec le bouton droit de la souris et en cliquant sur Copy (Copier) ou Clear (Effacer), respectivement.

Journal des absences de réponse

À chaque fois que le thread de la GUI ne donne pas de réponse, une condition d’absence de réponse est consignée, avec l’heure de début et la durée totale. Le contenu de ce journal peut être copié dans le presse-papiers en cliquant n’importe où dans la liste avec le bouton droit de la souris et en cliquant sur Copy (Copier).

Onglet Log (Journal)

L’onglet Log (Journal) est une visionneuse du journal d’événements en direct offrant des fonctionnalités de tri et de filtrage. En mode diagnostic, de nombreux sous-systèmes d’ArcGIS Pro écrivent des informations de diagnostic dans le journal des événements. Le mode diagnostic peut être activé à l’aide d’un argument de ligne de commande. Toutefois, il est également activé automatiquement lorsque le moniteur de diagnostic s’ouvre.

L’onglet Log (Journal) du moniteur de diagnostic

Il existe quatre types d’événements :

  • Erreur : utilisé pour indiquer les défaillances importantes pendant l’exécution de l’opération
  • Avertissement : moins critique, et peut parfois être ignoré
  • Informations : donne des informations contextuelles supplémentaires relatives à l’opération en cours d’exécution
  • Débogage : informations de mise en oeuvre détaillées, principalement destinées au personnel Esri

Les types d’événements peuvent être filtrés dans la liste à l’aide des cases à cocher correspondantes en haut de la liste. Compte tenu de leur importance, les événements d’erreur apparaissent toujours dans la liste et ne peuvent pas être filtrés. L’entrée de filtre peut être utilisée pour être plus sélective. Lorsque le texte est saisi ici, seuls les événements dont une au moins des colonnes contient ce texte (sensible à la casse) s’affichent.

Le nombre total d’événements correspondants s’affiche en haut à droite de l’onglet Log (Journal).

Fichiers journaux

Les fichiers journaux sont générés dans le sous-dossier ArcGIS\Diagnostics du dossier Documents de l’utilisateur. Dans le cas de ArcGIS Pro, les fichiers journaux sont similaires à ArcGISProLog-16360~89343E4F-74E8-4F26-A705-B805E8C92BB0 et possèdent les propriétés suivantes :

  • ArcGISProLog est le nom de l’exécutable hôte.
  • 16360 est l’ID de processus.
  • 89343E4F-74E8-4F26-A705-B805E8C92BB0 est l’ID unique créé pour cette instance.