你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Application Insights 进行跟踪

确定代理执行背后的原因对于故障排除和调试非常重要。 但是,由于多种原因,这对于复杂的代理而言可能很困难。这些原因包括:

  • 生成响应所涉及的步骤可能很多,因此很难跟踪所有这些步骤。
  • 步骤序列可能因用户输入而异。
  • 每个阶段的输入/输出可能很长,需要进行更详细的检查。
  • 代理运行时的每个步骤还可能涉及嵌套。 例如,代理可能会调用一个工具,后者又会使用另一个进程,然后该进程又调用另一个工具。 如果发现顶级代理运行的输出异常或不正确,则很难确切地确定是在执行中的哪个环节引入了问题。

跟踪可助你清楚地了解特定代理运行中涉及的每个基元的输入和输出(按照基元的调用顺序),从而解决这一问题。

创建 Application Insights 资源

借助跟踪,你可以通过使用 OpenTelemetry 并将 Application Insights 资源添加到 Azure AI Foundry 项目来分析代理的性能和行为。

若要添加 Application Insights 资源,请导航到 Azure AI Foundry 门户中的“跟踪”选项卡,然后创建一个新资源(如果还没有)。

Azure AI Foundry 门户中的跟踪屏幕的屏幕截图。

创建后,可以获取 Application Insights 连接字符串,请配置代理,并通过 Azure Monitor 观察代理的完整执行路径。 你通常需要在创建代理之前启用跟踪。

跟踪代理

首先,使用 pip install 安装 OpenTelemetry 和 Azure SDK 跟踪插件。

pip install opentelemetry
pip install azure-core-tracing-opentelemetry

你还需要一个导出器,以便将结果发送到可观测性后端。 你可以将跟踪信息打印到控制台或使用本地查看器(例如 Aspire 仪表板)。 若要连接到 Aspire 仪表板或其他与 OpenTelemetry 兼容的后端,请安装 OpenTelemetry 协议 (OTLP) 导出器。

pip install opentelemetry-exporter-otlp

安装包后,可以使用以下 Python 示例之一实现代理跟踪。 使用控制台跟踪的示例将在本地控制台中显示结果。 使用 Azure Monitor 的示例会将跟踪信息发送到 Azure AI Foundry 门户中的 Azure Monitor(位于门户左侧导航菜单的“跟踪”选项卡中)

注意

代理跟踪功能中有一个已知的 bug。 该 bug 将导致代理的函数工具调用跟踪中将会包含的相关信息(函数名称和参数值,其中可能包含敏感信息),即使未启用内容记录功能也是如此。

使用 Azure Monitor

使用控制台跟踪