诊断监控

诊断监控ArcGIS Pro 内的集成诊断设施点。 在 ArcGIS Pro 运行期间,状态信息、日志和事件将显示在诊断监控中且不断更新。诊断监控包含一组选项卡和状态指示器。诊断监控当前包括计数器任务HTTP日志诊断属性状态选项卡。

诊断监控对话框中的信息可用于帮助诊断各种应用程序问题,包括未响应条件、资源过度消耗、功能故障和性能下降。

诊断监控概览

注:

诊断监控可用于所有基于 ArcGIS Pro 的产品,并且不同于 ArcGIS Monitor(用于 ArcGIS Enterprise 部署的产品)。

启动诊断监控

打开诊断监控窗口即可启用诊断模式。

可通过以下方式打开诊断监控窗口:

  • 在打开的工程中,单击功能区上的帮助选项卡。 在性能组中,单击诊断监控 诊断监控
  • ArcGIS Pro 打开的情况下按 Ctrl+Alt+M。 无需打开工程。
  • 从命令行使用开关 /enablediagnostics 启动 ArcGIS Pro

如果使用命令行选项,也可以包括 /loglevel=debug 参数以在诊断监控中启用调试模式。 调试模式在后续 ArcGIS Pro 会话中持续,直到您从日志选项卡中将其禁用。

注:

从命令行启用诊断监控时,对话框最初最小化在 Microsoft Windows 任务栏上。

要使用诊断监控对工作流程进行疑难解答,可在处理问题区域之前打开监控。 要配置诊断监控对话框,使其在 ArcGIS Pro 中显示在所有其他窗口之前,右键单击对话框的说明文字区域,然后单击总在最前面。 这对于使用不同应用程序要素且想要在诊断监控中密切监控活动的情况会很有用。

ArcGIS Pro 架构概述

ArcGIS Pro 是一款 64 位的多线程模块化应用程序。 将按需加载功能子系统并在工作计算机线程或单独的工作进程中执行工作,如计算缓冲或渲染地图。 在大多数情况下,工作(操作)的逻辑单元将在运行期间被组织到一个或多个任务中。 任务对于如何在 ArcGIS Pro 中执行工作非常重要,而且它们在诊断监控中具有显著特点。

专用线程负责渲染应用程序的用户界面元素并且适用于处理以键盘输入和鼠标单击方式的用户输入。 当操作在其中一个工作线程中运行时,图形用户界面 (GUI) 线程会提供与操作进展以及操作取消方式(如果适用)相关的反馈。 诊断监控将在独立于 GUI 的线程上运行。 由此可确保诊断监控对话框保持响应,即使 GUI 线程未响应也是如此。

ArcGIS Pro 中的工作线程将被分为专用于特定功能区域的系列。

  • 前台线程 - 用于管理制图信息模型(CIM) 的一组四工作线程,当前已加载的工程中配置状态的主要资料档案库。 这些线程还有助于加速地图渲染。 当在前台线程上运行操作时,将禁止某些类型的用户交互。
  • 高优先级后台线程低优先级后台线程 - 这些线程可执行不依赖于 CIM 状态的各种操作,且可在用户执行其他操作时在后台运行。 分配至高优先级后台线程的任务运行速度更快,且优先级高于分配至低优先级后台线程的任务。
  • 其他线程 - 后台地理处理线程用于执行后台地理处理操作。 在内部,此线程经常与其他线程协作以完成操作。 共享后台线程适用于一些特殊情况,其中各组任务必须随时间变化在相同一致线程上运行。
在诊断监控中使用的线程的概述

状态区域

状态区域包含状态指示器和线程活动指示器。 状态指示器将根据当前应用程序状态显示不同颜色。 它们会缩小应用程序内发生问题的范围。 线程活动指示器根据相应线程的状态显示颜色。

状态指示器

诊断监控中的状态指示器

元素描述
1

