2017-07-10 5 views
1

私が作成したAzure WebAppでアプリケーションの洞察を有効にしました。私のWebAppはクォータで動作するサードパーティのAPIを呼び出しています。私は毎月100k通話しか許可されていません。Azure Application Insightsを使用してサードパーティAPIを呼び出す際の警告を作成する

これらのAPI呼び出しを追跡する必要があるため、コール数が50%に達したときにアラートを作成し、別のアラートを75%にすることができます。

私は、呼び出しが行われ、AppInsightsダッシュボードのイベントが増加するたびにTrackEventを使用しています。しかし、私は、特定の数の呼び出しが行われたときにアラートを作成するように見えることはできません。私は '出来事'ドロップダウンのリストからそれを見ることができません。

また、私に必要なもう1つの要件は、通話回数が10分を超えたときにアラートを作成することです。

TrackEventは、これらの要件に適した方法ですか?

私はこのような何か...

var telemetryEventClient = new Microsoft.ApplicationInsights.TelemetryClient(new Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration() { InstrumentationKey = "Instrumentation Key" }); 
telemetryEventClient.Context.Operation.Name = "MyAPIProvider"; 

var properties = new Dictionary<string, string> 
{ 
    { "Source", "WebAppToAPI" } 
}; 

var metrics = new Dictionary<string, double> 
{ 
    { "CallingAPIMetric", 1 } 
}; 

telemetryEventClient.TrackEvent("CallingAPI", properties, metrics); 

をしましたが、私は、アラートを設定を見て、50000のしきい値を置いたときに(テストのために、私はちょうど5を入れて)、私のようにそれに到達することはありませんイベントカウントは常に1です。私はこれに正しい方法で近づいていますか?

答えて

2

あなたが定義しようとしているアラートは、あなたが発しているイベントの量ではなく、あなたがカスタムイベントで指定した値を常に見ます。
自動フローを作成してイベントを照会し、照会結果があるしきい値を超えるたびに電子メールを送信できます。 フローとMicrosoft Logic Appsの両方で動作するApplication Insights Connectorは、そのために作成されたもので、任意のドキュメントタイプ(イベント、メトリック、またはトレース)のクエリ結果で定義できます。 独自のフローを作成する方法に関するステップバイステップのドキュメントはhereです。クエリのよう

- あなたはこのような単純な分析クエリーを必要とする:

customEvents 
| where timestamp > ago(1h) // or any time range you need 
| where name == "CallingAPI" 
| count 
+0

あなたはフロー/ロジックAppsを使用することができますどのように本当に面白いです。私は間違いなく別のプロジェクトの後でそれを使用します。しかし...会社のセキュリティ担当者とチャットをしていて、APIキーを使用したり、別のアプリをリンクしているものは合理的な解決策ではないと言いました。他のオプションはありますか?私たちは「リソース枯渇」の問題を解決しようとしています。そのため、1時間後に何回CallingAPIが発生したのかを数えたいのです。しきい値を50に設定し、1時間に51回の通話があった場合は、電子メールアラートが送信されます。値を渡さずにイベントの量を取得するためにカスタムイベントをどのように行う必要がありますか? – james

関連する問題