診断モニター

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

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

診断モニターの概要

注意:

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

診断モニターの開始

[診断モニター] ウィンドウを開くと、診断モードが有効になります。

[診断モニター] ウィンドウは、次の方法で開くことができます。

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

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

注意:

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

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

注意:

[診断モニター] 機能は、ArcGIS Pro アプリケーションの状態とイベントの記録やログを出力することで動作します。 [診断モニター] は可能な限り軽量であるよう設計されていますが、[診断モニター] ウィンドウが開いて情報をログ出力している間は 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 に、追加のスレッドをサポートするための十分なコアがない場合、スレッド ステータス インジケーターはダーク グレーで表示されることがあります。

診断モニターのタブ

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

カウンター タブ

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

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

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

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

タスク タブ

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

診断モニターのタスク タブ

最近の UI タスク ログ

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

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

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

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

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

非応答ログ

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

HTTP タブ

[HTTP] タブは、リクエスト メニューと詳細セクションの 2 つのセクションに分かれています。

診断モニターの HTTP タブ

リクエスト セクションは、キャプチャされた HTTP リクエストのリストです。 [診断モニター] ウィンドウが開いている間、ArcGIS Pro により送信された HTTP リクエストは、最新のリクエストからの順でこのリストに記録されます。 さらに、応答待ちのリクエストは、上述の方法で順序の並べ替えが行われる前に、リストの先頭に追加されます。 これらの応答待ちリクエストは、下矢印のアイコンで区別されます。

[期間] 列は、完了したリクエストが、サーバーからの応答を受け取るのにどれだけの時間を要したかを示しています。 [ステータス] 列には、関連するリクエストで受信された応答コードが含まれています。 [コンテンツ タイプ] 列には、該当するならデータ形式が含まれています。 [URL] 列は、リクエストの完全な URL です。

リクエスト セクションのリクエストを選択すると、そのリクエストに関係する情報や、受信された応答が、詳細セクションに表示されます。 [パラメーター] ボタンを選択すると、[パラメーター][値] がそれぞれの列に表示されます。 [応答] ボタンを選択すると、選択したリクエストについて受信した応答が [診断モニター] ウィンドウに表示されます。

注意:

ログ出力された応答のうち、最初の 2,048 文字のみが表示されます。 この制限を超える応答は、表示前に文字が切り捨てられます。

ログ タブ

[ログ] タブには、イベント ログ ビューアーが含まれ、ソート機能とフィルター機能提供されます。 ArcGIS Pro の多くのサブシステムは、診断モードで実行すると、イベント ログに診断情報をアプリケーション イベントとして書き込みます。 イベントのログ出力は、[診断モニター] ウィンドウが開いたとき開始され、ArcGIS Pro が閉じるまでアクティブに保たれます。

診断モニターのログ タブ

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

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

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

一致するイベントの総数が、[ログ] タブの右上に表示されます。 イベント ロギングはライブ プロセスとして開始されます。 新しいイベントが記録されると、それらはすぐに [ログ] タブに挿入されます。 ログ内のイベント総数が 100,000 以上に達すると、残りのセッションではライブ ロギングが無効になります。 新しいイベントは記録されますが、[ログ] タブにすぐには表示されません。 イベント総数の左側に [更新] ボタンが表示されます。 [更新] ボタンをクリックすると、[ログ] タブのコンテンツが更新されます。 バックグラウンドで記録されたイベントは、タブが更新されると追加されます。

ログ ファイル

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

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

Documents フォルダー以外のディレクトリにログ ファイルを保存したい場合は、別の出力ディレクトリを指定できます。 Windows レジストリを使用して、REG_SZ または EventLogLocation のいずれかに Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\ArcGISPro\Settings\ という名前の Computer\HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Settings\ キーを作成します。 このキーの値を、ログ ファイルの保存先となる代替ディレクトリに設定します。 次回 ArcGIS Pro を診断モードで実行すると、ログ ファイルは <EventLogLocation>\ArcGIS\Diagnostics に保存されます。

注意:

Windows のユーザー プロファイルには、EventLogLocation 値として指定されたディレクトリへの読み取り権限と書き込み権限が必要です。

ArcGIS Pro 値として指定されたディレクトリに EventLogLocation がログ ファイルを保存できない状況の対策として、フォールバック (予備) メカニズムが用意されています。 ArcGIS Pro は、EventLogLocation で設定された HKEY_LOCAL_MACHINE ディレクトリに書き込みできない場合は、代わりに EventLogLocation で設定された HKEY_CURRENT_USER 値にログ ファイルを書き込もうとします。 どちらのディレクトリも指定されていないか、書き込みできない場合、ログ ファイルはデフォルトの Documents\ArcGIS\Diagnostics フォルダーに保存されます。

注意:

有効な EventLogLocation レジストリ キーが HKEY_LOCAL_MACHINEHKEY_CURRENT_USER の両方に存在している場合、HKEY_LOCAL_MACHINE にある値が優先されます。

診断プロパティ タブ

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

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

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

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

    定義

    no

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

    yes

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

  • cmd_line - Windows が開いたときに、コマンド ライン引数の後に ArcGIS Pro が続きます。
  • 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 dock pane - [診断モニター] でこのタブを確認する直前にアクティブだったアプリケーションの最後のウィンドウ。 値には、[コンテンツ] ウィンドウや [カタログ] ウィンドウなどの有効なウィンドウが含まれます。 上記の例では、esri_core_contentsDockPane[コンテンツ] ウィンドウを指します。

状態タブ

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

診断モニターの状態タブ

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

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

状況と状態の詳細

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

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

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

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