Diagnostic Monitor

Diagnostic Monitor ist ein integriertes Diagnosewerkzeug innerhalb von ArcGIS Pro. Während der Ausführung von ArcGIS Pro werden Statusinformationen, Protokolle und Ereignisse bereitgestellt und in Diagnostic Monitor fortlaufend aktualisiert. Diagnostic Monitor enthält verschiedene Registerkarten und Statusindikatoren. Aktuell enthält Diagnostic Monitor die Registerkarten Zähler, Tasks, Log, Diagnoseeigenschaften und Status.

Mithilfe der Informationen im Dialogfeld Diagnostic Monitor kann die Diagnose verschiedener Anwendungsprobleme wie z. B. nicht reagierende Systeme, übermäßiger Ressourcenverbrauch, Funktionsfehler und Performance-Verschlechterungen unterstützt werden.

Überblick über Diagnostic Monitor

Hinweis:

Diagnostic Monitor ist in allen auf ArcGIS Pro basierenden Produkten verfügbar und unterscheidet sich von ArcGIS Monitor, einem Produkt für ArcGIS Enterprise-Bereitstellungen.

Starten von Diagnostic Monitor

Sie können Diagnostic Monitor auf folgende Arten öffnen:

  • Klicken Sie in einem geöffneten Projekt auf dem Menüband auf die Registerkarte Hilfe. Klicken Sie in der Gruppe Performance auf Diagnostic Monitor Diagnostic Monitor.
  • Drücken Sie Strg+Alt+M, während ArcGIS Pro geöffnet ist. Es muss kein Projekt geöffnet sein.
  • Starten Sie ArcGIS Pro mit dem Befehlszeilenparameter /enablediagnostics.

Bei Verwendung der Befehlszeilenoption können Sie auch einen /loglevel=debug-Parameter einbinden, um den Debugmodus in Diagnostic Monitor zu aktivieren. Der Debugmodus bleibt während der nachfolgenden ArcGIS Pro-Sitzungen aktiviert, bis Sie ihn über die Registerkarte Log deaktivieren.

Hinweis:

Wenn Diagnostic Monitor über die Befehlszeile aktiviert wird, wird das Dialogfeld in der Microsoft Windows-Taskleiste zunächst minimiert angezeigt.

Um Probleme eines Workflow mit Diagnostic Monitor zu beheben, öffnen Sie den Monitor, bevor Sie mit der Arbeit am betreffenden Problembereich beginnen. Um das Dialogfeld Diagnostic Monitor so zu konfigurieren, dass es in ArcGIS Pro stets vor allen anderen Fenstern angezeigt wird, klicken Sie mit der rechten Maustaste auf den Titelbereich des Dialogfeldes, und klicken Sie dann auf Immer im Vordergrund. Dies kann nützlich sein, wenn Sie Aktivitäten bei Verwendung anderer Anwendungs-Features in Diagnostic Monitor genau überwachen möchten.

Ein Überblick über die Architektur von ArcGIS Pro

ArcGIS Pro ist eine modulare 64-Bit-Multi-Thread-Anwendung. Funktionale Subsysteme werden bei Bedarf geladen und führen Arbeiten wie die Berechnung von Puffern oder das Rendern einer Karte innerhalb von Worker-Threads oder separaten Worker-Prozessen aus. Meistens werden logische Arbeitseinheiten (Vorgänge) bei der Ausführung in einen oder mehrere Tasks aufgeteilt. Tasks sind bei der Arbeit in ArcGIS Pro von zentraler Bedeutung und stehen in Diagnostic Monitor im Vordergrund.

Für das Rendern der Bedienoberflächenelemente der Anwendung und für die Verarbeitung von Benutzereingaben in Form von Tastatureingaben und Mausklicks ist ein dedizierter Thread verantwortlich. Während ein Vorgang in einem der Worker-Threads ausgeführt wird, gibt der Thread der grafischen Bedienoberfläche (GUI) Feedback über den Fortschritt des Vorgangs und bietet ggf. die Möglichkeit, diesen abzubrechen. Diagnostic Monitor wird in einem Thread ausgeführt, der von der GUI unabhängig ist. Aus diesem Grund ist das Dialogfeld Diagnostic Monitor auch dann responsiv, wenn der GUI-Thread nicht reagiert.

