如何检测对异常的依赖

时间:2019-04-24 11:36:24

标签: .net azure azure-application-insights telemetry

我之前曾问过一个有关特定telemetry sampling的问题,在该问题中,一个人可以丢弃10%的成功呼叫。

结果表明,依赖项需要单独处理。滤除大多数成功的依赖项可能会导致丢失有关失败/异常的信息。

是否有任何方法可以知道某个依赖项是否属于异常或将属于同一类的遥测项目聚在一起?

编辑:显然有一个'successful call'属性。但是找不到太多的信息。这是否意味着依赖项本身已失败或原始调用失败了?

2 个答案:

答案 0 :(得分:0)

一起进行的遥测应具有相同的operation_Id,因此,如果您正在寻找一种将事物组合在一起的方法(例如端到端详细信息视图), d要查看operation_Ids。

理想情况下,您将有一个入站请求,该请求会设置operation_Id / operation_Name上下文,然后是该请求中发生的所有,包括日志,依赖项,异常,事件,指标等都具有相同的operation_Id值,并且可以一起找到。

对依赖项的成功调用指示特定的“出站”请求成功。即使请求中的依赖项失败,您仍然可以拥有成功的请求,反之亦然,这取决于系统的工作方式。

这里唯一的“陷阱”是使用异步的情况。在这些情况下,当异步代码实际运行时,它可能无权访问启动异步代码时正在/正在运行的请求。在这种情况下,您可能需要自己做一些额外的工作来确保操作上下文正确地通过异步代码传递。

答案 1 :(得分:0)

是否有办法知道依赖项是否属于异常或将遥测项归为一组?

您可以使用operation_id从单个操作中查找所有遥测。但是您可能不需要它,因为默认采样会保留或丢弃一次操作中的所有遥测(即相同的operation_id)。

因此,如果您的请求失败,并且遥测已被应用程序洞察力捕获,并且采样决定发送此请求,那么所有相关遥测(包括异常,依赖项)也将保留。