
なぜこのツールが作成されたのか
ArcGIS ServerでのArcGIS Data Reviewerベースのattribute rulesのパフォーマンスを理解することは、特に大量のデータを評価する際に困難です。このツールは、ユーザーがvalidation attribute rule評価中に実際にどこで時間が費やされているのかを理解しようとした一連のユーザートラブルシューティング対応に応じて開発されました。Data Reviewer attribute rule実行の時間を分析・分解することで、検証ルールのパフォーマンスへの可視性を高め、ボトルネックの特定、問題のトラブルシューティング、およびエンタープライズワークフローの最適化を容易にします。
ツールの使い方
ログパーサーツールを実行するには、以下の手順を完了してください:
- ArcGIS ServerのログレベルをDebugに設定します。ArcGIS Server Managerでサーバーログ設定を指定する方法に従ってください。
- attribute rulesを評価します
- データ上にData Reviewerベースのvalidation attribute rulesが作成されている限り、このツールが解析できるログメッセージが存在するはずです。
- サービスのサーバーログが保存されているArcGIS Serverマシン上のフォルダーを見つけます。検証attribute rulesを同期的または非同期的に評価したかによって、ログが保存される場所は2箇所あります。
- 同期評価用のサーバーログは logs > machine name > services > service name.MapServer にあります
- Windows: C:\arcgisserver\logs\<machine name>\services\<service name>.MapServer
- Linux: <ArcGIS Server installation directory>/logs/<machine name>/services/<service name>.MapServer
- 非同期評価用のサーバーログは logs > machine name > services > System > ValidationTools.GPServer にあります
- Windows: C:\arcgisserver\logs\<machine name>\services\System\ValidationTools.GPServer
- Linux: <ArcGIS Server installation directory>/logs/<machine name>/services/System/ValidationTools.GPServer
- ArcGIS Proまたはターミナルからツールを実行します。
- ArcGIS Proでツールを実行するには
- ReviewerLogParser.pytファイルを既知の場所に保存します
- すべてのサーバーログをArcGIS Proがあるマシンにコピーします
- ArcGIS Proを開き、ツールボックスをプロジェクトに追加します
- Reviewer Log Parserツールを開きます
- Log Folderパラメーターでサーバーログが含まれるフォルダーを参照し、OKをクリックします
- 解析されたExcel出力ファイルの配置先を指定します
- ツールを実行します

- ログがあるサーバーマシン上でpythonインタラクティブシェル経由でターミナルからツールを実行するには:
- ReviewerLogParser.pytファイルをサーバーマシン上の既知の場所に保存します
- サーバーログの場所を特定します
- ArcGIS Enterpriseに紐づくインタラクティブpythonシェルを起動します
- Windowsの場合、通常は "C:\Program Files\ArcGIS\Server\framework\runtime\ArcGIS\bin\Python\envs\arcgispro-py3\python" です
- Linuxの場合、通常は <ArcGIS Server installation location>/arcgis/server/tools/python です
- arcpyをインポートします
- ツールボックスをインポートします
- arcpy.ImportToolbox(path/to/ReviewerLogParser.pyt)
- ツールを実行します
- arcpy.ReviewerLogParser_datareviewer(log_folder="/path/to/log/folder",output_excel="/output/excel/parsed_output.xlsx")
- .xlsxおよび.csv出力ファイルをMicrosoft Excel(またはExcelビューア)がインストールされているマシンにコピーし、結果を確認します。


ツールの仕組み
大まかに言うと、すべての評価は読み取り、検証、および書き込みという3つのフェーズで構成されています。読み取りには、一時的なSQLiteテーブルにジオデータベースフィーチャーを同期させて処理準備する時間が含まれます。検証はData Reviewer attribute rulesの実行を含みます。書き込みは、新しいエラー記録、修正済みエラー更新、既存エラー更新、および検証ステータスフィールド更新など、結果でジオデータベースを更新するために必要なタスクです。