Worker-Threads in ArcGIS Pro sind in Familien unterteilt, die jeweils für bestimmte Funktionsbereiche zuständig sind.

  • Vordergrund-Threads: Eine Gruppe von vier Worker-Threads, die das kartografische Informationssystem (Cartographic Information Model, CIM) steuern, das primäre Repository des Konfigurationsstatus innerhalb des aktuell geladenen Projekts. Diese Threads tragen auch dazu bei, das Karten-Rendering zu beschleunigen. Während Vorgänge in Vordergrund-Threads ausgeführt werden, sind bestimmte Typen von Benutzerinteraktionen unzulässig.
  • Hintergrund-Threads mit hoher Priorität und Hintergrund-Threads mit niedriger Priorität: Mit diesen Threads werden ganz unterschiedliche Vorgänge ausgeführt, die nicht vom Status des CIM abhängig sind und im Hintergrund ausgeführt werden können, während der Benutzer andere Aktionen ausführt. Tasks, die Hintergrund-Threads mit hoher Priorität zugewiesen sind, werden schneller ausgeführt und haben Priorität gegenüber Tasks, die Hintergrund-Threads mit niedriger Priorität zugewiesen sind.
  • Verschiedene Threads: Der Hintergrund-Geoverarbeitungs-Thread wird für die Durchführung von Geoverarbeitungsvorgängen im Hintergrund verwendet. Intern wird dieser Thread häufig zusammen mit anderen Threads verwendet, um einen Vorgang durchzuführen. Der geteilte Hintergrund-Thread wird in besonderen Fällen verwendet, in denen mehrere Tasks über einen längeren Zeitraum in demselben gleichbleibenden Thread ausgeführt werden müssen.
Überblick über die im Diagnostic Monitor verwendeten Threads

Statusbereich

Der Bereich Status enthält Indikatoren für den Status und die Thread-Aktivität. Indikatoren für den Status werden in Abhängigkeit vom aktuellen Anwendungsstatus in verschiedenen Farben angezeigt. Sie sind hilfreich, wenn es darum geht, Probleme einzugrenzen, die innerhalb der Anwendung auftreten. Indikatoren für die Thread-Aktivität werden je nach Status der entsprechenden Threads in verschiedenen Farben angezeigt.

Statusindikatoren

Statusindikatoren in Diagnostic Monitor

ElementBeschreibung
1

Rot zeigt an, dass der GUI-Thread keine Nachrichten mehr sendet und nicht auf Maus- oder Tastatureingaben reagieren kann. Wenn der GUI-Thread nicht reagiert, wird die Darstellung der Bedienoberfläche möglicherweise fehlerhaft gerendert. Wenn die Bedienoberfläche nicht reagiert, wird dies im entsprechenden Protokoll (Unresponsive Log) aufgezeichnet.

2

Gelb zeigt an, dass für den aktiven Task keine zugehörige Verlaufsanzeige vorhanden ist und dem Benutzer daher beim Ausführen des Tasks kein passendes Feedback angezeigt wird. In diesem Fall werden zugehörige Tasks im Task-Protokoll ebenfalls gelb gekennzeichnet.

3

Gelb zeigt an, dass die Ausgaberate für Tasks 10 pro Sekunde überschritten hat.

4

Grün bedeutet, dass aktuell mindestens eine HTTP-Anforderung innerhalb der Anwendung aktiv ist.

5

Grün bedeutet, dass aktuell ein Task im Vordergrund-Thread ausgeführt wird. Während der Ausführung eines Vordergrund-Tasks sind möglicherweise verschiedene Schaltflächen und Werkzeuge nicht verfügbar.

