2017-05-10 7 views
0

ユーザー自身に対してだけでなく、ユーザーグループに対してもページビュー、例外などを取得するためにクエリを実行する必要があります。これにより、将来の開発に優先順位を付けるのに役立ちます。アプリケーションの洞察によるUsergroupトラッキング

私の質問は、ユーザーグループを追加することが可能であるかどうか、また、より多くの種類のタグをユーザーに提示して、クエリに使用できるかどうかです。

すべてのカスタムコールを作成することでこれを行うことができますが、デフォルトの方法はありますか?そうでない場合は、これらのパラメータをカスタム呼び出しに追加する最良の方法は何ですか?現時点では、javscript関数appInsights.setAuthenticatedUserContext()を使用してユーザー情報を渡しています。

答えて

0

あなたが送信したすべてのイベントのカスタムプロパティを使用してユーザーグループを追加できます。

https://docs.microsoft.com/en-us/azure/application-insights/app-insights-api-custom-events-metrics

telemetryClient.TrackEvent("the event", 
    new Dictionary<string,string> { {"UserGroup", theUserGroup } }); 

など

あなたが望むように働く、あなたがしてtelelmetry初期化子を使用できることを得れば:

https://docs.microsoft.com/en-us/azure/application-insights/app-insights-api-filtering-sampling#add-properties

をし、作成するための初期化子を作成しますこれらのカスタムプロパティをに設定すると、すべてテレメトリが送信されます上記のように明示的に記述した呼び出しでのみ送信するのではなく、アプリケーションから取得します。

編集追加します。また、カスタムの寸法を使用してこの情報を設定した場合、あなたは今、2017 //で発表された新しい利用ツールでフィルタにそれを使用する構築することができます:あなたのでhttps://docs.microsoft.com/en-us/azure/application-insights/app-insights-usage-segmentation

0

をリクエストだけでなく、ページビュー、例外などをユーザーグループに対して照会したい場合は、間違いなくTelemetryInitializersに行ってください。テレメトリーイニシャライザを使用すると、すべてのテレメトリデータにグローバルプロパティを追加できます。つまり、アプリから送信されたすべてのテレメトリイベントに対して実行されます。

以下の例は、すべてのテレメトリイベントに対してUserGroupまたはその他のプロパティを追加するためにTelemetryInitializerを追加する方法を示しています。この例では、ユーザーのグループIDは、その所有者のリストから取得できると想定しています。しかし、それは役割のように簡単なこともあります。それを微調整し、ユーザーのグループを特定する独自の方法を実装することもできます。ここでは、ユーザのAzure広告クレームのリストから取得されたユーザのテナントに基づいてグループ化しています。これが完了すると、リクエスト、例外、ページビューなどのチャートをクエリするだけでなく、クエリを作成して、それぞれに利用可能なUserGroupプロパティを使用できるようになります。

public class UserGroupTelemetryIntitializer : ITelemetryInitializer 
{ 
    public void Initialize(Microsoft.ApplicationInsights.Channel.ITelemetry telemetry) 
    { 
     var context = HttpContext.Current; 

     if (context == null) 
      return; 

     if (context.User.Identity.IsAuthenticated) 
     { 
      // Retrieve the claim that helps identify the user's group. In this case 
      // we retrieve the Tenant ID from the Azure Active Directory claims 
      var user = (context.User as System.Security.Claims.ClaimsPrincipal); 
      var userGroup = user.Claims.FirstOrDefault(
       x => x.Type == "http://schemas.microsoft.com/identity/claims/tenantid"); 

      // Add the Value of the claim as the UserGroup property for each telemetry 
      if (userGroup != null) 
       telemetry.Context.Properties["UserGroup"] = userGroup.Value; 
     } 
     else 
      telemetry.Context.Properties["UserGroup"] = "None"; 
    } 
} 

ApplicationInsights.configを使用して、あなたのテレメトリ初期化子をロードすることを忘れないでください:

<ApplicationInsights> 
    <TelemetryInitializers> 
    <!-- Fully qualified type name, assembly name: --> 
    <Add Type="MvcWebApp.Telemetry.UserGroupTelemetryIntitializer, MvcWebApp"/> 
    ... 
    </TelemetryInitializers> 
</ApplicationInsights> 

また、あなたはまた、コード代わりを使用して初期化を読み込むことができます。あなたのglobal.asax.csまたはWebApiConfig.csで:

protected void Application_Start() 
{ 
    TelemetryConfiguration.Active.TelemetryInitializers 
     .Add(new UserGroupTelemetryIntitializer()); 
} 

あなたはテレメトリ初期化子hereについての詳細を読むことができます。

関連する問題