【问题标题】:Flush() in Azure App InsightsAzure App Insights 中的 Flush()
【发布时间】:2019-01-27 23:32:20
【问题描述】:

对于 Azure App Insights 中的 Flush() 方法,我想知道它是否会影响项目的性能?

我尝试删除 Flush() 并且所有自定义数据仍然发送到 App Insights。所以我的问题应该是为什么我们需要 Flush()?我们可以删除它吗?

【问题讨论】:

    标签: azure azure-application-insights telemetry


    【解决方案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/…
    猜你喜欢
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 2021-10-26
    • 1970-01-01
    相关资源
    最近更新 更多