6

Gelb bedeutet, dass eine Ansicht – üblicherweise eine Karte, einen Globus, eine Szene oder ein Layout beinhaltend – derzeit ausgelastet ist. Während eine Ansicht ausgelastet ist, sind möglicherweise verschiedene Schaltflächen und Werkzeuge nicht verfügbar.

7

Gelb bedeutet, dass ein Bereich derzeit ausgelastet ist. Während ein Bereich ausgelastet ist, sind möglicherweise verschiedene Schaltflächen und Werkzeuge nicht verfügbar.

8

Gelb bedeutet, dass ein Task aufgrund von Darstellungsvorgängen, die derzeit in einem der Vordergrund-Threads ausgeführt werden, angehalten wird. Während die Anwendung wartet, sind möglicherweise verschiedene Schaltflächen und Werkzeuge nicht verfügbar.

9

Gelb bedeutet, dass ein Task angehalten wird, während ein zuvor angehaltener Darstellungsvorgang fortgesetzt wird. Während die Anwendung fortgesetzt wird, sind möglicherweise verschiedene Schaltflächen und Werkzeuge nicht verfügbar.

10

Grün bedeutet, dass aktuell ein Geoverarbeitungsvorgang ausgeführt wird. Dieser Indikator leuchtet auf, unabhängig davon, ob es sich um einen Hintergrund- oder Vordergrund-Geoverarbeitungsvorgang handelt.

Indikatoren für die Thread-Aktivität

Jeder der zuvor genannten Threads verfügt innerhalb des Statusbereichs von Diagnostic Monitor über einen entsprechenden Aktivitätsindikator. Indikatoren für den Thread-Status sind grün, wenn der zugehörige Thread derzeit ausgeführt wird und grau, wenn der Thread nicht aktiv (im Ruhezustand) ist. Die Indikatoren für den Thread-Status können dunkelgrau angezeigt werden, wenn die CPU des Host-Computers nicht genügend Kerne besitzt, um zusätzliche Threads zu unterstützen.

Diagnostic Monitor-Registerkarten

Diagnostic Monitor enthält die Registerkarten Zähler, Tasks, Log, Diagnoseeigenschaften und Status. Auf der Registerkarte Zähler werden die internen Zähler aufgeführt. Auf der Registerkarte Tasks werden die letzten Tasks angezeigt. Die Registerkarte Log enthält eine Ereignisprotokollanzeige. Auf der Registerkarte Diagnoseeigenschaften werden diagnostische Informationen angezeigt. Auf der Registerkarte Status sehen Sie den Status aller aktivierten Anwendungen und aktiven Ansichten, die mit der jeweiligen ArcGIS Pro-Sitzung verknüpft sind.

Registerkarte "Zähler"

Die Registerkarte Zähler enthält eine Liste benannter interner Zähler. Jeder Zähler ist mit dem Graphen oberhalb der Liste verknüpft. Bei Auswahl eines Zählers in der Liste wird der Graph aktualisiert und zeigt die historischen Werte für den betreffenden Zähler während der letzten 20 Sekunden an.

Registerkarte "Zähler" in Diagnostic Monitor

Die Liste der Zähler enthält nützliche Kennwerte, wie z. B. den Speicherbedarf, die Anzahl der Threads, die Anzahl der HTTP-Anforderungen und die Anzahl geladener DLLs. Einige der Zähler müssen näher erläutert werden:

  • Aktuelle Task-Rate: Die aktuelle Rate, mit der Tasks in die Warteschlange der Vordergrund-Threads gestellt werden. Ein hoher Wert kann hier darauf hinweisen, dass eine unnötig große Anzahl von Tasks für die Durchführung des Vorgangs ausgegeben wird. Vorgänge mit einer großen Anzahl von Tasks können weniger effizient sein.
  • CIM-Zähler: Diese Zähler werden verwendet, um die Gesamtzahl der Lese- und Schreibvorgänge im CIM zu erfassen. Lese- und Schreibvorgänge für die Darstellung werden separat gezählt. Da jeder Vorgang mit Overhead verbunden ist, sind kleinere Sprünge gegenüber größeren innerhalb einer Zeitspanne zu bevorzugen.
  • IRequest-Zähler: Diese Zähler sind für die interne Verwendung reserviert.

