如何使用应用程序洞察力进行分布式跟踪/跟踪

Posted

技术标签:

【中文标题】如何使用应用程序洞察力进行分布式跟踪/跟踪【英文标题】:how to do distributed tracing / tracking with application insights 【发布时间】:2020-02-08 08:49:03 【问题描述】:

我在 Azure 中使用了多个资源,流程如下所示:

    从 sftp 获取文件 使用来自 http 调用的数据丰富文件 将消息放入队列 处理消息 打一些外部电话 提供数据

我们如何在上述过程中追踪特定“运行”的位置?

我们可以简单地创建一个 guid 并将其传递给应用洞察吗?

【问题讨论】:

所有流程都在同一个 Azure 函数中?并且不清楚“在上述过程中特定的'运行'在哪里”,你能解释得更清楚吗? 【参考方案1】:

这对于Distributed tracing来说确实是一个完美的场景!

有两种主要的方法来处理这些数据,使用Transaction Diagnostics 视图或Application Map 视图。前者有助于在每个请求的基础上发现性能问题,而后者则提供各种系统之间交互的拓扑视图。

大多数依赖项由 Application Insights SDK 自动收集,因为它通过依赖项自动收集器本地支持分布式跟踪,但您也可以使用 TrackDependency API 手动跟踪它们。

关于关联遥测,您建议的 GUID 采用 operation_Id 的形式,它将遥测与执行的逻辑操作相关联。要详细了解其背后的工作原理,请查看Telemetry correlation in Application Insights。

为了进一步阅读,还有一篇简洁的博文here 用一个例子说明了这一点。

希望这会有所帮助!

【讨论】:

以上是关于如何使用应用程序洞察力进行分布式跟踪/跟踪的主要内容,如果未能解决你的问题,请参考以下文章

将应用洞察跟踪日志记录添加到 .net 核心控制台应用程序

角度性能跟踪

日志调试不理想?试试分布式追踪优势

BizTalk 2020:混淆发送到应用洞察的敏感跟踪数据

如何存储位置数据以使用核心数据进行跟踪?

分布式跟踪系统的四大功能模块如何协同工作