事务搜索和诊断
Azure Monitor Application Insights 提供事务搜索,用于查明特定的遥测项和事务诊断,以便进行全面的端到端事务分析。
事务搜索:借助此体验,用户能够查找和检查各个遥测项,例如页面视图、异常和 Web 请求。 此外,它还提供查看已编码到应用程序中的日志跟踪和事件的功能。 它标识应用程序中的性能问题和错误。
事务诊断:通过全面深入了解端到端事务详细信息(包括依赖项和异常)快速识别组件中的问题。 通过搜索界面从搜索结果中选择一个项目来访问此功能。
事务搜索是 Application Insights 中的一项功能,可用于查找和浏览单个遥测项,例如页面视图、异常或 Web 请求。 你还可以查看编码的日志跟踪和事件。
若要对数据进行更复杂的查询,请使用 Log Analytics。
哪里可以看到“搜索”?
可以在 Azure 门户或 Visual Studio 中找到“事务搜索”。
在 Azure 门户中
可以从应用程序的 Application Insights“概述”选项卡打开事务搜索。 还可以在左侧菜单中的“调查”下选择“搜索”。
转到“事件类型”下拉菜单,查看遥测项列表,例如服务器请求、页面视图、你已编码的自定义事件。 “结果”列表的顶部是摘要图表,显示一段时间内的事件计数。
退出下拉菜单或选择“刷新”以获取新的事件。
在 Visual Studio 中
在 Visual Studio 中,也有一个“Application Insights 搜索”窗口。 该窗口最适合显示由正在进行调试的应用程序生成的遥测事件, 但也可显示从 Azure 门户的已发布应用收集的事件。
在 Visual Studio 中打开“Application Insights 搜索”窗口:
“Application Insights 搜索”窗口的功能与 Web 门户类似:
打开请求或页面视图时,“跟踪操作”选项卡便可供使用。 “操作”是一系列与单个请求或页面视图关联的事件。 例如,依赖项调用、异常、跟踪日志和自定义事件可能是单个操作的一部分。 “跟踪操作”选项卡以图形方式显示与请求或页面视图相关的这些事件的计时和持续时间。
检查单个项
选择任一遥测项可查看关键字段和相关的项。
此时会打开“端到端事务详细信息”视图。
筛选事件类型
打开“事件类型”下拉菜单,选择要查看的事件类型。 如果稍后要还原筛选器,请选择“重置”。
事件类型包括:
- 跟踪:诊断日志,包括 TrackTrace、log4Net、NLog 和 System.Diagnostic.Trace 调用。
- 请求:服务器应用程序收到的 HTTP 请求,包括页面、脚本、图像、样式文件和数据。 这些事件用于创建请求和响应概述图表。
- 页面视图:Web 客户端发送的遥测数据,用于创建页面视图报告。
- 自定义事件:如果插入了对
TrackEvent()
的调用以便监视使用情况,可以在此处搜索这些调用。 - 异常:未捕获到的服务器中的异常,以及使用
TrackException()
记录的异常。 - 依赖项:来自服务器应用程序的调用(调用对象为 REST API 或数据库等其他服务),以及来自客户端代码的 AJAX 调用。
- 可用性:可用性测试的结果
按属性值筛选
可以按事件的属性值筛选事件。 可用的属性取决于所选的事件类型。 若要开始,请选择“筛选器”。
不选择特定属性的任何值与选择所有值的效果相同; 这会关闭根据该属性进行筛选的功能。
请注意,筛选器值右侧的计数显示当前筛选的集内有多少个出现的项。
查找具有相同属性的事件
若要查找具有相同属性值的所有项,请在“搜索”框中输入该属性值,或者在“筛选”选项卡上浏览属性时选中相应的复选框。
搜索数据
注意
若要编写更复杂的查询,请在“搜索”窗格的顶部打开“日志(分析)”。
可以搜索任何属性值中的关键词。 如果你已编写包含属性值的自定义事件,则此功能非常有用。
你可能希望设置时间范围,因为搜索一小段时间内的值可以更快地返回结果。
搜索完整单词,而不搜索子字符串。 使用引号将特殊字符引起来。
String | 未找到 | 已找到 |
---|---|---|
HomeController.About | home controller out |
homecontroller about "homecontroller.about" |
United States | Uni ted |
united states united AND states "united states" |
可以使用以下搜索表达式:
示例查询 | 效果 |
---|---|
apple |
在该时间范围中查找字段包含 apple 一词的所有事件。 |
apple AND banana apple banana |
查找同时包含这两个词的事件。 使用大写的 AND ,而不是 and 。 简格式。 |
apple OR banana |
查找包含任一词的事件。 使用 OR ,而不是 or 。 |
apple NOT banana |
查找包含一个词但不包含另一个词的事件。 |
采样
如果应用生成大量遥测数据并使用 ASP.NET SDK 版本 2.0.0-beta3 或更高版本,则它会通过自适应采样自动减少发送到门户的数据量。 此模块仅发送一小部分事件。 它选择或取消选择与相同请求相关的事件组,从而你允许在相关事件之间导航。
了解采样。
创建工作项
可以使用任何遥测项中的详细信息,在 GitHub 或 Azure DevOps 中创建 Bug。
通过单击任何遥测项转到端到端事务详细信息视图。 然后选择“创建工作项”。
首次执行此步骤时,系统将要求配置指向 Azure DevOps 组织和项目的链接。 还可以在“工作项”选项卡上配置此链接。
将更多遥测数据发送到 Application Insights
除了 Application Insights SDK 原本发送的遥测数据以外,可以:
了解如何向 Application Insights 发送日志和自定义的遥测数据。
常见问题
找到常见问题的答案。
会保留多少数据?
请参阅限制摘要。
如何查看服务器请求中的 POST 数据?
我们不自动记录 POST 数据,但可以使用 TrackTrace 或日志调用。 POST 数据放在消息参数中。 无法像筛选属性一样筛选消息,但消息的大小限制更大。
为什么我的 Azure 函数搜索不返回任何结果?
Azure Functions 不会记录 URL 查询字符串。