2

我需要记录Azure 中函数应用的所有调用(成功与否)的信息。我第一次尝试只使用 log.LogInformation() 并发现消息不是从所有函数调用中写入的。做了一些研究,我了解到在高负载场景中(我的场景是高负载场​​景),有时运行时决定不记录一些成功的调用。很公平。

然后我尝试使用自定义事件进行日志记录并捕获我需要的信息:

                    TelemetryConfiguration config = TelemetryConfiguration.CreateDefault();
                    TelemetryClient tc = new TelemetryClient(config);
                    Dictionary<string, string> props = new Dictionary<string, string>();
                    props["msgid"] = msgid;
                    tc.TrackEvent("MsgToBenefitsService", props);

仍然没有运气,在我做的一些运行中,我在 1000 次调用中只看到了 82 行应用程序洞察。我找不到任何说明可能未记录自定义事件的文档,所以我预计我会看到 1000 次调用记录了 1000 个事件。

上面的日志记录代码有什么问题吗?是否有任何选项可以保证我可以将信息从调用写入 AppInsights ?或者我是否坚持必须从功能应用程序中明确记录自己?

作为背景,这个函数应用有一个服务总线触发器来从一个主题中读取消息。我正在使用运行时的 v3。

任何帮助,将不胜感激。

谢谢。

4

1 回答 1

1

请在host.json中禁用采样:

"applicationInsights": {
  "samplingSettings": {
    "isEnabled": false
  }
}

applicationInsights.samplingSettings
Application Insights 中的采样

于 2021-01-09T18:29:35.130 回答