3

此代码执行时没有任何错误,但显然不会在 ApplicationInsights 中记录任何内容。foobar密钥无效。

 var client = new TelemetryClient
 {
    Context = { InstrumentationKey = "foobar" }
 };

 client.TrackEvent(telemetryEvent);

我明白这可能是件好事。我不希望我的应用程序崩溃,因为 AppInsights 不可用。但是很高兴知道它无法到达,所以我可以做其他事情。

我认为可能会附加的可能错误:

  • api无法访问
  • 事件格式不正确
  • api 密钥无效
  • 等等

其中一些可能是临时的(api 临时不可用),但其他可能不是(无效的 api 密钥)。

有什么方法可以“测试”客户对这些案例做出反应吗?

就像是 :

if (!client.IsAppInsightReachable)
{
  //Send an email to someone so he can check if everything is OK
}
4

3 回答 3

2

如果你真的想这样做,你可能可以,但重新发明轮子可能需要做很多工作。

您必须自己做很多工作,实施或包装诸如ITelemetryChannel 做您想做的事情之类的事情。

各种应用程序洞察 sdk的大部分来源都在 github 上

于 2015-06-03T00:27:37.603 回答
1

我设法对遥测客户端的工作方式有所了解,请参阅我自己的问题,其中描述了我如何设法检测到 Application Insights 的连接问题:

检测 Application Insights 是否(以及为什么)可以将遥测数据发送到 Azure

于 2015-12-24T07:54:37.197 回答
0

一种选择是使用 Fiddler 作为代理来查看是否从 SDK 发送事件。这个博客描述了如何做到这一点。

于 2015-06-01T15:43:23.403 回答