自定义记录跟踪

已完成

除通过 Power Apps 运行时自动发送到 Application Insights 的遥测以外,您还可以使用 Power Fx Trace() 函数发送自定义事件。 使用跟踪调用检测应用即可捕获重要事件和关联数据。

Trace() 函数调用添加时机示例包括:

  • 使用OnStart记录应用启动时传递到应用的参数

  • 用户在应用程序中启用或禁用选项时

  • 选择按钮执行操作时

  • 用户取消操作时

  • 发生错误时,比如有人提交窗体或数据源错误

  • 记录验证错误

  • 记录搜索条件以便确定常用搜索

  • 根据用户在应用中的喜好记录反馈

  • 所有希望以后查询的内容

除记录 Application Insights 数据以外,跟踪数据在监视器工具和 Power Apps Test Studio 结果中也可见。

函数语法如下:

Trace(message, trace_severity, custom_record )

消息参数为必填,您应使用消息参数标识调用跟踪的原因,比如输入跟踪(“工时单验证失败”)

您也可以传递信息的严重性级别,例如警告、错误或严重。 用于对跟踪进行一致分类时,严重性级别有助于查询数据。 例如,您可以每天收到包含捕获的所有错误列表的电子邮件。

Trace() 函数还允许传递包含上下文信息的数据记录。 本记录可以包含一个或多个有助于稍后分析跟踪事件数据的数据字段。 此外,您可在日志查询中使用本数据减少审阅的跟踪记录集。 您可以使用包含命名字段值的大括号 ({}) 编制内联记录。 例如,您可以通过传递更多上下文信息增强之前的验证:

Trace(“Timesheet Validation Failed”,Warning, { hoursWorked:ThisItem.HoursWorked”)

编制 Trace() 函数调用时,确保记住以下参数:

  • 避免在 Application Insights 中记录可能导致合规性问题的敏感数据,比如客户的姓名和电子邮件地址。

  • 注意错误数据或可能导致意外结果的公式。

  • 避免发送过多数据;仅发送分析或查询数据所需数据。

  • 使用一致字段名称以便轻松在相关跟踪调用中进行查询。

查询跟踪

您可以查询日志并将跟踪作为表名查询和查看每项 Trace() 函数调用捕获的数据。

根据日志数据构建跟踪查询的屏幕截图。

在结果中,每行的itemType均为跟踪。 每行都显示messageseverityLevel。 如果展开行,customDimensions属性将显示您可进一步展开显示您在调用 Trace() 函数时作为上下文数据记录的字段。

突出显示自定义维度的查询结果屏幕截图。

在上图中,JobIdJobName属于上下文数据。 所有ms-字段均自动添加到每项跟踪。 您可以使用本数据构建与以下示例相似的查询,以下示例查询特定JobId的所有跟踪记录。

查询跟踪屏幕截图。

您可以使用ms-appId查找特定应用的所有跟踪,使用ms-appSessionId查找用户在该应用运行会话中的所有跟踪。 每个记录数据的应用都将具有唯一ms-appId

将跟踪添加到应用可为您提供跟踪问题的宝贵资源。 跟踪尤其具有价值,因为您可以使用跟踪捕获在生产中运行的应用的数据,而无需在 Power Apps Studio 中运行应用。 主动将 Trace() 函数调用添加到应用程序,即可准备好应对用户报告的生产中出现的挑战性问题。