重要
スクリプト化された API モニターでカスタムのタイミングの詳細を使用するには、Node.js 16.10 ランタイム以降が必要です。
$ harライブラリを使用して、モニターとモニター対象のアプリケーション間の相互作用をレポートするカスタムタイミング機能を備えたモニターを作成できます。これらのカスタムタイミングは、 デフォルトのnode.jsモジュールとインポート可能なnode.jsモジュールの両方を使用します。
カスタムタイミング機能を備えたモニターを作成すると、次のことも可能になります。
- リクエストの完了の時間を計ります。たとえば、
dns
モジュールを使用してDNSルックアップをテストします。 - ウォーターフォールビューの一部として、NewRelicUIでデフォルトのタイミングの詳細を使用してカスタムタイマーを表示します。
SyntheticRequest
イベントを使用して、トレンドとアラートのパターンを追跡します。
カスタムタイマーを設定する
addResource()
またはgetResource()
を使用してタイミングリソースを作成します。これらのタイマーは、 startTimer()
を使用して開始します。同様に、 stopTimer()
を使用してこれらのタイマーを停止します。
タイミングリソースを作成するには:
const testTimer = $har.addResource("Test Timer");testTimer.startTimer();await sleep(100);testTimer.endTimer();
または、 getResource()
を使用してタイマーを作成します。
$har.getResource("Test Timer").startTimer();await sleep(100);$har.getResource("Test Timer").endTimer();
特定のタイミングの詳細を取得する
特定のスクリプトのニーズに応じて、さまざまな属性を使用して、より詳細なタイミングの詳細をUIに取り込むことができます。これらには以下が含まれます:
blocked
dns
connect
ssl
send
wait
receive
たとえば、単純なDNSモニターにタイマーを追加するには、次のようにします。
const { Resolver } = require("dns").promises;const myResolver = new Resolver();
myResolver.setServers(["1.1.1.1"]);
const dnsResource = $har.addResource("DNS Lookup");dnsResource.startTimer();dnsResource.dns().startTimer();
let addresses = await myResolver.resolve4("newrelic.com");dnsResource.dns().endTimer();dnsResource.endTimer();console.log(addresses);