红色表示 GUI 线程不再发送消息且无法对鼠标或键盘输入做出响应;当 GUI 线程不响应时,UI 图形渲染可能不正确。 无响应具体值将记录在无响应日志中。

2

黄色表示任务运行期间活动任务没有关联的进度条,因此呈现给用户的反馈不足。 当检测到此条件时,系统也会将任务记录中的关联任务标记为黄色。

3

黄色表示任务的发放率已超过每秒 10 次。

4

绿色表示一个或多个 HTTP 请求当前在应用程序中处于活动状态。

5

绿色表示任务当前正在前台线程上运行。 在任何前台任务运行期间,各个按钮和工具可能无法使用。

6

黄色表示视图(通常包含地图、globe、场景或布局)当前正忙。 视图忙碌期间,各个按钮和工具可能无法使用。

7

黄色表示窗格当前正忙。 窗格忙碌期间,各个按钮和工具可能无法使用。

8

黄色表示任务因当前运行在其中一个前台线程上的工程图相关操作停滞。 应用程序等待期间,各个按钮和工具可能无法使用。

9

黄色表示在恢复先前挂起的工程图操作时,任务会停滞。 应用程序恢复期间,各个按钮和工具可能无法使用。

10

绿色表示地理处理操作当前正在运行。 此指示器将会亮起,而不管其为后台还是前台地理处理操作。

线程活动指示器

上述每个线程都在诊断监控的状态区域内有一个相应的活动指示器。 关联的线程当前正在运行时,则线程状态指示器显示为绿色,而线程为非活动状态(休眠)时,线程状态指示器显示为灰色。 主机 CPU 没有足够的内核支持其他线程时,线程状态指示器可能显示为深灰色。

诊断监控选项卡

诊断监控计数器任务HTTP日志诊断属性状态选项卡组成。 计数器选项卡列出内部计数器。 任务选项卡显示最近的任务。 HTTP 选项卡提供 HTTP 请求和响应的查看器。 日志选项卡显示事件日志查看器。 诊断属性选项卡将显示诊断信息。 状态选项卡用于查看所有已启用应用程序状态和与对应的 ArcGIS Pro 会话有关的活动视图状态。

计数器选项卡

计数器选项卡包含由指定内部计数器组成的列表。 每个计数器都会链接到列表上方的图形。 选择列表中的计数器时,图形将会更新以显示该计数器过去 20 秒的历史值。

诊断监控中的计数器选项卡

在计数器列表中,此类选项卡是有用的度量,如内存消耗、线程计数、HTTP 请求计数以及加载的 DLL 计数。 仅少数计数器需要附加说明:

  • 当前任务率 -任务当前在前台线程中排队的速率。 高计数可能表明执行该操作触发的任务过多,这可能是不必要的。 任务数量较高的操作,效率可能会降低。
  • CIM 计数器 - 这些计数器用于记录 CIM 上读写操作的总计数。 与工程图相关的读写将单独计数。 由于每个操作都有相关的架空,因此,在时间跨度内首选较小平移,而非较大平移。
  • HTTP 请求超时汇总计数器 - 这些计数器用于记录已超时的 HTTP 请求总数和这些请求的速率。 导致这些计数器增加的请求通常与 HTTP 响应码 408 和 504 相关。
  • 请求计数器 - 此类计数器仅供内部使用。

任务选项卡

任务选项卡包含两个日志,一个用于记录最近由用户交互发出的任务,另一个用于记录 GUI 线程上发生的任何无响应情况。

诊断监控中的“任务”选项卡

最近 UI 任务日志

