Asl*_*leA 6 c# httprequest rabbitmq microservices azure-application-insights
我们有一个分布式应用程序,其中混合了旧版 ASP .NET Web 应用程序、ASP .NET Core Web 应用程序、ASP .NET Core 微服务、.NET Framework 控制台应用程序和 .NET Core 控制台应用程序。组件之间的通信都是通过 HTTP 和 RabbitMQ 进行点对点通信的。
一个典型的例子是一个请求被一个面向公众的 web 应用程序处理,这导致一个或多个微服务通过 HTTP 直接通信,而且一个或多个事件被生成并发布到 RabbitMQ,并在消费者有空闲容量。我们正在使用 ApplicationInsights(它对 HTTP 非常有效),但是很难将通过 RabbitMQ 的请求添加到端到端事务的可视化表示中。我们按照文档中的描述将请求与 OperationId 和 ParentId 联系起来,并且可以运行一个返回所有相关操作的查询,但我们无法在视图“End-to-结束交易详细信息”在 Azure 门户上,只有纯 HTTP 请求。
有没有人分享的见解?需要做什么才能使 Application Insights 了解 RabbitMQ 使用者上下文中的操作也应该以图形方式显示?
在这里引用 ZakiMa 的评论作为答案,这样它可以帮助社区中有类似问题的其他人:
你好!我们正在积极努力实现这一目标。如果您有兴趣尝试私人预览(只需在 URL 中添加特殊标志,无需额外配置),请发送电子邮件至我的别名。域名是microsoft----com。
另外,仅供参考,与使用 Application Insights 实现分布式跟踪相关的文档中也引用了这一点:
目前,不支持跨消息传递技术(例如 Kafka、RabbitMQ 和 Azure 服务总线)的自动上下文传播。可以使用 trackDependency 和 trackRequest 方法手动编写此类场景。在这些方法中,依赖性遥测表示由生产者排队的消息。该请求代表消费者正在处理的消息。在这种情况下,操作 ID 和操作父 ID 都应该在消息的属性中传播。
感谢您伸出援手。
截至 2020 年 6 月 18 日更新:
此功能已发布为公共预览版。在应用程序地图/端到端详细信息中,您应该看到一个横幅和尝试预览选项,如下所示:
| 归档时间: | 
 | 
| 查看次数: | 929 次 | 
| 最近记录: |