構文
NewRelic.Api.Agent.NewRelic.SetErrorGroupCallback(Func<IReadOnlyDictionary<string,object>, string> errorGroupCallback);
属性データの IReadOnlyDictionary<string,object>
を受け取り、エラー グループ名を返すコールバック メソッドを提供します。
要件
このAPI呼び出しは、次のものと互換性があります。
- エージェント バージョン >= 10.9.0
- すべてのアプリタイプ
説明
エージェントがエラー イベントとトレースのエラー グループ名を決定するために使用するコールバック メソッドを設定します。この名前は、エラー受信ボックスでエラーを論理グループにグループ化するために使用されます。
コールバック メソッドは、型 IReadOnlyDictionary<string,object>
の 1 つの引数を受け入れ、文字列 (エラー グループ名) を返す必要があります。 IReadOnlyDictionary
は、カスタム属性を含む、各エラー イベントに関連付けられた 属性データ のコレクションです。
各エラーで使用できる属性の正確なリストは、次の条件によって異なります。
- エラーを生成したアプリケーション コード
- エージェント構成設定
- カスタム属性が追加されたかどうか
ただし、次の属性は常に存在する必要があります。
error.class
error.message
stack_trace
transactionName
request.uri
error.expected
エラーを論理エラー グループに割り当てることができない場合、エラー グループ名に空の文字列が返されることがあります。
パラメーター
パラメータ | 説明 |
---|---|
'Func<IReadOnlyDictionary<string,object>,string>' | 属性データに基づいてエラー グループ名を決定するためのコールバック。 |
例
エラー クラス名でエラーをグループ化します。
Func<IReadOnlyDictionary<string, object>, string> errorGroupCallback = (attributes) => { string errorGroupName = string.Empty; if (attributes.TryGetValue("error.class", out var errorClass)) { if (errorClass.ToString() == "System.ArgumentOutOfRangeException" || errorClass.ToString() == "System.ArgumentNullException") { errorGroupName = "ArgumentErrors"; } else { errorGroupName = "OtherErrors"; } } return errorGroupName;};
NewRelic.Api.Agent.NewRelic.SetErrorGroupCallback(errorGroupCallback);
エラーをトランザクション名でグループ化します。
Func<IReadOnlyDictionary<string, object>, string> errorGroupCallback = (attributes) => { string errorGroupName = string.Empty; if (attributes.TryGetValue("transactionName", out var transactionName)) { if (transactionName.ToString().IndexOf("WebTransaction/MVC/Home") != -1) { errorGroupName = "HomeControllerErrors"; } else { errorGroupName = "OtherControllerErrors"; } } return errorGroupName;};
NewRelic.Api.Agent.NewRelic.SetErrorGroupCallback(errorGroupCallback);