这是我们在Azure上托管的.NET API(ASP.NET& NancyFX)的跟踪。所有跟踪语句都属于底部显示的请求。对trace函数的调用实际上不在基本请求方法中,而是在从基本请求方法调用的异步函数中。正如您在图像中看到的,一些跟踪消息已被分配了“操作ID”(请求ID),但有些则没有。如果我单击该请求,我可以向下钻取并查看这3个初始跟踪,但不是后者2.我必须做的是在跟踪消息中插入一个唯一的ID,[39203984]在这个例子中,所以我过滤时可以将它们绑在一起。我看不出为什么有些人有联系而其他人没有联系的原因。从图像看来,非详细跟踪是问题,但情况并非总是如此。它确实使得阅读日志变得更加困难。
跟踪都是使用Insights的“新”TrackTrace()函数生成的。
答案 0 :(得分:0)
如果在异步代码运行时有一个asp.net请求上下文可用,那么通常会发生 。这是由操作相关初始值设置器设置的:
尝试在可能的情况下使用请求的操作上下文id,并且在这里:
创建一个操作名称。
如果您知道比初始化程序更好的猜测,您可以在上下文中手动设置operation.id和operation.name属性。它看起来像你正在那样做,但只是将它作为跟踪的一部分发送而不是自己设置operation.id字段?