在此期间发送的数据过多,在Application Insights中将其删除

时间:2019-02-18 13:22:41

标签: azure azure-application-insights

使用Application Insight进行日志记录时,我收到以下跟踪消息:“在此期间发送了太多数据,并且由于调试器的响应性而将其删除。”

我真的很想查看所有数据(总共22个日志条目,其中显示大约8个,其余的被删除)

关于如何配置它的任何想法?

2 个答案:

答案 0 :(得分:2)

您需要禁用sampling才能使用Application Insights记录所有日志。

例如,如果您使用的是ASP.NET Core,则可以按照文档中的以下片段配置采样。

public void ConfigureServices(IServiceCollection services)
{
// ...

var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
aiOptions.EnableAdaptiveSampling = false;
services.AddApplicationInsightsTelemetry(aiOptions);

//...
}

请记住,App Insights的最长保留期为90天。

如果在Visual Studio中遇到“在此期间发送了太多数据,并且由于调试器响应而将其删除”消息,请查看this thread。简而言之,它表示您可以(一定程度上)配置Visual Studio在开始过滤消息之前显示更多数据。但是,使用这些设置不是一个好主意,并且如果您要检查大量日志(大型条目和/或许多条目),则应通过Application Insights用户Web界面执行此操作,只要将采样配置为关闭),所有日志条目都将保留。

在下面引用:

  

“太多数据”消息仅在VS中出现(它不会影响   数据由sdks 发送),并在我们看到调试器时触发   对于我们来说,输出太大而无法“舒适地”进行处理   减慢调试器的速度。

     

基本上,调试器会批处理输出窗口消息,然后   处理它们。如果我们看到很大的,我们就做简单的包含   检查而不是正则表达式检查。如果那块   文本包含我们必须解析的所有ai消息,并且   很大(默认为20k个字符),我们跳过了处理(   查找巨型块中的每个事件,解析每个事件,等等)并   而是显示该消息;为了节省调试时间,我们只需要跳过   整个批次,并添加注释,其中存在 遥测(您可以看到   它在输出窗口中,它将由sdk发送),但是   调试器工具不会浪费时间解析所有内容。

     

有一种方法可以更改我们用作阈值的值   调试器,但最终会使您的VS体验变慢   我们将花费更多的时间来解析输出窗口中的事件。如果   您已经确定它是什么(一个巨大的EF查询),我不确定您是否   想要更改设置以使我们对其进行解析以显示给您。

答案 1 :(得分:1)

您可以增加默认限制20000个字符:

  1. 关闭所有VS实例。
  2. 执行Table.TransformColumns(Source,{{"Col", each DateTime.FromText(_&":00"), type datetime}})