2017-02-10 7 views
0

私はAzureアプリサービスWebアプリを持っています。 TelemetryClient.TrackMetricを使用して、このWebアプリケーションからカスタムメトリックをトラッキングしています。私は今、アプリケーションの複数のインスタンスを実行するように(私は2つのインスタンスにスケールする)最初に私のアプリケーションをスケールアウトしたい。これを実行すると、各インスタンスはカスタムメトリックの値をApplication Insightsデータストアに送信し始めます。Application Insightsスケールアウト/複数インスタンスを使用したカスタムメトリック:インスタンス間で結合または曖昧さを解消するにはどうすればよいですか?

AzureポータルのMetrics Explorerまたは "Analytics"ビュー内で自分のAIデータを見ると、両方のインスタンスのデータが一緒にバンドルされ、平均化されたメトリックが表示されると思います(データポイント、インスタンス1から2、次に1、次に2など)。これは私にとってあまり役に立ちません。理想的には、2つのインスタンスのそれぞれに1つずつ、2つのデータセットを表示する必要があります。また理想的には、2つのインスタンスからのメトリック値の合計を表すデータセットが必要です。

API /フレームワークでこれを行うための機能はありますか?良いアプローチは何でしょうか?

+0

インスタンスを一意に一貫して識別する方法はありますか? –

答えて

1

この質問の回答によると、Windows Azure Websites - Get Instance Identifierには、もう一方のインスタンスを区別する方法があります。あなたはこのようなあなたのメトリックのカスタムプロパティにその識別子を含めることができ、その情報を使用して

var metric = new MetricTelemetry("MyMetric", 8); 
metric.Properties.Add("InstanceIdentifier", instanceIdentifier); 
telemetry.TrackMetric(metric); 

だけでなく、あなたがダッシュボードにカスタムグラフを作成することができ、またアプリケーションの洞察Analyticsを使用して(https://docs.microsoft.com/en-us/azure/application-insights/app-insights-analytics )インスタンスごとのメトリックを照会したり、結果に基づいて表やグラフなどを作成したりすることができます。例えば

:私の意見では

customMetrics 
| extend instanceIdentifier = tostring(customDimensions.InstanceIdentifier) 
| summarize sum(value), avg(value) by instanceIdentifier, name 
| project instanceIdentifier, name , avg_value, sum_value 
1

、デフォルトでは収集している必要がありますプロパティ「クラウドロールインスタンス」使用可能なカスタムメトリックのセグメントへ/フィルタ処理。インスタンスごとに関連情報が表示されているかどうか試してみてください。

関連する問題