我需要记录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。
任何帮助,将不胜感激。
谢谢。