Registerkarte "Tasks"

Die Registerkarte Tasks enthält ein Protokoll für Tasks, die vor kurzem in Folge von Benutzerinteraktionen ausgegeben wurden, und ein anderes Protokoll für alle Reaktionsfehler, die im GUI-Thread aufgetreten sind.

Tasks in Diagnostic Monitor

Protokoll der zuletzt verwendeten UI-Tasks

Das Protokoll der zuletzt verwendeten UI-Tasks stellt eine Aufzeichnung der neuesten Tasks zur Verfügung, die aufgrund von Benutzerinteraktionen ausgegeben wurden. Aufgrund des mit der Identifikation von Tasks verbundenen Overheads ist dieses Protokoll nicht verfügbar, wenn das Dialogfeld Diagnostic Monitor geschlossen ist. Standardmäßig werden Tasks in chronologischer Reihenfolge sortiert, wobei der zuletzt ausgeführte Task ganz oben in der Liste aufgeführt ist. Innere Tasks (die innerhalb des ausführenden äußeren Tasks in die Warteschlange gestellt werden) werden in dieser Liste nicht angezeigt. Tasks, die sich in der Warteschlange befinden oder gerade ausgeführt werden, werden grün angezeigt. Jeder Task verfügt über eine Reihe zugehöriger Eigenschaften:

  • Task-Nr.: Eine Zahl, mit der die Position eines Tasks in der Ausführungsreihenfolge angegeben wird. Task Nr. 42 würde beispielsweise den zweiundvierzigsten Task angeben, der innerhalb des laufenden Prozesses ausgeführt wird.
  • In Warteschlange gestellt: Die Uhrzeit, als der Task in die Warteschlange gestellt wurde. Tasks, die ausgelöst werden, während ein anderer Task noch ausgeführt wird, werden in die Warteschlange gestellt und erst nach Abschluss des aktuellen Tasks ausgeführt. Schaltflächen und Steuerelemente sind normalerweise deaktiviert, während ein Vordergrund-Task ausgeführt wird, um zu verhindern, dass zusätzliche Tasks in die Warteschlange gestellt werden, während der Zustand der Anwendung wechselt.
  • Task-Zeit: Die mit der Ausführung des Tasks verbundene Zeitspanne in Millisekunden
  • Zeit zum Fortsetzen: Die Wartezeit in Millisekunden bis die Darstellung fortgesetzt wurde.
  • Wartezeit: Die Wartezeit in Millisekunden bis zum Abschluss darstellungsbezogener Vorgänge.
  • Gesamtzeit: Die insgesamt benötigte Zeit in Millisekunden, um den Task auszuführen, von dem Zeitpunkt an, an dem der Task in die Warteschlange gestellt wurde, bis zum Abschluss des Tasks (einschließlich der für die Fortsetzung der Darstellung benötigten Zeit)
  • Funktion: Der Name der äußersten Funktion, die am besten mit dem Task verknüpft ist.

Bei Tasks, die sich in der Warteschlange befinden oder noch ausgeführt werden, wird "-1" für die Zeitwerte angezeigt. Die tatsächliche Zeit wird in Millisekunden angezeigt, wenn der Task abgeschlossen oder abgebrochen wird.

Es wird eine Heuristik verwendet, um die Funktion anzuzeigen, die für den Task in der Warteschlange am relevantesten ist. Die Heuristik durchläuft den Stapel der Aufrufe und sucht nach einem Rahmen, der Funktionen enthält, die nicht zum Betriebssystem gehören.

