Azure application insights 记录对Application Insight的请求和响应

Azure application insights 记录对Application Insight的请求和响应,azure-application-insights,Azure Application Insights,我正在尝试将API请求负载和响应数据记录到Azure Application Insight。使用跟踪,我可以记录。但我想知道将请求和响应数据记录到ApplicationInsight的最佳方式是什么。由于数据量巨大,API调用的数量将更多。我不能仅仅使用跟踪来跟踪数十万个请求和响应数据。我尝试了一些博客,比如使用ITelemetryInitializer/httpcontext.feature,get,但没有成功 我想从c#.Net框架、Web API而不是.Net核心登录 我试过的示例代码

我正在尝试将API请求负载和响应数据记录到Azure Application Insight。使用跟踪,我可以记录。但我想知道将请求和响应数据记录到ApplicationInsight的最佳方式是什么。由于数据量巨大,API调用的数量将更多。我不能仅仅使用跟踪来跟踪数十万个请求和响应数据。我尝试了一些博客,比如使用ITelemetryInitializer/httpcontext.feature,get,但没有成功

我想从c#.Net框架、Web API而不是.Net核心登录

我试过的示例代码

public class AzureRequestResponseInitializer : ITelemetryInitializer
{
    public void Initialize(ITelemetry telemetry)
    {
        var requestTelemetry = telemetry as RequestTelemetry;
        
        if (requestTelemetry != null && (HttpContext.Current.Request.HttpMethod == HttpMethod.Post.ToString() || HttpContext.Current.Request.HttpMethod == HttpMethod.Get.ToString()))
        {
            using (var reader = new StreamReader(HttpContext.Current.Request.InputStream))
            {
                string requestBody = reader.ReadToEnd();
                requestTelemetry.Properties.Add("body", requestBody);
            }
        } 

这个问题的答案是


请看一看。

您可以参考这个。如果您有任何更新,请告诉我。请注意,由于记录了大量数据,这可能会导致高昂的成本。是否确实要为每个请求记录此操作?您还可以使用生成的id将主体存储在azure blob存储中,并将该id存储为自定义属性,以便可以将遥测与包含请求和响应主体的blob相关联