执行报表
当触发器执行满足触发器设置报告标准时,触发器报告会记录在报告日志中。Reports(报告)功能提供了触发器报告的详细查看以及报告日志的配置和管理。
查看触发器报告
可通过以下方式访问节点的触发器报告。
- 在工作台左侧窗格中,展开要查看其触发器报告的节点。
- 选择 Logs & Reports(日志和报告)图标。
- 在右侧窗格中,选择 Reports(报告)选项卡。
随即显示 Reports(报告)选项卡。
- 在 Reports(报告)选项卡的底部,选择 Refresh(刷新)以查看最近的条目。
- Project(项目)和 Trigger(触发器)列表示生成报告的触发器。
- Time(时间)列指示在节点的本地时区中生成报告的日期和时间。
- File Size (bytes)(文件大小(字节))列表示报告的大小。
- Execution Time (ms)(执行时间 (ms))列表示触发器的总执行时间。
- Status(状态)列表示触发器的结束状态
- 可通过将列拖放到新位置,对其重新排序。也可以通过选择列标题,对条目进行排序。
查看触发器报告的详细信息
当从 Reports(报告)选项卡的顶部部分选择单个报告时,该选项卡的底部部分显示报告的详细信息。
由于每个符合触发器设置报告标准的触发器执行实例都会生成一份报告,因此可以为一个给定的触发器生成多个报告。
报告详细信息的左部部分显示执行摘要,包括总的触发器执行时间和执行的动作顺序。
报告详细信息的右部部分显示有关动作的其他详细信息。这些列是:
列 | 描述 |
---|---|
Seq(序列) | 动作的执行顺序号。这是一个顺序列表。 |
Name(名称) | 动作的名称。 |
ID | 动作标识符。当使用列表编辑器时,动作 ID 包含在动作列表中。当使用画布编辑器时,动作 ID 显示在每个动作块中。 虽然 Seq(序列)号码是按照顺序排列的,但动作 ID 表示执行路径,并显示路径(包括 For 循环、If 动作和其他分支)如何通过触发器的动作进行。 |
Status/Route(状态/路径) | 在确定下一个要执行的动作时,从动作中采取的路径。 |
Extended Status(扩展状态) | 动作结果。 |
Execution Time (ms)(执行时间 (ms)) | 执行动作的时间,单位为毫秒。动作执行时间和内部排队时间的总和,就是显示在报告详细信息左侧的总触发器执行时间。 |
触发器执行时间
触发器的执行时间包括触发器的动作执行时间,以及内部触发器实例创建和排队时间的总和。
触发器报告详情左上角部分所包含的时间可以包括表明系统执行情况的显著时间。
- 事件回调时间、事件队列时间和触发池时间是触发器事件创建和内部排队的时间。这些值通常应该为零。
如果您的触发器报告显示这 3 个值的时间显著,那么您的应用程序可能会从替代线程池实现中受益。有关更多信息,请参见运行时线程池配置中的线程池 V2 主题。 - 触发器队列时间是基于 Max In Progress(最大同时执行数)和 Queue Size(队列大小)的触发器设置值,触发器实例在被执行前排队的指示。有关更多信息,请参阅触发器设置。
展开报告执行摘要
左侧部分执行摘要中列出的动作可以展开以显示额外的详细信息,包括任何输入和输出参数。单个动作并使用动作旁边的 [+] 和 [-] 图标展开或折叠。
其他选项变为可用的方法是通过在左侧窗格中选择一个动作,然后右键单击以显示弹出菜单:
当一个动作及其所有的输入和输出展开时,将显示详细信息,包括参数的数据值。以 Wait(等待)动作为例,等待时间(以毫秒为单位)的输入参数是一个常数,值为 5000。其会在 Data(数据)项目的旁边,以十六进制的单个字节显示。十六进制的字节值 00 00 13 88 就是十进制的 5000。
从列表中选择的一些输入值可能不会在输入和输出参数的展开详细信息中显示其值。
随着您的触发器的开发和调试,触发器报告功能将有助于了解触发器的运行时执行情况,包括使用的数据值、每个动作的成功或失败,以及执行路径。
报告限制
虽然触发器报告功能对了解触发器执行实例的运行时行为非常有用,但它确实给系统的执行增加了开销。
由于无法预先确定触发器执行的最终结果(成功、失败、执行时间),因此必须在触发器通过其动作进行的过程中生成触发器报告。这意味着对于除关闭以外的所有触发器设置报告选项,生成报告的开销均发生在最终执行结果确定是将报告写入“报告日志”还是丢弃触发器报告之前。如果将报告写入“报告日志”,则会给系统执行带来额外开销。
对于资源(CPU、内存、磁盘)有限的节点来说,这个开销可能很大。
报告功能确实有内置的限制,以限制生成和写入报告日志的触发器报告的数量。当达到这些限制时,在待处理的报告被处理并写入报告日志之前,不会生成额外的触发器报告。
根据对附加信息的需求、触发器执行频率以及节点上系统资源的可用性,指定触发器报告选项时应小心谨慎。
高级查询
Query Data Filter(查询数据过滤器)字段允许对报告中的数据进行高级查询。值区分大小写。主要搜索焦点是数据元素中的值 - 报告中显示数据值和原始字节的值。例如,上述报告中的“等待时间 (ms)”。
在数据元素中搜索值时,值必须完全匹配,并且必须正确指定元素数据类型。由于用于存储的字节数,将数字作为 INT1 搜索将不会产生与作为 INT4 搜索相同的结果。
此外,还将对非数据元素中的查询文本进行字符串搜索。例如,您可以搜索 Event Notification(事件通知)类型或 Event Completion(事件完成)状态代码。
要将搜索仅限于特定数据元素,请指定元素标签和数据值。例如,使用类型 INT4 搜索 Time To Wait(ms)=5000(等待时间(ms)=5000)将匹配上述报告。标签和值都必须准确。
此字段的颜色将根据某些条件而改变:
- 默认 - 过滤器未应用于当前查询。
- 黄色 - 值已更改但尚未应用。按 enter 键或 Refresh(刷新)按钮将尝试应用。
- 绿色 - 当前值被用作过滤器。
- 红色 - 输入的值对选定的数据类型无效(例如,将 422142 用于 INT1),未应用过滤器。
设置为
Reporting(报告)选项卡 Settings(设置)按钮用于配置报告日志:
这些参数是:
参数 | 描述 |
---|---|
Current Size (MB)(当前大小 (MB)) | 报告日志的当前大小,单位为兆字节。 |
Maximum Size (MB)(最大大小 (MB)) | 报告日志将达到的最大大小。达到此大小后,旧的报告条目将被丢弃。 |
Maximum Sequence(最大序列) | 将成为报告一部分的最大序列动作数。当存在分支动作(如 For 和 If),并且不满足结束执行触发器的路径标准时,动作序列可能会达到很大的数量。 |
Maximum Variable Data (KB)(最大变量数据 (KB)) | 在报告中显示变量的最大数据量,以千字节为单位。对于数组的变量,这个值表示将写入报告的数组中元素的最大数量。对于字符串或二进制数据类型的变量,这是变量写入报告的最大字节数。 |
对于每个触发器,触发器设置(触发器设置)Reporting(报告)参数用于配置触发器报告功能的使用。某些节点类型可能并非所有选项可用。
可以使用触发器的弹出菜单为下一个触发器执行实例生成触发器报告,这与 Reporting(报告)参数和触发器的成功或失败完成无关。有关更多信息,请参见生成报告选项。
除了每个触发器的 Reporting(报告)参数设置外,在 System administration(系统管理)> Diagnostics(诊断)中还有一个节点范围的 Trigger Reporting(触发器报告)参数可用,可以禁用所有触发器报告的生成。此设置可用于替代将所有触发器的 Reporting(报告)参数设置更改为 Off(关闭)。
当从 Reports(报告)选项卡的顶部选择一个单独的报告时,右键单击特定项目时会显示快捷菜单。
可用的选项有:
选项 | 描述 |
---|---|
Delete(删除) | 删除报告条目的选项包括: Selected(选定)- 选定的触发器(Shift-单击、Crtl-单击 或 Crtl-A 选择多个条目)。 By Project(按项目)- 选定项目中触发器的所有报告条目。 By Trigger(按触发器)- 选定触发器的所有报告条目。 All(全部)- 所有报告条目。 |
Export(导出) | 选定的报告条目会被导出到工作台计算机上的文本文件中。 导出报告条目的选项有: Selected(选定)- 选定的触发器(Shift-单击、Crtl-单击 或 Crtl-A 选择多个条目)。 By Project(按项目)- 选定项目中触发器的所有报告条目。 By Trigger(按触发器)- 选定触发器的所有报告条目。 |
Refresh(刷新) | 用最近的添加项刷新 Reports(报告)选项卡。 |
事件变量未被服务
系统提供了一个触发器输出事件变量 ResultStatus,作为一些触发器事件类型的信息从“被调用”的触发器传回“调用”的触发器的方法。
如果这个 ResultStatus 输出事件变量没有在触发器中设置(使用任何可以填充输出事件变量的动作,如 Set(设置)动作),那么触发器报告将显示 ResultStatus 事件变量:
-5109 "Event variable is not serviced"(5109“事件变量未被服务”)
这个触发器报告信息并不是说明触发器结束错误,而是说明没有设置这个系统提供的输出事件变量。