診断モニター

[診断モニター] は、ArcGIS Pro の統合された診断機能です。 ArcGIS Pro の実行中に、[診断モニター] でステータス情報、ログ、およびイベントが表示され、継続的に更新されます。[診断モニター] には、一連のタブとステータス インジケーターが含まれています。現在、[診断モニター] には、[カウンター] タブ、[タスク] タブ、[ログ] タブ、[診断プロパティ] タブ、および [状態] タブがあります。

[診断モニター] ダイアログ ボックス上の情報を使用して、非応答状態、リソースの過剰消費、機能障害、パフォーマンスの低下など、アプリケーションのさまざまな問題を診断できます。

診断モニターの概要

注意:

[診断モニター] は、ArcGIS Pro ベースのすべての製品で使用でき、ArcGIS Enterprise 配置用の「ArcGIS Monitor」とは異なる製品です。

診断モニターの開始

[診断モニター] は、次の方法で開始できます。

  • 開いているプロジェクトで、リボン上の [ヘルプ] タブをクリックします。 [パフォーマンス] グループで、[診断モニター] 診断モニター をクリックします。
  • ArcGIS Pro が開いている状態で、Ctrl + Alt + M キーを押します。 プロジェクトを開く必要はありません。
  • コマンド ライン スイッチの /enablediagnostics を使用して、ArcGIS Pro を起動します。

コマンド ライン オプションを使用すると、/loglevel=debug パラメーターを指定して、[診断モニター] でデバッグ モードを有効にできます。 デバッグ モードは、[ログ] タブで無効にしない限り、後続の ArcGIS Pro セッションを通じて有効です。

注意:

[診断モニター] をコマンド ラインから有効にした場合、ダイアログ ボックスは、当初、Microsoft Windows のタスクバー上で最小化されています。

[診断モニター] でワークフローのトラブルシューティングを行うには、問題が発生しているエリアで作業する前に、モニターを開きます。 ArcGIS Pro の他のすべてのウィンドウの上に常に表示されるよう [診断モニター] ダイアログ ボックスを構成するには、ダイアログ ボックスのキャプション エリアを右クリックして、[常に上部に表示] をクリックします。 さまざまなアプリケーション機能を使用しながら、[診断モニター] でアクティビティを厳密に監視したい場合は、これが便利です。

ArcGIS Pro のアーキテクチャの概要

ArcGIS Pro は、64 ビットのマルチスレッド モジュール アプリケーションです。 機能的なサブシステムがオンデマンドで読み込まれ、ワーカー スレッド内または個別のワーカー プロセス内で作業 (バッファーの計算やマップのレンダリングなど) を実行します。 ほとんどの場合、作業 (操作) の論理単位は、実行中に 1 つ以上のタスクにまとめられます。 タスクは ArcGIS Pro で作業を実行する方法において中心的役割を果たし、[診断モニター] 内で目立つように特徴付けられています。

専用のスレッドは、アプリケーションのユーザー インターフェイス エレメントをレンダリングする役割、およびキーボード入力とマウス クリックの形式でのユーザー入力を処理する役割を担います。 いずれかのワーカー スレッドで操作が実行されている間、GUI (グラフィカル ユーザー インターフェイス) スレッドは、操作の進捗状況と、操作をキャンセルする方法 (該当する場合) に関連するフィードバックを提供します。 [診断モニター] は、GUI とは関係のないスレッドで動作します。 このため、GUI スレッドが応答しなくなっても、[診断モニター] ダイアログ ボックスは応答性を維持できます。

ArcGIS Pro のワーカー スレッドは、特定の機能領域専用のファミリーに分割されています。

  • [フォアグラウンド スレッド] - 現在読み込まれているプロジェクトの構成状態のプライマリ リポジトリである CIM (Cartographic Information Model) を管理する 4 つのワーカー スレッドのセット。 これらのスレッドは、マップ レンダリングの高速化にも役立ちます。 フォアグラウンド スレッドで操作が実行されている間は、一部の種類のユーザー操作が禁止されます。
  • [高優先度のバックグラウンド スレッド] および [低優先度のバックグラウンド スレッド] - これらのスレッドは、CIM の状態に依存しない広範囲な操作を実行し、ユーザーが他の操作を実行している間、バックグラウンドで実行できます。 高優先度のバックグラウンド スレッドに割り当てられているタスクは、低優先度のバックグラウンド スレッドに割り当てられているタスクよりも高速に実行され、優先度が高くなります。
  • [その他のスレッド] - バックグラウンド ジオプロセシング スレッドは、バックグラウンド ジオプロセシング操作の実行に使用されます。 多くの場合、このスレッドは内部で他のスレッドと連携して操作を完了します。 共有バックグラウンド スレッドは、一連のタスクを長時間にわたって同じ一貫したスレッドで実行する必要がある特別な場合に使用されます。
