• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

noticeError (ブラウザエージェントAPI)

構文

newrelic.noticeError(error object $error, [object $customAttributes])

アプリの動作を停止させることなく、ブラウザのエラーを特定します。

要件

カスタム属性の引数には、エージェントのバージョン nr-1118 以上が必要です。

newrelic.noticeError() エージェントのバージョン nr-499 以上が必要です。

NREUM.noticeError() には、エージェントのバージョン nr-411 以上が必要です。

ブラウザの監視が有効であること

JavaScriptのエラー監視が有効であること

説明

このコールは、アプリの処理済みエラーやその他の雑多なエラーを通知または記録するために使用します。これは、エラーをキャッチして処理したものの、アプリの動作を中断させることなくエラーを特定したい場合に便利です。

また、スクリプトの初期化時やインラインイベントハンドラー内で発生したエラーなど、通常であれば詳細が報告されないようなエラーを、このAPIを使って通知することができます。これらのエラーは、New Relic が通常検出する他のエラーとともに、 JavaScript エラー ページ に表示されます。また、 JavaScriptError イベント として記録されます。例えば、以下のようになります。

var err = new Error('Report caught error to New Relic');newrelic.noticeError(err);

注:1つのリクエストで1000を超える JavaScriptError イベントが送信された場合、1000の個別のイベントのみが記録されます。しかし、イベントの総数は内部的に保存され、 EXTRAPOLATE クエリー句 を使用することでアクセス可能です。

パラメータ

パラメーター

説明

エラー

エラーオブジェクト

必須です。ブラウザの JavaScript のエラー ページ のデータを分析する際に使用できる、意味のあるエラーメッセージを提供してください。

$customAttributes オブジェクト

オプションです。カスタム属性を表す名前と値のペアを含むオブジェクトです。

ノンクリティカルエラー

この例では、 newrelic.noticeError APIを使用して、アプリケーションを中断させたくないキャッチしたエラーを報告する方法を紹介します。これは、重要ではないエラーがユーザーのエクスペリエンスに影響を与えないが、それでも開発者に報告したい場合に便利です。サンプルコードでは、不正なJSONの場合、デフォルトの foo オブジェクトを安全に使用しています。

var foo;
try {
foo = JSON.parse('{ "bar"');
} catch (err) {
//Report caught error to New Relic
newrelic.noticeError(err);
foo = {bar: 'default value'};
}
alert(foo.bar);

オプションのエラー付きコールバック

この例では、Node.js で普及し、Browserify の開発で一般的なエラーおよびレスポンスパターンのコールバックを使用した場合に、New Relic にエラーを報告する方法を示します。 alert(body); を独自の適切なメッセージに置き換えることができます。

var xhr = require('xhr');
xhr('http://localhost:8080', function (err, resp, body) {
  //Report unthrown error to New Relic
  if (err) return newrelic.noticeError(err);
  //Handle successful response
  alert(body);
});

Promise-based APIの例

プロミスは、非同期のインタラクションを処理するための単一のパターンを提供し、非同期のエラーを簡単に処理することができます。しかし、これによりエラーを完全に無視することも容易になり、開発者には見えないところでアプリケーションが壊れたままになってしまいます。この例では、これらの非同期エラーをNew Relicに報告し、見過ごされないようにしています。

var rest = require('rest');
rest('/').then(function (res) {
//Handle successful response
alert(res.entity);
}, function (err) {
//Report unthrown error to New Relic
newrelic.noticeError(err);
});

カスタム属性の取得例

try {
// code that throws an error
} catch (err) {
newrelic.noticeError(err, { attribute1: 'value1', attribute2: 2 });
}

ブラウザの制限(Apple SafariとMicrosoft Internet Explorerのみ)

エラーがスローされない場合は、スタックトレースはありません。 newrelic.noticeError APIがすべてのブラウザタイプでスタックトレースを報告するようにしたい場合は、APIにエラーを渡す前に手動でエラーをスローしてからキャッチする必要があります。

try {
throw errorObject
} catch (err) {
newrelic.noticeError(err)
}
Copyright © 2022 New Relic株式会社。