azure - Web 应用服务的 Azure Insights 数据:为什么 Ajax 调用和控制器方法显示的响应时间可能有很大差异
问题描述
我在 Azure 应用服务(.NET C#)中有以下控制器类和 PUT 方法
MyController {
[MyApiRoute("anapi")]
// PUT: anapi/items
[HttpPut("items")]
public async Task<ActionResult<AnObject>> ManageLineItems()
{
//some code here....
}
}
我正在尝试使用 azure 洞察力来衡量调用此 REST URL 的性能。它显示 AJAX 调用的第一行为 7.7 秒,控制器方法的第二行为 3.9 秒,如图所示。我的理解是,azure Insights 中的第一行对应于对该 URL 的调用,第二行对应于控制器中的方法执行的时间。如果这是正确的,通常在 azure app 服务上会花费 7.7 秒 - 3.9 秒吗?这似乎不是我的代码所花费的时间。如果我对 azure insight 中这两行的理解不正确,这里的任何专家都可以解释一下这是什么意思吗?此外,是否会花费 2.8 秒,这是路线和方法的总执行时间之间的差异?
如果我需要提供有关该问题的更多详细信息,请告诉我。
解决方案
Application Insights 是一个全面的应用程序性能监控工具,它的功能远不止日志记录。它是用于收集和监控应用程序日志数据的应用程序性能管理 (APM) 服务
在您问题的上图中,第一行代表您的 Web 服务的传出依赖项,以下行代表传入请求。而你看到的duration列就是每个级别的累计请求时长。
如果服务 A 调用服务 B,那么从服务 A 的角度来看,对服务 B 的调用是一个“<strong>传出依赖”</strong>,当服务 B 收到此请求时,从它的角度来看,调用是来自服务 A 的“<strong>传入请求”</strong>。这就是 App 洞察同时捕获它们的原因。
这称为端到端关联,默认情况下在您启用应用程序洞察力时有效。
我建议阅读此End to end correlation using Azure application insights for asp.net
mvc apps文档,以了解整个以了解请求流的层次结构视图,告诉哪些服务或 API 调用发生,以及异常发生的位置和时间点以及所有在该请求期间发生的日志/跟踪。
推荐阅读
- highcharts - Higcharts:单击绘制的箭头段,不能选择也不能拖动
- vba - 有没有办法进行编辑(在子表单中进行)链接到数据库中具有唯一 ID 结构的另一个表?
- django - 使用 context var 访问 django 模板中的属性
- python - Sagemaker 端点服务不适用于多个输入(多输入-输出 LSTM)
- python - 如何在 python-socketio 服务器中使用自定义装饰器?
- git - 如何在 git cherry-pick 中调查“inflateInit:内存不足”?
- amazon-web-services - Global Accelerator 或负载均衡器能否将流量路由到 AWS API Gateway 上的 API,其中 API 在 AWS 之外具有后端微服务?
- git - 为什么 git add --update 将新文件添加到索引中?
- sql - MS Access - 当我循环语句时插入需要更多时间
- python - 熊猫阅读 csv 千位分隔符和 nans