最近 UI 任务日志将提拱为响应用户交互而发布的最新任务的记录。 由于与标识任务功能关联的架空,此日志在诊断监控对话框关闭时将始终无法使用。 默认情况下,任务按时间顺序排序,其中最近运行的任务显示在列表的最顶部。 内部任务(从正在运行的外部任务中排队)不会显示在此列表中。 正在排队或当前正在运行的任务显示为绿色。 每个任务有一组关联的属性:

  • 任务编号 - 用于指示任务顺序位置的数字,例如,任务编号 42 表示正在运行的进程中的第 42 个任务。
  • 排队时间 - 任务第一次排队时的执行时间。 在另一个任务仍在运行时启动的任务将会排队,且在当前任务完成之前不会开始运行。 在前台任务运行期间,按钮和控件通常处于禁用状态,以防止应用程序状态过渡期间有其他任务排队。
  • 任务时间 - 与任务的实际运行相关的时间间隔(以毫秒计)。
  • 恢复时间 - 等待工程图恢复完成所花费的时间(以毫秒计)。
  • 等待时间- 等待工程图相关操作完成所花费的时间(以毫秒计)。
  • 总时间 - 运行任务所需的总时间(以毫秒为单位),是指从任务排队的时间开始到任务完成时间为止(包括与工程图恢复相关的任何时间)。
  • 函数 - 与任务最相关的最外层函数的名称。

任务正在排队或仍在运行时,其时间值显示为 -1。 任务完成或已取消时,将会显示实际时间(以毫秒计)。

启发式算法用于显示与正在排队的任务最相关的函数。 启发式算法使用调用堆栈查找包含非 OS 函数的框架。

最近 UI 任务日志可通过任何列按升序或降序进行排序。 例如,此功能可用于识别运行时间最长的任务。 日志内容可通过右键单击列表的任何位置,然后分别单击复制清除来复制到剪贴板或清除。

无响应日志

GUI 线程无论何时变为无响应,系统都会记录无响应事件,记录中包含开始时间和总持续时间。 日志内容可通过单击列表的任何位置,然后单击复制来复制到剪贴板。

HTTP 选项卡

HTTP 选项卡包含 HTTP 请求和响应的日志,并且提供排序功能。 诊断监控处于打开状态时,ArcGIS Pro 发送的 HTTP 请求会记录在此查看器中。

“诊断监控”中的 HTTP 选项卡

记录的 HTTP 请求会按照时间上由近及远的顺序添加到查看器中。

URL 列包含请求发送到的目标 URL。 仍在等待响应的请求会在第一列中通过向下箭头标识。 请求完成时,从服务器接收的响应会添加到该行的状态列。

日志选项卡

日志选项卡包含事件日志查看器,并且提供排序和过滤功能。 在诊断模式下运行时,ArcGIS Pro 中的大量子系统会将诊断信息作为应用程序事件写入事件日志。 事件记录会在诊断监控打开时开始,持续活动到 ArcGIS Pro 关闭。

诊断监控中的“日志”选项卡

有四种事件类型:

  • 错误 - 用于指示操作期间的重大故障
  • 警告 - 不太重要,有时可以忽略
  • 信息 - 发布此事件旨在提供有关操作的其他上下文信息
  • 调试 - 详细执行信息,主要供 Esri 员工使用

事件类型可在列表中通过列表顶部的相应复选框进行过滤。 由于其重要性,错误事件总是包含在列表中且无法通过过滤排除出去。 为提高选择性,可使用过滤条目。 在此处输入文本时,只有至少有一列包含该文本(不区分大小写)的事件会显示。

匹配事件的总数显示在日志选项卡的右上角。 事件记录是实时进程。 在记录新事件时,会将其自动插入日志选项卡。 当日志中的事件总数达到或超过 100,000 时,实时记录将在会话的剩余时间内禁用。 新事件仍会被记录,但它们不会立即显示在日志选项卡上。 在总事件计数的左侧会显示一个刷新按钮。 单击刷新按钮可更新日志选项卡的内容。 选项卡刷新时,会添加记录在后台的事件。

日志文件

默认情况下,日志文件保存在用户的 Documents 文件夹的 ArcGIS\Diagnostics 子文件夹中。 对于 ArcGIS Pro,日志文件如下所示:ArcGISProLog-16360~89343E4F-74E8-4F26-A705-B805E8C92BB0,且具有以下属性:

  • ArcGISProLog 是主机可执行文件的名称。
  • 16360 是进程 ID。
  • 89343E4F-74E8-4F26-A705-B805E8C92BB0 是为该实例创建的唯一 ID。

