Azure App Insights 中的 Flush()
Posted
技术标签:
【中文标题】Azure App Insights 中的 Flush()【英文标题】:Flush() in Azure App Insights 【发布时间】:2019-01-27 23:32:20 【问题描述】:对于 Azure App Insights 中的 Flush()
方法,我想知道它是否会影响项目的性能?
我尝试删除 Flush()
并且所有自定义数据仍然发送到 App Insights。所以我的问题应该是为什么我们需要 Flush()
?我们可以删除它吗?
【问题讨论】:
【参考方案1】:TelemetryClient
上的Flush()
将它当前在缓冲区中的所有数据推送到 App Insights 服务。
您可以在此处查看其源代码:https://github.com/Microsoft/ApplicationInsights-dotnet/blob/3115fe1cc866a15d09e9b5f1f7f596385406433d/src/Microsoft.ApplicationInsights/TelemetryClient.cs#L593。
通常,Application Insights 会在后台批量发送您的数据,以便更有效地使用网络。 如果您启用了开发者模式或手动调用 Flush(),则会立即发送数据。
通常您不需要调用 Flush()。 但如果您知道该进程将在该点之后退出,您将需要调用 Flush() 以确保所有数据都已发送。
【讨论】:
如果应用程序正在退出,则建议在 Flush() 之后使用 Sleep(5000) 以确保发送所有项目。 嗯,看起来一点也不干净。我们应该能够明确地等待某些东西,也许退出代码是关键遥测。 @evilSnobu 有道理,您可以提供任何示例代码吗?这是一个用于 asp.net 核心的 web api。我会假设控制器类将是退出代码。 我找到了一些有用的示例代码:thinkrethink.net/2017/03/09/…以上是关于Azure App Insights 中的 Flush()的主要内容,如果未能解决你的问题,请参考以下文章
text Azure App Insights Kubernetes日志
如何使用 Pyspark 提取 Azure Application Insights 事件?
Azure App Service Application Insights 不显示依赖的 sql 命令文本