Application Insights 可以离线使用吗

Can Application Insights be used off-line

我维护了很多向 Application Insights 报告事件、错误等的应用程序。

我在公司环境中也有应用程序 运行 不对 Internet 开放。

是否可以在本地存储遥测数据,然后将其批量上传到 application insights?

它当然不是实时信息,但它允许我重复使用我已经得到的报告和工具。

查看了 persistence channel 但它似乎是针对同一应用程序创建并最终发送信息的临时离线场景。

在我的场景中,所有遥测数据都将存储在一个文件中,该文件稍后会移动到可以访问互联网的机器上,并由另一个应用程序上传信息。

是的,应该可以。几个选项:

  1. 实施 TelemetryProcessor 将所有内容保存在某处,然后 returns false(因此,它不会被链的其余部分处理 => 不会被发送)
  2. 实现自己的遥测通道并替换持久性通道

最重要的是,您需要实现上传器,它从您存储遥测数据的位置读取遥测数据,然后使用一些 SDK 上传。

有关详细信息,请创建 github 问题并寻求指导 =)

并非没有一些主要缺点,让我解释一下:

首先,Application Insights 只允许您添加不早于 48 小时的遥测数据。 (参见 this question

中的第一条评论

其次,在将异常遥测数据发送到应用程序洞察时,您会 运行 遇到麻烦。您将不得不以某种方式将异常序列化到磁盘或其他东西,然后,当上传过程开始时,您将不得不反序列化该异常数据。这些通常很难反序列化,因此您会丢失一些信息,例如实际的异常类型。