2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

App Center Analytics廃止に伴い、Application Insightsに変える

Posted at

はじめに

いままでアプリの使用状況を分析する機能をApp Center Analyticsを用いて実現していました。
しかし、廃止されるとの通達が来ており、代替できるサービスがないか探していました。

そこで目をつけたのがAzure MonitorのApplication Insightsです。

Webアプリ専用かなと思っていましたが、非HTTPアプリケーションであっても利用でき、それが今までのApp Center Analyticsでの使用状況を分析するのと、同じような方法(実装)かつ機能としても同等のことが満たせそうでしたので調査しました。

App Center Analytics(変更前)

そもそも今までどうしていたかというと、dotnetで開発しているデスクトップアプリケーションに対して、アプリの任意の操作時に以下のようなイベントを通知して、その結果を収集していました。

Analytics.TrackEvent("イベントの名前", new Dictionary<string, string> {
    { "プロパティ名1", "プロパティ値1" },
    { "プロパティ名2", "プロパティ値2"}
});

参考となる記事

Application Insights(変更後)

デスクトップアプリケーションを対象にするような場合は、WorkerServiceという非HTTPアプリケーション用のSDKがあります。

利用方法もApp Center AnalyticsのSecretの文字列指定がApplication Insightsの接続文字列指定に変わり、それを用いて初期化・起動する流れは変わらず、任意の操作時にTrackEventを呼ぶ部分がAnalyticsからTelemetryClientのTrackEventになるだけで置換できそうです。

収集されたログの確認についてはイベントで、App Center Analytics時と同じようなイベント名に対するカウント一覧を見ることができます。

image.png

ただ、各イベントのパラメータを使って収集された詳細なログはデフォルトでは表示されるビューがなさそうです。
そのため、クエリで取得して再現するかたちになりそうでした。

TrackEventで通知した情報はログのcustomEventsに収集されています。

image.png

そこで、以下のようなクエリでイベントの各引数の値の一覧とそのカウントを表示してみました。

customEvents
| where name == "イベント名"
| extend properties = bag_keys(customDimensions)
| mv-expand properties
| project propertyName = tostring(properties), propertyValue = tostring(customDimensions[tostring(properties)])
| summarize propertyCount = count() by propertyName, propertyValue
| order by propertyName, propertyCount desc

引数1個だけのイメージですが、例えば以下のように表示されます。

// スケジュールを指定した際に何が指定されたか記録する
TelemetryClient.TrackEvent("スケジュール指定", new Dictionary<string, string> {
    { "ScheduleType", "Weekly" }
});

image.png

ログ画面だけだと毎回の分析が大変なので、ダッシュボードに各クエリの画面を集めれば、App Center Analytics時では1個1個イベント詳細を見に行かないと駄目でしたが、Application Insightsであれば一覧で各イベントの詳細を並べる・・・なんてこともできそうです。

おわり

代替できそうって話ばっかり書いていますが、無料で使えていたApp Center Analyticsに対して、Application Insightsはログのデータ量に対する従量課金制となるので、料金が発生します。
それを踏まえても乗り換えれると判断できれば代替手段になりそうですが、まだ自分も実際にアプリの利用者1人あたり一月でどの程度ログ記録するのか見積もれていないため検証段階です。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?