重要
スクリプト化された 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に取り込むことができます。これらには以下が含まれます:
- ブロック
- dns
- connect
- ssl
- センド
- 待つ
- 受信
たとえば、単純な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);