使用 Application Insights 捕获遥测

本文讨论如何从您的 Copilot Studio 代理捕获遥测数据以在 Azure 中使用 Application Insights

除了 Copilot Studio 中的本地分析功能外,您还可以将遥测数据发送到 Application Insights。 遥测通过跟踪以下内容提供代理见解:

  • 发送到您的代理的记录消息和事件
  • 在用户对话期间触发的主题
  • 从主题发送的自定义遥测事件

重要提示

Application Insights 是 Azure Monitor 的一项功能,是允许您监视实时应用程序的可扩展应用程序性能管理 (APM) 工具。 它要求订阅 Microsoft Azure

将您的 Copilot Studio 代理连接到 Application Insights

要将代理连接到 Application Insights,首先需要在代理配置中添加检测密钥。

  1. 进入代理的设置页面,选择高级

  2. Application Insights 部分,填充连接字符串设置。 请参阅 Azure Monitor 文档了解如何找到连接字符串。

  3. (可选)您可以选择启用以下设置之一。

    • 记录活动:如果已启用,将记录传入/传出消息和事件的详细信息。

    • 记录敏感活动属性:如果已启用,可能视为对传入/传出消息和事件敏感的某些属性的值将包含在日志中。 被视为可能敏感的属性包括 userid、name、text 和 speak(text 和 spak 属性仅适用于消息)。

使用 Application Insights 分析机器人遥测

将机器人连接到 Application Insights 后,当用户与机器人交互时,包括在 Copilot Studio 内进行测试时,将记录遥测数据。 要查看记录的遥测数据,导航到 Azure 中 Application Insights 资源的日志部分。

从这里,您可以使用 Kusto 查询查询和分析您的数据。 请参见示例查询

示例查询

查询可以如指定一个表一样简单,如 customEvents,它显示从 Copilot Studio 记录的所有自定义遥测事件。 但您也可以使用 Kusto 查询进一步缩小结果范围,包括:

  • 添加时间间隔
  • 使用自定义维度扩展结果。 自定义维度是记录的自定义属性,以及预生成的字段,如时间戳或事件名称
  • 一个 where 子句,用于限制基于条件返回的数据
  • 使用更多内置 Kusto 函数确定信息的显示内容和方式

下面的示例查询生成了一个折线图,显示过去 14 天内每天有多少不同的用户与您的机器人进行过通信。

let queryStartDate = ago(14d);
let queryEndDate = now();
let groupByInterval = 1d;
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| summarize uc=dcount(user_Id) by bin(timestamp, groupByInterval)
| render timechart

重要提示

某些字段中的数据会有所不同,适用性或高或低,具体取决于所使用的渠道。 例如,只有在经过身份验证的用户以及他们的用户 ID 在对话中一致的情况下,您才能在查询中获得正确的唯一用户数。 在每个对话生成随机用户 ID 的匿名场景中,用户 ID 字段用处不大。

从查询中排除测试对话的遥测

机器人会记录所有对话的遥测信息,包括测试期间在 Copilot Studio 内发生的对话。 如果您想要排除测试期间收集的遥测,您可以使用在所有事件上捕获的 designMode 自定义维度来扩展查询,并在查询中使用 where 子句。

下面的示例显示了所有自定义事件,不包括通过测试画布捕获的事件。

customEvents
| extend isDesignMode = customDimensions['designMode']
| where isDesignMode == "False"

自定义维度

从 Copilot Studio 收到的特定活动数据中有很多存储在 customDimensions 字段中。 您可以看到正在查询中使用的自定义维度字段,用于从测试对话中排除遥测。

字段 说明 示例值
类型 活动的类型 message, conversationUpdate, event, invoke
channelId 渠道标识符 emulator, directline, msteams, webchat
fromId 起始标识符 <id>
fromName 来自客户端的用户名 John Bonham, Keith Moon, Steve Smith, Steve Gadd
locale 客户端源区域设置 en-us, zh-cn, en-GB, de-de, zh-CN
recipientId 收件人标识符 <id>
recipientName 收件人姓名 John Bonham, Keith Moon, Steve Smith, Steve Gadd
text 消息中的文本 find a coffee shop
designMode 测试画布中发生的对话 True / False