Das Protokoll der zuletzt verwendeten UI-Tasks kann nach jeder Spalte in aufsteigender oder absteigender Reihenfolge sortiert werden. Diese Funktion kann verwendet werden, um z. B. den Task mit der längsten Ausführungszeit zu ermitteln. Wenn Sie mit der rechten Maustaste auf eine beliebige Stelle in der Liste klicken, können Sie den Inhalt des Protokolls in die Zwischenablage kopieren oder löschen, indem Sie auf Kopieren bzw. Löschen klicken.

Protokoll für GUI ohne Reaktion

Immer wenn der GUI-Thread nicht mehr reagiert, wird ein entsprechendes Ereignis protokolliert, das die Startzeit und die gesamte Dauer des Ereignisses enthält. Der Inhalt dieses Protokolls kann in die Zwischenablage kopiert werden, indem Sie mit der rechten Maustaste auf eine beliebige Stelle in der Liste klicken und dann auf Kopieren klicken.

Registerkarte "Log"

Die Registerkarte Log ist eine Live-Ereignisprotokollanzeige mit Sortier- und Filterfunktionen. Bei der Ausführung im Diagnosemodus werden von zahlreichen ArcGIS Pro-Subsystemen Diagnoseinformationen in das Ereignisprotokoll geschrieben. Der Diagnosemodus kann mithilfe eines Befehlszeilenarguments aktiviert werden. Er wird jedoch auch automatisch aktiviert, wenn Diagnostic Monitor angezeigt wird.

Registerkarte "Log" in Diagnostic Monitor

Es gibt vier Ereignistypen:

  • Fehler: Dient zum Anzeigen signifikanter Fehler während der Ausführung eines Vorgangs
  • Warnung: Weniger kritisch – kann ggf. ignoriert werden
  • Information: Dient der Bereitstellung zusätzlicher Kontextinformationen zum Vorgang
  • Debug: Detaillierte Informationen zur Implementierung, in erster Linie für Esri Mitarbeiter

Die Ereignistypen innerhalb der Liste können mithilfe der entsprechenden Kontrollkästchen oberhalb der Liste gefiltert werden. Aufgrund ihrer Bedeutung sind Fehlerereignisse immer in der Liste enthalten und können nicht herausgefiltert werden. Mithilfe des Filters ist eine genauere Auswahl möglich. Wenn hier Text eingegeben wird, werden nur Ereignisse angezeigt, bei denen mindestens eine der Spalten diesen Text (ohne Beachtung der Groß-/Kleinschreibung) enthält.

Die Gesamtzahl übereinstimmender Ereignisse wird rechts oben auf der Registerkarte Log angezeigt.

Protokolldateien

Protokolldateien werden unter dem Ordner "Dokumente" des Benutzers im Unterordner ArcGIS\Diagnostics angelegt. In ArcGIS Pro sehen die Protokolldateien folgendermaßen aus: ArcGISProLog-16360~89343E4F-74E8-4F26-A705-B805E8C92BB0, und sie haben die folgenden Eigenschaften:

  • ArcGISProLog ist der Name der ausführbaren Hostdatei.
  • 16360 ist die Prozess-ID.
  • 89343E4F-74E8-4F26-A705-B805E8C92BB0 ist die eindeutige ID, die für die betreffende Instanz erstellt wurde.

Registerkarte "Diagnoseeigenschaften"

Die Registerkarte Diagnoseeigenschaften enthält diagnostische Informationen, die in Fehlerberichte eingefügt werden, damit sie von Esri Mitarbeitern geprüft werden können.

Registerkarte "Diagnoseeigenschaften" in Diagnostic Monitor

