エラーデータをNew Relicに送信して、独自のコードで処理していることを伝えるには、RubyエージェントのAPI NewRelic::Agent.notice_error
呼び出しをエラー処理システム内で使用します。
エラーについてNew Relic Rubyエージェントに伝える
このAPIコールは、例外と任意のオプションハッシュを取ります。次のフォーマットを使用してください:
NewRelic::Agent.notice_error(exception, options = { }) ⇒ Object
この関数は、所与のエラーを記録して、仮に定義した場合は設定ベースのエラー無視とグローバルな#ignore_error_filter
手法を含む、通常のエラーフィルタリングプロセスに渡します。
exception
は、記録される例外もしくはエラーメッセージになります。必要であれば、options = { }
を含めることもできます。以下のパラメーターは特別な扱いを受けます。また、他の用意するその他のパラメーターもカスタムパラメーターとして扱われます。
options = { } | コメントコメント |
---|---|
| エラートレースのみを記録。これは、エラー率またはApdexステータスに作用しません。UIで予期されるエラーの詳細に関しては、予期されるエラーを表示を参照してください。 Rubyエージェントのバージョン4.3.xで非推奨となった |
| カスタムパラメーター |
| リクエストパスから、リクエストパラメーターまたはクエリ文字列を差し引いたもの。 通常は必要ありません。トランザクション外で |
| トランザクションと関連したメトリック名。 通常は必要ありません。トランザクション外で |
| 古いRubyエージェントのバージョンでは、 |
エラー フィンガープリント: 検出された各エラーにエラー グループを動的に適用します。
エラー発生が適切にグループ化されていませんか?コールバック関数を使用して、独自のエラーフィンガープリントを設定します。
Proc
ベースのコールバックをエージェントに提供して、通知された各エラーに目的のエラーグループを動的に適用できます。RubyエージェントAPI NewRelic::Agent.set_error_group_callback
を使用して、エージェントにコールバックを提供します。
このAPI呼び出しは、コールバックメソッド(Proc
型である必要があります)を唯一の引数として扱います。引数は必須です。API呼び出しは、New Relic Rubyエージェントの起動ごとに1回のみ行う必要があるため、Railsの初期化子などに呼び出しを配置できます。APIへの後続の呼び出しが行われると、コールバックメソッドは指定された最新のものに更新されます。以下は、コールバックが定義され、NewRelic::Agent.set_error_group_callback
APIメソッドに渡される例です。
proc = proc { |hash| "Access" if hash[:'http.statusCode'] == 401 }NewRelic::Agent.set_error_group_callback(proc)
示されている例では、ハッシュを唯一の引数として受け入れ、ハッシュに値401のHTTPステータスコードキーが含まれる場合、目的のエラーグループ名に対して文字列の「Access」を返すコールバックprocが作成されます。
コールバックprocは、正確に1つの入力引数(ハッシュ)を受け取ることが想定されます。ハッシュには以下が含まれます。
鍵 | 価値 |
---|---|
| Rubyエラークラスのインスタンス。 |
| 現在のトランザクションのカスタムアトリビュート |
| 利用可能な場合、現在のリクエストURI |
| 利用可能な場合、HTTPステータスコード(200、404など) |
| 利用可能な場合、HTTPメソッド(GET、PUTなど) |
| 予期されていたエラー(true)かどうか(false) |
| オプションのハッシュが渡されました |
コールバックprocは、目的のエラーグループ名を決定できる場合、その名前を表す文字列を返すことが想定されます。procがnil
または空の文字列(''
)を返すと、エラーはサーバー側のグループ化ロジックを受け取ります。
ユーザー追跡: ユーザー ID を各トランザクションおよびエラーに関連付ける
これで、エラーグループの影響を受けるユーザー数を確認できます。
New Relic RubyエージェントがユーザーIDを認識している場合、トランザクションとエラーをユーザーIDに関連付けることができます。RubyエージェントAPI NewRelic::Agent.set_user_id
を使用して、エージェントにユーザーIDを指定します。
このAPI呼び出しには、エンドユーザーの一意の識別子を表す文字列の単一の引数が必要です。この文字列は、UUID、データベースIDなどです。API呼び出しは、トランザクションごとに少なくとも1回実行し、トランザクションを関連付けるユーザーIDをNew Relic Rubyエージェントに通知する必要があります。次に、トランザクションの有効期間中にエージェントがエラーに気付く場合、エラーにはユーザーID値を保持するenduser.id
エージェント属性が含まれます。
新規ユーザーIDがスコープに入るたびに、API呼び出しを想定しているため、理想的には、ユーザーセッションの作成を認識するミドルウェア経由で呼び出されます。New Relic Rubyエージェントは、ユーザーIDを認識すると、現在のトランザクションと、現在のトランザクションの有効期間中に通知されたエラーにenduser.id
エージェント属性を指定します。