Application Insights向けの独自のライブラリーを使ってPCアプリ向けに遠隔計測を実装しています。そのライブラリーを一般公開しましたので、その紹介をしたいと思います。
Application InsightsをPCアプリへ実装
前回の投稿で、PCアプリの遠隔計測の為にAzure Application Insightsを使っているとお話ししました。
Application Insightsのクライアントアプリ(C#などのマネージドアプリ)の実装では、Application Insightsのnugetライブラリーを使用して実装します。しかし、公開されているライブラリーは、WEBアプリ用であったり、サーバー用であったり、モバイルアプリ向けであったりと、PCアプリ向けに使用するには、少し使いにくいです。
独自実装クラスのライブラリー化
そのため、私は、Application Insights向けの独自実装のクラスを使ってPCアプリに実装してました。この独自実装クラスは、今までの6年くらいの間、完全に非公開でした。
この独自実装のクラスをライブラリーとして公開しようと考えました。そのため、既存の実装を見直し、公開できるレベルに汎用化し、また、依存しているライブラリを新しいものに置き換えるなどしたうえで、nugetライブラリーとして作成しました。
この作業は、1年くらい前に始めていたのですが、途中で作業が止まっていました。今年の8月に作業を再開し、ライブラリーとして最低限の形になりました。
できあがったnugetライブラリーを2021年9月18日に一般公開しました。
nsTelemetry (NishySoftware.Telemetry.ApplicationInsights)
このライブラリーは、.NET Framework / .NET Coreで作成されたデスクトップPCアプリで、テレメトリー情報をAzure Application Insightsへ送信する実装を容易にするためのライブラリーです。
nugetライブラリーとして、一般公開しているため、C#などのマネージドPCアプリのプロジェクトに用意に追加することができます。
nugetライブラリー
nugetには、 NishySoftware.Telemetry.ApplicationInsights として登録し、公開しています。
ソースコード (レポジトリー)
ソースコードはgithub.comにnishy2000/nsTelemetryとして公開しています。github.comでの情報は英語です。そのため、このnsTelemetryライブラリーの日本語サイトを、このサイト内に用意しました。
ライブラリーの使い方
README.mdファイル
ライブラリーの使い方などの説明は、github.com上のREADME.md (英語)ファイルとして公開しています。このサイト内にREADME.mdを日本語化したものを公開(Ver.2.1.0版)しています。
対象とするアプリ
使い方の説明で利用しているサンプルコードは、コンソールPCアプリとなっています。これは、ライブラリーの利用と関係のないコードを減らして、理解を容易にするためです。このライブラリーはWPFアプリなどのGUI PC アプリでも問題なく利用できます。私が実際に利用しているのも、コンソール PC アプリではなく、WPF PC アプリです。
Azure Application InsightsのInstrumentionKey
送信先をを決めるInstrumentionKeyが必要です。このInstrumentionKeyは、Azure Application Insightsリソースのインスタンスごとに異なります。通常、リソースのインスタンスは、PCアプリごとに作成することになります。インスタンスの簡単な作成手順もREADME.md (Ver.2.1.0版)に記載してありますので参照してください。インスタンスの詳細な手順は、マイクロソフト社のサイトをご参照ください。
ApplicationInsights.configファイル
ApplicationInsights.config
ファイルに InstrumentionKey を埋め込んだら、準備は完了です。あとは、アプリから、GUIの操作のタイミングなどの遠隔計測したいタイミングで、TrackEvent()
を呼び出し、イベントを送信すればよいです。
ハンドルされていない未処理例外(UnhandledException
)や非同期処理の未処理例外(UnobservedTaskException
)が発生したときのテレメトリー情報の送信は、既定のApplicationInsightsファイルの設定で自動的に送信するようになっています。
以上、先月公開した、PCアプリからAzure Application Insightsへテレメトリー情報の送信の実装を容易にするnugetライブラリー nsTelemetry (NishySoftware.Telemetry.ApplicationInsights) の紹介でした。
次回以降に、ライブラリーを使う上での設定の詳細などを説明していきたいと思います。
“PCアプリの利用状況・例外発生状況を遠隔計測する #2 ライブラリーの公開” への2件の返信