Data Reviewerベースのvalidation attribute rulesが評価されるとき、ArcGIS Serverはいくつかの最適化手法でルール処理効率化を図ります。その一つが、一時的なSQLiteデータベース作成であり、評価に必要なフィーチャーとフィールドのみ含むことで同じ評価内で複数のData Reviewer attribute rulesが同じキャッシュデータを使用可能になります。同様の評価も結合して全体的な処理効率向上も可能です。
Reviewer Log Parserは評価プロセス中にどこで時間が費やされているか判別する助けとなります。選択したフォルダーからArcGIS Serverログファイルを読み込み、ReviewerUtilitiesメソッドによって書き込まれたData Reviewer検証メッセージを探します。次に関連メッセージをリクエストIDごとにグループ化し、それぞれの検証分析が可能になります。各ログメッセージについて、メッセージテキスト、タイムスタンプ、経過時間、元ログファイル、および行番号も取得します。またUnixタイムスタンプも計算し時系列ソートや後続分析も支援します。
一般的な認識向上と詳細トラブルシューティング支援として、このツールは二つの出力物を生成します。一つ目は前述した各ログメッセージ詳細含むCSVファイルです。二つ目は各検証実行結果要約したExcelワークブックで読みやすい形式になっています。ワークブックはREADMEワークシート(レポート前提条件説明)から始まり、その後リクエストIDごと(リクエストID最初31文字使用命名)のワークシートがあります。各実行ワークシートには解析された操作一覧、その操作内容説明、経過時間(秒単位)として読み取り・検証・書き込み時間分解、および時間合計(時・分・秒形式)も含まれます。
注意:実行ワークシート作成時、パーサーは同期時間二重計上回避しようと試みます。もし同期操作が検証操作中に発生した場合、その同期時間は検証合計から差し引かれ別途読み取り時間として報告されます。
さらに詳細が必要な場合、CSV出力では要約操作から元ログメッセージへの追跡が可能です。ワークシート名(リクエストID最初31文字基準)から開始しCSV内で一致するリクエストID検索後、ワークブック内操作テキストとCSV内messageフィールド比較してください。CSVには元ログパスおよび行番号も含まれるため、それら情報で元メッセージ位置特定できます。
ツール実行時の既知制限および期待事項
このツールにはいくつか重要な注意点があります。それらは以下の通りです:
- このツールはReviewerベースvalidation attribute rules評価時に作成されるメッセージ(ReviewerUtilities)のみ解析します。検証プロセス関連には他にも(Reviewerおよび非Reviewer両方)メッセージがありますが このツールでキャプチャされない生成されたもの。<\/LI>
- このツールはArcadeベースの検証属性ルールを解析しません。
- ArcGIS Diagnostic MonitorおよびArcGIS Enterprise Serverログファイルを使用した属性ルールの動作トラブルシューティングを参照して、Arcadeベースの属性ルールのトラブルシューティングについて詳しく学んでください。<\/LI><\/OL><\/LI>
- このツールの現在のバージョンでは、タイムアウトやデータソースの欠落に関連するログなどのエラーメッセージはキャプチャされません。
- これらを追跡するには、まずExcelから始めて、エントリがないかゼロになっている箇所を確認し、それをCSV(ログと行を含む)に遡り、そこからそのメッセージ周辺の生ログを調べて具体的に何が起こっているかを確認する必要があります。<\/LI><\/OL><\/LI>
- 検証時間を調べる際、特定のData Reviewerチェックタイプは、そのチェックが複数回評価されていても一度だけリストされます。<\/LI>
- 検証時間を調べる際、異なる複雑さや実行対象のフィーチャ数により、一部のチェックは他よりも完了に時間がかかることが予想されます。例えば、Valencyチェックに基づくルールは、評価される空間関係の複雑さのため、他のチェックと比べて時間がかかります。<\/LI>
- 属性ルールを評価する際、総ルール評価時間は最も遅いルールの速度に依存します。これは特にArcadeとData Reviewer属性ルールを混在して使用する場合に重要です。<\/LI><\/OL>
フィードバック歓迎<\/H3>これはツールの最初のバージョンであり、ご意見をお待ちしています。パフォーマンス問題のトラブルシューティングに使用している場合でも、検証動作をよりよく理解するために使用している場合でも、皆様の体験をお聞かせください。フィードバック、改善案、およびバグ報告は今後の改善を導き、このツールをさらに価値あるものにする助けとなります。<\/P>