如果希望将日志文件保存到 Documents 文件夹之外的目录,可以在实例中指定备选输出目录。 可使用 Windows 注册表,在 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ESRI\ArcGISPro\Settings\Computer\HKEY_CURRENT_USER\SOFTWARE\ESRI\ArcGISPro\Settings\ 中创建一个名为 EventLogLocationREG_SZ 注册表项。 将此注册表项的值设置为将要保存日志文件的备选目录。 下次在诊断模式下运行 ArcGIS Pro 时,日志文件将保存到 <EventLogLocation>\ArcGIS\Diagnostics

注:

对于以 EventLogLocation 值形式指定的目录,您的 Windows 用户配置文件必须具备读取和写入权限。

ArcGIS Pro 无法将日志文件保存到以 EventLogLocation 值形式指定的目录中时,会启用回退机制。 如果 ArcGIS Pro 无法写入 HKEY_LOCAL_MACHINE 下设置的 EventLogLocation 目录,系统会尝试将日志文件写入 HKEY_CURRENT_USER 下设置的 EventLogLocation 值。 如果这些目录均未指定或无法写入,日志文件会保存到默认 Documents\ArcGIS\Diagnostics 文件夹中。

注:

如果在 HKEY_LOCAL_MACHINEHKEY_CURRENT_USER 下均存在有效的 EventLogLocation 注册表项,会优先使用 HKEY_LOCAL_MACHINE 下的值。

“诊断属性”选项卡

诊断属性选项卡包含插入到错误报告中以供 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 Pro 正在通过 Windows 远程桌面协议 (RDP) 访问的计算机上运行。

  • secondary-instance - 用于确定 ArcGIS Pro 应用程序是否是当前运行的应用程序的唯一实例的参数。

    定义

    no

    目前,仅一个 ArcGIS Pro 实例正在运行。

    yes

    目前,多个 ArcGIS Pro 实例正在运行。

  • 最后一个活动视图 - 在诊断监控中查看此选项卡之前,应用程序中处于活动状态的最后一个视图。 值可以包括任何有效视图,例如“地图视图”或“布局视图”。 在上例中,esri_mapping_mapPane 是指地图视图。
  • 最后一个命令 - 用户在用户界面中单击的最后一个按钮。 在上例中,esri_mapping_colorVisionSimulatorButton 是指色觉缺陷模拟器按钮。
  • 最后一个活动停靠窗格 - 在诊断监控中查看此选项卡之前,应用程序中处于活动状态的最后一个窗格。 值可以包括任何有效的窗格,例如内容目录窗格。 在上例中,esri_core_contentsDockPane 是指内容窗格。

“状态”选项卡

状态选项卡用于查看在任何给定时刻所有已启用应用程序状态和与对应的 ArcGIS Pro 会话有关的活动视图状态,新添加的内容将以粗体条目插入其相应的列中。

“诊断监控”中的“状态”选项卡

应用程序状态和活动视图状态所属的机制可供 ArcGIS Pro 框架用于表达何时不同的用户界面元素(例如选项卡、按钮和工具)应该和不应该在 ArcGIS Pro 中可见或启用,以显示针对当前执行任务精选的整洁用户界面。

诊断监控的此功能尤其适用于 ArcGIS Pro 加载项开发人员,以供其确定加载项的定义状态是否在应该和不应该时间启用。

了解有关条件和状态的详细信息。

绘制性能叠加

可启用故障排除叠加,以在键盘快捷键对话框全局 > 绘制性能叠加下提供绘制统计数据。 按下指定的快捷键时将打开和关闭叠加。

解决性能问题

有关配置 ArcGIS Pro 以提高性能的提示,请参阅 Esri 社区 中的解决 ArcGIS Pro 中的性能问题