【问题标题】:Application Insights HTTP request perfromance data is too unreliableApplication Insights HTTP 请求性能数据太不可靠
【发布时间】:2018-03-19 13:59:22
【问题描述】:

我现在正试图找出我目前正在开发的应用程序的一些性能问题,我对 Application Insights(这是 Azure 中的一项付费服务​​)提供一些可靠的数据寄予厚望,但这里是我得到的一个例子是在同一时间间隔内对同一 URL 的请求数: 1. Visual Studio - 4300(内置AppInsights集成)

  1. Azure 门户中的 AppInsights 刀片 - 0:

  2. AppInsights 分析 - 740:

还有一个叫做 Application Insights profiler 的东西,它显示请求执行时间等于说 500 毫秒,但是当你去查看堆栈跟踪时,它变成了 97 秒!: 这导致了像这样的良好性能提示:

谁能解释如何读取这些数据或者指出我做错了什么?

【问题讨论】:

  • 对于#2 - 你能运行“requests | project name, operation_Name | take 10”并粘贴到这里吗?您使用哪个操作系统、AI SDK、版本?
  • 差异也可能来自采样。你能运行“requests | summarise max(itemCount)”吗?计算请求的正确方法是考虑itemCount:“requests | summarise sum(itemCount)”
  • @ZakiMa for #2 实际上我想我找到了解释,看起来 Application Insights 决定使用我的 C# 配置中的路由和操作名称来命名一些操作 - routes.MapRoute(...); 而不是 URL(对于很多其他的它仍然是 URL)
  • 此处的 Application Insights Profiler 开发人员:对于 #3,请通过 serviceprofilerhelp@microsoft.com 与我们联系,我们会尽力为您提供帮助。

标签: asp.net performance azure profiler azure-application-insights


【解决方案1】:

name 字段(请求、依赖项)由各种 sdk 中的各种代码计算得出,以提供比 URL 具有的“更好”的名称。所以按urlname 分组/计数会给你不同的结果。

正如 zaki 指出的那样,任何类型的采样,无论是客户端还是服务器,都会在这些行上设置 itemCount,因此您需要在分析中执行的任何查询中使用 sum(itemCount) 以确保您得到相同算作门户或 VS 中的视图

在 VS 屏幕截图中,您可以看到顶部请求的位置有一个 (5),表示数据库中的这一行代表 5 个请求。

至于问题 #3,您可能希望将其拆分为一个单独的问题,因为它与第一个或第二个问题并没有真正的直接关系,并且不同的人可以回答这个问题。

【讨论】:

    猜你喜欢
    • 2018-08-09
    • 1970-01-01
    • 2018-06-20
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 2017-06-13
    • 1970-01-01
    • 2022-01-12
    相关资源
    最近更新 更多