Die Werte unter Name geben Folgendes an:

  • per_user_install: Parameter, der angibt, ob die ArcGIS Pro-Installation, mit der Diagnostic Monitor ausgeführt wird, pro Benutzer oder pro Computer installiert wurde.

    WertDefinition

    no

    Die ArcGIS Pro-Installation wurde für alle Benutzer des Computers durchgeführt.

    yes

    Die ArcGIS Pro-Installation wurde nur für den angemeldeten Benutzer durchgeführt.

  • cmd_line: Die Befehlszeilenargumente gefolgt von Windows, als ArcGIS Pro geöffnet wurde.
  • client_proto: Zeigt den Computertyp, auf dem ArcGIS Pro verwendet wird. Die Werte lauten wie folgt:

    WertDefinition

    0

    ArcGIS Pro wird nativ auf dem Computer ausgeführt.

    1

    ArcGIS Pro wird auf einem virtuellen Computer (Virtual Machine, VM) ausgeführt.

    2

    ArcGIS Pro wird auf einem Computer ausgeführt, auf den über Windows Remote Desktop Protocol (RDP) zugegriffen wird.

  • secondary-instance: Parameter, der angibt, ob die ArcGIS Pro-Anwendung die einzige Instanz der Anwendung ist, die gerade ausgeführt wird.

    WertDefinition

    no

    Es wird nur eine Instanz von ArcGIS Pro gerade ausgeführt.

    yes

    Es wird mehr als eine Instanz von ArcGIS Pro gerade ausgeführt.

  • Last active view: Die letzte Ansicht in der Anwendung, die aktiv war, bevor diese Registerkarte in Diagnostic Monitor angezeigt wurde. Werte können gültige Ansichten wie die Kartenansicht oder die Layout-Ansicht sein. Im obigen Beispiel bezieht sich esri_mapping_mapPane auf die Kartenansicht.
  • Last command: Die letzte Schaltfläche der Bedienoberfläche, auf die der Benutzer geklickt hat. Im obigen Beispiel bezieht sich esri_mapping_colorVisionSimulatorButton auf die Schaltfläche Simulator von Farbsinnstörungen.
  • Last active dockpane: Der letzte Bereich in der Anwendung, der aktiv war, bevor diese Registerkarte in Diagnostic Monitor angezeigt wurde. Zu den Werten können alle gültigen Bereiche wie Inhalt oder Katalog gehören. Im obigen Beispiel bezieht sich esri_core_contentsDockPane auf den Bereich Inhalt.

Registerkarte "Status"

Auf der Registerkarte Status sehen Sie den Status aller aktivierten Anwendungen und aktiven Ansichten, die mit der jeweiligen ArcGIS Pro-Sitzung verknüpft sind. Neue Einträge werden in die jeweilige Spalte mit Fettformatierung eingefügt.

Registerkarte "Status" in Diagnostic Monitor

Anwendungsstatus und Status aktiver Ansichten sind Teil eines Mechanismus, mit dem die ArcGIS Pro-Umgebung angibt, wann verschiedene Elemente der Bedienoberfläche von ArcGIS Pro, z. B. Registerkarten, Schaltflächen und Werkzeuge, in den sichtbaren, nicht sichtbaren oder aktivierten Zustand versetzt werden sollen. So erhält der Benutzer eine übersichtliche Bedienoberfläche, die an den jeweiligen Task angepasst ist.

Diese Funktionalität von Diagnostic Monitor ist besonders nützlich für Entwickler von ArcGIS Pro-Add-ins, um sich zu vergewissern, dass der definierte Status ordnungsgemäß aktiviert und deaktiviert wird.

Weitere Informationen zu Bedingungen und Status

Überlagerung der Darstellungs-Performance

Sie können die Problembehandlungsüberlagerung, die Darstellungsstatistiken meldet, über das Dialogfeld Tastenkombinationen unter Global > Überlagerung der Darstellungs-Performance aktivieren. Durch Drücken der festgelegten Tastenkombination kann die Überlagerung ein- und ausgeschaltet werden.

Fehlerbehebung bei Performance-Problemen

Tipps zum Konfigurieren von ArcGIS Pro zur Verbesserung der Performance finden Sie unter Fehlerbehebung bei Performance-Problemen in ArcGIS Pro in der Esri Community.