为什么Application Insights依赖关系时间轴存在差距?

时间:2018-01-29 21:17:23

标签: c# azure asp.net-core azure-application-insights

我们在Azure网站上托管了一个asp.net核心api,它执行以下操作:

var sw = new Stopwatch();
var t1 = InsertToTableStorageAsync();
sw.Start(); // Measure the actual time between these two calls
// more code here
sw.Stop();
Debug.WriteLine(sw.ElapsedMilliseconds); //20 ms in debug mode
var r2 = await PerformAnAzureSearchAsync().ConfigureAwait(false);
//more code here
var r1 = await t1.ConfigureAwait(false);

在查看见解时,我们会看到以下依赖关系时间轴: enter image description here

请注意存储依赖关系何时结束与搜索依赖关系开始之间的差距。那是超过100毫秒。这是Insights门户网站中的一个错误报告吗?或者这是我们可以通过代码改进的东西吗?

更新1/30/2018

我决定在调试时使用Stopwatch来衡量通话之间的时间,结果为20ms,比Insights报告的~100ms快五倍。我知道我正在调试,但我认为发布版本更快。

2 个答案:

答案 0 :(得分:0)

  

这两个电话之间的差距很大,看起来并不正确。这是Application Insights中的错误吗?

我想不是。我也在我身边测试,结果像你一样。状态是成功(绿色)。加载依赖项确实需要一段时间。而且您似乎调用了两个不同的依赖项,因此您确实需要花费一段时间来为项目加载两个依赖项。就像在浏览器中运行页面一样,您还需要一段时间来查看页面。您可以阅读此article请求时间表),官方结果也会在两次通话之间缩短一段时间。

  

请求时间表

     

在另一种情况下,没有特别长的依赖性调用。但是通过切换到时间线视图,我们可以看到内部处理中发生延迟的位置:

enter image description here

答案 1 :(得分:-1)

我们正在经历相同的事情,并努力找出为什么请求和数据库依赖项调用之间需要这么长时间的原因...在某些情况下,可能需要30秒或更长时间...

enter image description here