首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用Azure Insight采样无效

禁用Azure Insight采样无效
EN

Stack Overflow用户
提问于 2022-08-24 13:43:52
回答 1查看 101关注 0票数 0

我正在.NET核心3.1中开发一个Azure函数。我注意到它并没有将所有想要的数据保存到Azure Insight中。当然,我尝试在本地主机上运行我的函数,并且不仅将日志添加到AI中,而且每次尝试将数据登录到AI中时,我还创建了一个文本文件,其中包含了我想要登录的数据。创建的文本文件的数量与我预期的完全相同,而AI日志中的条目却少得多。

为了禁用采样,我尝试了host.json文件的各种配置,该文件的当前内容是:

代码语言:javascript
复制
  "version": "2.0",
  "functionTimeout": "-1",
  "logging": {
    "fileLoggingMode": "always",
    "logLevel": {
      "default": "Information"
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": false,
        "maxTelemetryItemsPerSecond": 10000,
        "excludedTypes": "Debug,Trace,Warning,Error,Information,Critical"
      }
    }
  }
}

(由于将isEnabled设置为false没有帮助,我也尝试设置足够数量的每秒最大遥测项目,但也没有帮助)

它没有工作(在我的本地计算机上也没有工作,部署在Azure上);我还试图通过代码禁用它:

代码语言:javascript
复制
namespace MyAzureFunction
{
    public class MyStartup : IWebJobsStartup
    {
        public void Configure(IWebJobsBuilder builder)
        {
            var configDescriptor = builder.Services.SingleOrDefault(tc => tc.ServiceType == typeof(TelemetryConfiguration));
            if (configDescriptor?.ImplementationFactory != null)
            {
                var aiOptions = new ApplicationInsightsServiceOptions();
                aiOptions.EnableAdaptiveSampling = false;

                var implFactory = configDescriptor.ImplementationFactory;
                builder.Services.Remove(configDescriptor);
                builder.Services.AddSingleton(provider =>
                {
                    if (implFactory.Invoke(provider) is TelemetryConfiguration config)
                    {
                        var newConfig = TelemetryConfiguration.Active;
                        newConfig.ApplicationIdProvider = config.ApplicationIdProvider;
                        newConfig.InstrumentationKey = config.InstrumentationKey;
                        return newConfig;
                    }
                    return null;
                });

                builder.Services.AddApplicationInsightsTelemetry(aiOptions);
            }
        }
    }

另外,当我在localhost上运行函数时,我在命令行窗口中看到了这一点:

代码语言:javascript
复制
[2022-08-24T13:37:55.249Z] {
[2022-08-24T13:37:55.250Z]   "version": "2.0",
[2022-08-24T13:37:55.252Z]   "functionTimeout": "-1",
[2022-08-24T13:37:55.253Z]   "logging": {
[2022-08-24T13:37:55.254Z]     "fileLoggingMode": "always",
[2022-08-24T13:37:55.255Z]     "logLevel": {
[2022-08-24T13:37:55.257Z]       "default": "Information"
[2022-08-24T13:37:55.258Z]     },
[2022-08-24T13:37:55.259Z]     "applicationInsights": {
[2022-08-24T13:37:55.260Z]       "samplingSettings": {
[2022-08-24T13:37:55.262Z]         "isEnabled": false,
(...)
[2022-08-24T13:37:57.043Z] Initializing Host. OperationId: ...
[2022-08-24T13:37:57.055Z] Host initialization: ConsecutiveErrors=0, StartupCount=1, OperationId=...
[2022-08-24T13:37:57.087Z] ApplicationInsightsLoggerOptions
[2022-08-24T13:37:57.089Z] {
[2022-08-24T13:37:57.089Z]   "SamplingSettings": null,
[2022-08-24T13:37:57.090Z]   "SamplingExcludedTypes": null,
[2022-08-24T13:37:57.091Z]   "SamplingIncludedTypes": null,
[2022-08-24T13:37:57.092Z]   "SnapshotConfiguration": null,

正如您所看到的,尽管SamplingSettings读取主机配置时关闭了采样,但它是空的,但我无法找到有效禁用它的方法。

EN

回答 1

Stack Overflow用户

发布于 2022-09-06 16:53:17

我试着重复你的问题。我能够获得所有的遥测信息在应用洞察力后,禁用抽样。

  • @Andrew,关于您在Azure应用程序中的抽样率的建议,根据请求的操作ID,检查
  • 采样率是100%。与特定操作相关的遥测项目要么保留,要么删除。

解决办法如下

我使用了您使用的相同的host.json文件配置。

代码语言:javascript
复制
  "version": "2.0",
  "logging": {
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": false,
        "maxTelemetryItemsPerSecond": 10000,
        "excludedTypes": "Debug,Trace,Warning,Error,Information,Critical"
      }
    }
  }
}

禁用startup.cs中的采样

代码语言:javascript
复制
  var aiOptions = new ApplicationInsightsServiceOptions();
  aiOptions.EnableAdaptiveSampling = false;
  builder.Services.AddApplicationInsightsTelemetry(aiOptions);

我从获得的结果是:本地的

在Azure host.json中部署相同的功能

用KUDU生成的日志文件

人工智能结果

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73474282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档