診断モニターで使用されるスレッドの概要

ステータス エリア

[ステータス] エリアには、[ステータス] インジケーターと [スレッド アクティビティ] インジケーターが含まれています。 [ステータス] インジケーターは、現在のアプリケーション ステータスに応じてさまざまな色を表示します。 これらのインジケーターは、アプリケーションで発生している問題を絞り込むために役立ちます。 [スレッド アクティビティ] インジケーターは、対応するスレッドのステータスに基づいて色を表示します。

ステータス インジケーター

診断モニターのステータス インジケーター

要素説明
1

赤色は、GUI スレッドがメッセージを送信しなくなり、マウスまたはキーボード入力に反応できないことを示します。GUI スレッドが応答していないと、UI グラフィックスが正しくレンダリングされない可能性があります。 非応答の発生は、非応答ログに記録されます。

2

黄色は、アクティブなタスクに関連付けられたプロセッサーがないため、タスクの実行中に不適切なフィードバックがユーザーに提示されている場合を示します。 この状態が検出されると、関連するタスクにもタスク ログで黄色のフラグが付けられます。

3

黄色は、タスクの発行率が 1 秒あたり 10 を超えていることを示します。

4

緑色は、アプリケーションで 1 つ以上の HTTP リクエストが現在アクティブであることを示します。

5

緑色は、フォアグラウンド スレッドで現在タスクが実行されていることを示します。 フォアグラウンド タスクが実行されている間、さまざまなボタンおよびツールが使用できないことがあります。

6

黄色は、ビュー (通常は、マップ、グローブ、シーン、またはレイアウトを含む) が現在ビジー状態であることを示します。 ビューがビジー状態である間、さまざまなボタンおよびツールが使用できないことがあります。

7

黄色は、ウィンドウが現在ビジー状態であることを示します。 ウィンドウがビジー状態である間、さまざまなボタンおよびツールが使用できないことがあります。

8

黄色は、いずれかのフォアグラウンド スレッドで描画関連の操作が現在実行されているためにタスクが停止されていることを示します。 アプリケーションが待機状態である間、さまざまなボタンおよびツールが使用できないことがあります。

9

黄色は、以前に一時停止された描画操作が再開されている間、タスクは停止されていることを示します。 アプリケーションが再開している間、さまざまなボタンおよびツールが使用できないことがあります。

10

緑色は、ジオプロセシング操作が現在実行されていることを示します。 このインジケーターは、そのジオプロセシング操作がバックグラウンドであるかフォアグラウンドであるかに関係なく点灯します。

スレッド アクティビティ インジケーター

前述の各スレッドは、[診断モニター] のステータス エリア内に、対応するアクティビティ インジケーターを持っています。 関連付けられているスレッドが現在実行されている場合、スレッド ステータス インジケーターは緑色で、スレッドが非アクティブ (スリープ状態) である場合はグレーです。 ホスト コンピューターの CPU に、追加のスレッドをサポートするための十分なコアがない場合、スレッド ステータス インジケーターはダーク グレーで表示されることがあります。

診断モニターのタブ

[診断モニター] は、[カウンター] タブ、[タスク] タブ、[ログ] タブ、[診断プロパティ] タブ、[状態] タブで構成されています。 [カウンター] タブには、内部カウンターが一覧表示されます。 [タスク] タブには、最近のタスクが表示されます。 [ログ] タブには、イベント ログ ビューアーが表示されます。 [診断プロパティ] タブには、診断情報が表示されます。 [状態] タブでは、有効化されたアプリケーションのすべての状態と、対応する ArcGIS Pro セッションに関連付けられたアクティブ ビューの状態を表示できます。

カウンター タブ

[カウンター] タブは、名前付きの内部カウンターのリストで構成されています。 各カウンターは、リストの上にあるグラフにリンクされています。 リスト内のカウンターが選択されると、グラフが更新され、直近 20 秒間のそのカウンターの履歴値が表示されます。

診断モニターのカウンター タブ

