【问题标题】:Track HTTP body content on Application Insights在 Application Insights 上跟踪 HTTP 正文内容
【发布时间】:2016-09-07 12:20:06
【问题描述】:

有没有办法在 Application Insights HTTP 或依赖项跟踪模块中包含 HTTP 正文响应内容?知道请求的 HTTP 响应状态代码是什么很有用,但知道响应消息/数据是什么非常重要。

我查看了创建自定义过滤器或初始化器,但似乎没有属性有任何响应内容,我该如何包含它?

【问题讨论】:

  • 您是要求依赖跟踪模块从您的服务调用中捕获响应,还是要求从应用程序洞察力检测的应用程序中捕获服务器请求的响应?
  • 是的,我想从我的应用程序中捕获服务调用的响应...但是捕获“服务器请求响应”是否也有用。也许响应可能太大,因此为什么没有首先捕获它?

标签: azure azure-application-insights


【解决方案1】:

这实际上需要的不仅仅是检查 Response 对象的属性。您必须使用Response Filter 才能在完成之前捕获身体。

下面的gist 有两个文件。一个是CaptureStream.cs 文件,它实现了一个Stream abastract 类并只是传递信息。在此过程中,我们在 StringBuilder 中附加数据。

另一个只是覆盖Application_BeginRequest 方法和Application_LogRequest 方法的Global.asax.cs 示例。

您可以在ASP.NET Application Lifecycle 中选择您认为正确位置的任何方法。我选择这两个是因为这是我记得在其他项目中使用的前两个。

https://gist.github.com/debugthings/058f8c0634accfbdcce2c8c5b818d514

【讨论】:

  • 您应该将其转换为 NuGet 包,以便人们可以将其固定在 Insights 旁边。感谢分享。
  • 我知道这个问题很老,但你知道是否有办法以类似的方式过滤出站请求?我想将内容正文添加到请求遥测中,但仅限于某些外部 API 调用。我在 .net 框架 4.7.2 上。
【解决方案2】:

我刚刚在Matthias Güntert 回答其他问题View POST request body in Application Insights 之后做了这个

【讨论】:

  • 在 .NET 5 上也为我工作
猜你喜欢
  • 2018-08-09
  • 2017-06-28
  • 2015-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-08
相关资源
最近更新 更多