此代码执行时没有任何错误,但显然不会在ApplicationInsights中记录任何内容。 foobar
密钥无效。
var client = new TelemetryClient
{
Context = { InstrumentationKey = "foobar" }
};
client.TrackEvent(telemetryEvent);
我明白这可能是一件好事。我不希望我的应用程序崩溃,因为AppInsights不可用。但是知道某种程度上它是不可达的会很好,所以我可以做其他事情。
我认为可能附加的错误:
其中一些可能是transcient(api暂时不可用),但其他可能不是(无效的api密钥)。
有什么办法可以“测试”客户对这些案件做出反应吗?
类似的东西:
if (!client.IsAppInsightReachable)
{
//Send an email to someone so he can check if everything is OK
}
答案 0 :(得分:2)
如果你真的想这样做,你可能会这样做,但重新发明轮子可能需要做很多工作。
你必须自己做很多工作,实现或包装诸如ITelemetryChannel
之类的东西来做你想做的事。
答案 1 :(得分:1)
我设法了解了遥测客户端的工作方式,请参阅我自己的问题,在那里我描述了我如何设法检测Application Insights的连接问题:
Detecting whether or not (and why) Application Insights can send telemetry data to Azure
答案 2 :(得分:0)
一种选择是使用Fiddler作为代理来查看是否从SDK发送事件。 Placeholder 描述了如何做到这一点。