カウンター リストの中には、メモリ消費量、スレッド数、HTTP リクエスト数、読み込まれた DLL 数など、役に立つメトリクスがあります。 いくつかのカウンターについて、さらに説明する必要があります。

  • 現在のタスク レート - タスクがフォアグラウンド スレッドのキューに配置されている現在のレート。 この数値が高い場合は、操作を実行するために必要以上に多数のタスクが発行されていることを示すことがあります。 多数のタスクでの操作は、効率が低くなる可能性があります。
  • CIM カウンター - これらのカウンターは、CIM 上の読み取り/書き込み操作の総数の記録に使用されます。 描画関連の読み取り/書き込みは、個別にカウントされます。 各操作には関連するオーバーヘッドがあるため、時間内で大きな移動よりも小さな移動のほうが望ましくなります。
  • IRequest カウンター - これらのカウンターは、内部使用に向けて予約されています。

タスク タブ

[タスク] タブには、ユーザー操作から最近発行されたタスクのログと、GUI スレッドで発生した非応答状態のもう 1 つのログが含まれます。

診断モニターのタスク

最近の UI タスク ログ

最近の UI タスク ログは、ユーザーの操作に応じて発行された最新のタスクのレコードを提供します。 タスク機能の識別に関連するオーバーヘッドのため、このログは、[診断モニター] ダイアログ ボックスが閉じているときには使用できません。 デフォルトでは、最後に実行されたタスクがリストの一番上になるようにタスクが時系列で並べ替えられています。 内部タスク (実行されている外部タスク内からキューに配置される) は、このリストには表示されません。 キューに配置されている、または現在実行されているタスクは、緑色で表示されます。 各タスクには、一連のプロパティが関連付けられています。

  • [タスク #] - タスクの順序における位置を示す数値。たとえば、タスク # 42 は、実行中のプロセス内の 42 番目の実行タスクを示します。
  • [キューに配置された時間] - タスクが最初にキューに入れられたときの実測時間。 別のタスクがまだ実行中であるときに起動されたタスクは、キューに配置され、現在のタスクが完了するまで実行が開始されません。 フォアグラウンド タスクが実行されている間は、通常、ボタンとコントロールが無効になっています。これにより、アプリケーションの状態が遷移している間に、追加のタスクがキューに配置されないようになります。
  • [タスク時間] - タスクの実行に関連付けられている時間 (ミリ秒単位)。
  • [再開時間] - 描画の再開が完了するまでの待機に費やされた時間 (ミリ秒単位)。
  • [待ち時間] - 描画関連の操作が完了するまでの待機に費やされた時間 (ミリ秒単位)。
  • [合計時間] - タスクがキューに配置された時点から、タスクが完了する時点まで、タスクの実行に必要となった合計時間 (ミリ秒単位) (描画の再開に関連する時間を含む)。
  • [関数] - タスクに最適に関連付けられている最も外側の関数の名前。

キューに配置されている、またはまだ実行中のタスクでは、その時間値に -1 が表示されます。 タスクが完了するか、キャンセルされると、実際の時間がミリ秒単位で表示されます。

ヒューリスティックを使用して、キューに配置されているタスクに最も関連する関数が表示されます。 ヒューリスティックは、コール スタックを調べて、非 OS 関数を含むフレームを探します。

最近の UI タスク ログは、任意の列によって昇順または降順で並べ替えできます。 この機能は、たとえば、実行時間が最も長いタスクを識別するために使用できます。 ログの内容は、リスト上の任意の場所を右クリックして [コピー] または [消去] をそれぞれクリックすることで、クリップボードにコピーまたは消去できます。

非応答ログ

GUI スレッドが応答しなくなると必ず、開始時間と合計期間を含む非応答状況イベントがログに記録されます。 このログの内容は、リスト上の任意の場所を右クリックして [コピー] をクリックすることで、クリップボードにコピーできます。

ログ タブ

[ログ] タブは、ソート機能とフィルター機能を持つライブ イベント ログ ビューアーです。 ArcGIS Pro の多くのサブシステムは、診断モードで実行すると、イベント ログに診断情報を書き込みます。 診断モードはコマンド ライン引数で有効にできますが、[診断モニター] が表示されているときにも、自動的に有効になります。

診断モニターのログ タブ

4 つのイベント タイプがあります。

  • エラー - 操作中の重大な障害を示すために使用されます。
  • 警告 - 重大性が低く、場合によっては無視できます。
  • 情報 - 操作に関する追加のコンテキスト情報を提供するために発行されます。
  • デバッグ - 主に Esri のスタッフに向けた、詳細な実装情報。

イベント タイプは、リストの上部にある対応するチェックボックスを使用して、リスト内でフィルター処理できます。 エラー イベントは、その重要性から常にリストに含まれており、除外できません。 フィルター エントリは、より選択的に使用できます。 ここにテキストが入力されると、少なくとも 1 つの列にそのテキスト (大文字と小文字が区別されない) が含まれるイベントだけが表示されます。

一致するイベントの総数が、[ログ] タブの右上に表示されます。

ログ ファイル

ログ ファイルは、ArcGIS\Diagnostics サブフォルダー内のユーザーのドキュメント フォルダーの下に生成されます。 ArcGIS Pro の場合、ログ ファイルは ArcGISProLog-16360~89343E4F-74E8-4F26-A705-B805E8C92BB0 のように表示され、次のプロパティがあります。

  • ArcGISProLog は、ホスト実行可能ファイルの名前です。
  • 16360 は、プロセス ID です。
  • 89343E4F-74E8-4F26-A705-B805E8C92BB0 は、そのインスタンスに作成された一意の ID です。

診断プロパティ タブ

[診断プロパティ] タブには、エラー レポートに挿入される診断情報が含まれます。このエラー レポートは Esri スタッフによって確認されます。

診断モニターの診断プロパティ タブ

[名前] 値の意味は次のとおりです。

  • per_user_install - [診断モニター] が実行されている ArcGIS Pro のインストールが、ユーザー単位のインストールであるか、コンピューター単位のインストールであるかを示すパラメーター。

    定義

    no

    ArcGIS Pro のインストールは、コンピューター上のすべてのユーザーに対して実行されています。

    yes

    ArcGIS Pro のインストールは、サインイン済みのユーザーに対してのみ実行されています。

  • cmd_line - ArcGIS Pro が開いたときに、コマンド ライン引数の後に Windows が続きます。
  • client_proto - 現在、ArcGIS Pro が使用されているコンピューターのタイプを示します。 値は次のとおりです。

    定義

    0

    ArcGIS Pro はコンピューター上でネイティブに実行されています。

    1

    ArcGIS Pro は仮想コンピューター (VM) 上で実行されています。

    2

    ArcGIS ProWindows リモート デスクトップ プロトコル (RDP) によってアクセスされているコンピューター上で実行されています。

  • secondary-instance - ArcGIS Pro アプリケーションが、現在実行中のアプリケーションの唯一のインスタンスであるかどうかを示すパラメーター。

    定義

    no

    現在実行中の ArcGIS Pro のインスタンスは 1 つしかありません。

    yes

    現在、ArcGIS Pro の複数のインスタンスが実行されています。

  • Last active view - [診断モニター] でこのタブを確認する直前にアクティブであったアプリケーションの最後のビュー。 値には、マップ ビュー、レイアウト ビューなどの有効なビューのみ含まれます。 上記の例では、esri_mapping_mapPane はマップ ビューを指します。
  • Last command - ユーザーが最後にクリックしたユーザー インターフェイスのボタン。 上記の例では、esri_mapping_colorVisionSimulatorButton とは [色覚特性シミュレーター] ボタンを指します。
  • Last active dockpane - [診断モニター] でこのタブを確認する直前にアクティブであったアプリケーションの最後のウィンドウ。 値には、[コンテンツ] ウィンドウや [カタログ] ウィンドウなどの有効なウィンドウが含まれます。 上記の例では、esri_core_contentsDockPane[コンテンツ] ウィンドウを指します。

状態タブ

[状態] タブでは、有効化されたアプリケーションのすべての状態と、対応する ArcGIS Pro セッションに関連付けられたアクティブ ビューの状態を任意の時点で表示でき、新しく追加された情報は、該当する列に太字のエントリとして挿入されます。

診断モニターの状態タブ

アプリケーションの状態とアクティブ ビューの状態はどちらも、ArcGIS Pro フレームワークで、実行されているタスクのために整理されたわかりやすいユーザー インターフェイスを提示するために、各種のユーザー インターフェイス エレメント (タブ、ボタン、ツールなど) を ArcGIS Pro で表示または有効化すべき場合とすべきでない場合を表すために使用されるメカニズムに属しています。

[診断モニター] の機能は、特に ArcGIS Pro アドインの開発者が、自分で定義した状態を有効化すべき場合とすべきでない場合にそれらの状態が有効化されているか確認するために役立ちます。

状況と状態の詳細をご確認ください。

描画パフォーマンスのオーバーレイ

[キーボード ショートカット] ダイアログ ボックス[グローバル] > [描画パフォーマンスのオーバーレイ] でオーバーレイのトラブルシューティングを有効化して、描画の統計情報を表示できます。 指定されたショートカット キーを押して、オーバーレイのオン/オフを切り替えます。

パフォーマンス問題に対するトラブルシューティング

ArcGIS Pro を構成してパフォーマンスを向上させるヒントについては、Esri Community の「ArcGIS Pro でのパフォーマンス問題に対するトラブルシューティング」をご参照ください。