現在、WebJobが例外をスローすると、Azureで例外がキャッチされ、JobHost
によって処理され、Webのブレードから利用可能なダッシュボードに例外が記録されますwebjobがホストされているアプリケーション。エラー処理を傍受したり、Application Insightsインスタンスをプラグインできるようにオーバーライドする方法はありますか?Azure WebJobの失敗/例外を傍受する方法
答えて
紺碧のドキュメントhereをご覧ください。あなたは(上記のリンクから取られた)AppDomain
取り扱いの未知の例外にハンドラをアタッチすることができます
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
// ...
private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
ExceptionTelemetry excTelemetry = new ExceptionTelemetry((Exception)e.ExceptionObject);
excTelemetry.SeverityLevel = SeverityLevel.Critical;
excTelemetry.HandledAt = ExceptionHandledAt.Unhandled;
telemetryClient.TrackException(excTelemetry);
telemetryClient.Flush();
}
実際、私はRaygunのドキュメントで似たようなものを見つけました。このアプローチの問題は、可能なすべてのスロー・ステートメントに対して非常に面倒な例外処理を構築しない限り、ジョブ中に構築したメトリックまたは追加プロパティーが記録されることを保証できないということです。私はそのような種類のロジックに行くならば、私はちょうど直接仕事方法を測定するかもしれません –
hmmm ...私は現在、グローバルプロパティに格納することができるキー/値のペアを格納するいくつかの辞書を考えていますAIに渡す情報を格納するために使用することができます。 –
@AlexMarshallあなたのwebjobにDIコンテナはありますか? – Thomas
あなたはAzure WebJobs SDK Extensionsを使用することができます。ErrorTrigger
があり、あなたが処理されない例外をインターセプトするために使用できるように:
public class UnhandledErrorTrigger : IDisposable
{
private readonly TelemetryClient _telemetryClient;
public UnhandledErrorTrigger(TelemetryClient telemetryClient)
{
_telemetryClient = telemetryClient;
}
public void UnHandledException([ErrorTrigger("0:01:00", 1)] TraceFilter filter, TextWriter log)
{
foreach (var traceEvent in filter.Events)
{
_telemetryClient.TrackException(traceEvent.Exception);
}
// log the last detailed errors to the Dashboard
log.WriteLine(filter.GetDetailedMessage(1));
}
public void Dispose()
{
_telemetryClient.Flush();
}
}
private static void Main()
{
var config = new JobHostConfiguration();
config.UseCore();
...
new JobHost(config).RunAndBlock();
}
だから、あなたがしている場合:スタートアップコードでconfig.UseCore()
を呼び出し、エラーの拡張子を登録するには
IoCコンテナを使用すると、簡単にTelemetryClientを注入できます。
- 1. 失敗例外
- 2. Rubyのすべての例外を傍受する
- 3. フラスコ内のすべての例外を傍受するには?
- 4. Azure WebJobのベスト・アプローチ
- 5. Azureのは、私がWebJobにVisual Studioを使用提案方法を展開WebJob
- 6. Grailsが例外で失敗する
- 7. JQueryでURLを傍受する方法
- 8. Azure Webjob - ローカルファイルシステムへのアクセス
- 9. azure WebjobのIdentity 2.0/Owin/ApplicationUser
- 10. サードパーティアプリケーションのWIN32例外を傍受することは可能ですか?
- 11. MongoDB Map/Reduce raise例外:失敗:dbアサーションエラー
- 12. ウィンドウを傍受するウィンドウを傍受する
- 13. Azureブロブストレージのアップロードに失敗する
- 14. Azureクイックスタートテンプレートのデプロイメントに失敗する
- 15. 単一のFluentValidationルールの失敗で例外をスローする
- 16. 例外を指定してコードメトリックの計算に失敗する
- 17. Azure SchedulerがWebAppで公開されたOnDemand WebJobのトリガに失敗しました
- 18. Azureのサブスクリプションとwebjobの質問
- 19. DjangoでのAzure WebJobの環境変数
- 20. 傍受
- 21. 失敗した場合に例外をキャストしてスローする
- 22. Castle Windsor ResolveAllが型引数の例外で失敗する
- 23. Python HTTPServerの例外により失敗する
- 24. 仮想キーボードのキーストロークを傍受する方法は?
- 25. コントロールレンダリングを傍受する最良の方法
- 26. WCFクライアントからのヘッダーを傍受する方法...?
- 27. キーガードを傍受する方法(ソフトウェアメニュー)「設定」メニューオプションのクリックなど?
- 28. 傍受し、サーバーとユーザーの入力を承認する方法
- 29. SmartGWT RPCManagerのエラー処理を傍受する方法
- 30. iPhoneの回転を傍受する方法
チェックこの:あなたがこの記事を見ることができwebjobのジョブ活性化因子を設定するには? http://stackoverflow.com/questions/31798640/monitoring-azure-webjobs – Igorek