将 Application Insights 与 Windows 10 IoT Core 结合使用
Using Application Insights with Windows 10 IoT Core
在 Windows 应用程序中使用 Application Inights 有一个很棒的指南:Application Insights for Windows Phone and Store apps。
将 Application Insight 与 Windows 10 IoT Core 一起使用时有什么最佳实践吗?我看到一个有趣的用法,即使用 Application Insigts 作为一种易于使用的事件记录机制来监视无头应用 运行 状态。
这是我的发现。
不要使用:WindowsAppInitializer.InitializeAsync("1234567-1111-1234-1234-1234567890ab");
初始化 Application Insights,因为这会使 IoT 应用程序崩溃。
我改用了这样的东西:
public sealed class StartupTask : IBackgroundTask
{
private BackgroundTaskDeferral _defferal;
internal static TelemetryClient TelemetryClient = new TelemetryClient();
public StartupTask()
{
TelemetryClient.InstrumentationKey = "1234567-1111-1234-1234-1234567890ab";
}
public async void Run(IBackgroundTaskInstance taskInstance)
{
var cancellationTokenSource = new System.Threading.CancellationTokenSource();
taskInstance.Canceled += TaskInstance_Canceled;
_defferal = taskInstance.GetDeferral();
... [insert your code]...
}
}
要使用 Application Insights,我只是在需要时使用 StartupTask.TelemetryClient.TrackEvent("Some event")
或其他一些 App Insight 方法。
在 Windows 应用程序中使用 Application Inights 有一个很棒的指南:Application Insights for Windows Phone and Store apps。
将 Application Insight 与 Windows 10 IoT Core 一起使用时有什么最佳实践吗?我看到一个有趣的用法,即使用 Application Insigts 作为一种易于使用的事件记录机制来监视无头应用 运行 状态。
这是我的发现。
不要使用:WindowsAppInitializer.InitializeAsync("1234567-1111-1234-1234-1234567890ab");
初始化 Application Insights,因为这会使 IoT 应用程序崩溃。
我改用了这样的东西:
public sealed class StartupTask : IBackgroundTask
{
private BackgroundTaskDeferral _defferal;
internal static TelemetryClient TelemetryClient = new TelemetryClient();
public StartupTask()
{
TelemetryClient.InstrumentationKey = "1234567-1111-1234-1234-1234567890ab";
}
public async void Run(IBackgroundTaskInstance taskInstance)
{
var cancellationTokenSource = new System.Threading.CancellationTokenSource();
taskInstance.Canceled += TaskInstance_Canceled;
_defferal = taskInstance.GetDeferral();
... [insert your code]...
}
}
要使用 Application Insights,我只是在需要时使用 StartupTask.TelemetryClient.TrackEvent("Some event")
或其他一些 App Insight 方法。