• ログイン

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

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

問題を作成する

Node.jsのエージェントAPIを使用するためのガイド

当社の Node.js エージェント API では、エージェントの標準機能を拡張することができます。このAPIを使って以下のことができます。

  • カスタム・トランザクション・パラメーターの作成
  • カスタムエラーやメトリクスのレポート

また、APIを使用して、 カスタムインスツルメンテーション を行うこともできます。 サポートされているフレームワーク では、エージェントはほとんどのアクティビティを自動的に計測します。カスタム・インスツルメンテーションでは、デフォルトのインスツルメンテーションがないフレームワークにまで監視を拡張することができます。

その他のリソース

要件

Node.jsエージェントAPIを使用するには、Node.jsエージェントの最新リリース を用意してください。さらに、ご覧ください。

トランザクションを使用して、コードの欠落している部分をインストゥルメントする

アプリをインストゥルメントするために、New Relicはコードで各パスをそのトランザクションに分離します。New Relicは、これらのトランザクションの親メソッドの時間をインストゥルメントして総合的なパフォーマンスを測定し、追加詳細として長期間実行されているトランザクションからトランザクショントレースを収集します。

これらのメソッドは、New Relicがコードの特定の部分をインストゥルメントしていない場合に使用します。

以下を行う場合...

操作...

New Relicが自動計測していないメソッドの計測を開始する

新しいトランザクションを作成します。参照 newrelic.startWebTransaction() .

メソッドの処理が完了した後にタイミングを止める

次のいずれかのオプションを使用します:

トランザクションのNew Relicへのレポートを抑止する

以下のいずれかの方法でトランザクションを無視します。

セグメントを使用する時間固有メソッド

トランザクションはすでにNew Relicで表示されているが、そのトランザクション中に呼び出された特定のメソッドに関する十分なデータがない場合、セグメントを作成して、それらの個々のメソッドをより詳細にタイムアウトさせることができます。例えば、複雑なロジックを持つ特に重要なメソッドの時間を計測したい場合などです。

このメソッドは、既存のトランザクション内でメソッドをインストゥルメントする場合に使用します。

以下を行う場合...

操作...

特定のメソッドを時間

参照 newrelic.startSegment() .

タイミングの詳細については、GitHub の instrumentation tutorial を参照してください。

トランザクションのメタデータの強化 [#metadata]

対象となるコードがNew Relicに表示されていても、そのメソッドの詳細が役に立たないことがあります。例えば、以下のようなものです。

これらのメソッドは、New Relic ですでに表示されているトランザクションの計測方法を変更したい場合に使用します。

以下を行う場合...

操作...

トランザクションの名前を変更する

newrelic.setTransactionNamerules.name を参照してください。

トランザクションにメタデータ(顧客のアカウント名やサブスクリプションレベルなど)を追加することができます。

カスタム属性を使用する 。(カスタムアトリビュートコレクションは、Node.jsエージェントでデフォルトで有効になっています。) newrelic.addCustomAttribute()newrelic.addCustomAttributes() を参照してください。

バックグラウンド作業のための新規トランザクションの作成

参照 newrelic.startBackgroundTransaction() .

ウェブトランザクションを新規作成する

使用 newrelic.startWebTransaction().

トランザクションがApdexスコアに影響しないようにする

リクエストの名前付けと無視のルール無視のルールの例 を参照してください。

タイミングやコンピュータのリソースデータなど、その他のパフォーマンスデータの記録

カスタムメトリクスAPIを使用.

関連ログの参照

アプリケーションのエラーとトレースのコンテキスト内でログを直接表示するには、次のAPI呼び出しを使用してログに注釈を付けます。

ログデータと他のテレメトリーデータとの相関関係については、 logs in context のドキュメントをご覧ください。

非同期の作業をインストゥルメントする

サポートされているフレームワーク および サポートされている Node.js バージョン では、New Relic の Node.js エージェントは通常、非同期作業を正しく計測します。しかし、アプリケーションが他のフレームワークを使用している場合や、デフォルトの非同期計測が不正確な場合は、非同期作業を明示的に追跡することができます。

以下を行う場合...

操作...

New Relicがすでにインストゥルメントしている非同期メソッドをトレースする

参照 newrelic.startSegment .

New Relicがインストゥルメントしていない非同期メソッドをトレースする

参照 newrelic.startSegment .

迷子になったトランザクションのトレース

newrelic.startSegment をご覧ください。また、トランザクションを失っているライブラリに対して、独自の カスタムインストルメント を作成することもできます。

失われたトランザクションの状態を追跡する

一般的な問題は、インストルメントされていないライブラリを使用する際にトランザクションの状態が失われることです。詳しくは、GitHub の transaction preservation tutorial をご覧ください。

外部サービスの呼び出しをインストゥルメントする

リクエストネーミング API がロードされると、New Relic の Node.js エージェントは、外部のサービスコールを自動的に識別することができます。また、これらのメソッドを使用して、アプリの他のアプリやデータベースへの接続に関するデータを収集することもできます。

以下を行う場合...

操作...

外部リソース(外部サービス、データベースサーバー、メッセージキューなど)への呼び出しのタイミング

これらのいずれかを適宜使用してください。

New Relic エージェントでインストルメントされた別のアプリにアクティビティを接続する

使用 クロスアプリケーションのトレース.

エラーを収集または無視する

通常、エージェントは自動的にエラーを検出します。しかし、エージェントを使って手動でエラーをマークすることもできます。また、エラーを 無視 としてマークすることもできます。

以下を行う場合...

操作...

エージェントが自動的に報告しないエラーを報告する

参照 newrelic.noticeError() .

アプリケーションからカスタムイベントとメトリクスデータを送信する

New Relic には、任意のカスタムデータを記録するためのさまざまな方法が用意されています。New Relic のデータタイプの説明については、 データ収集 を参照してください。

以下を行う場合...

操作...

イベントに関するデータを送信して、New Relicで分析できるようにする。

カスタムイベントの作成.参照 newrelic.recordCustomEvent() .

イベントにメタデータをタグ付けして、フィルターやファセットをかけることができます。

必要に応じて カスタム属性 を追加します。(カスタムアトリビュートの収集は、Node.jsエージェントではデフォルトで有効になっています。) newrelic.addCustomAttribute()newrelic.addCustomAttributes() を参照してください。

カスタムパフォーマンスデータをレポートする

カスタムメトリックの作成. newrelic.recordMetric()newrelic.incrementMetric() を参照してください。データを見るには、 data explorer を使用します。

ブラウザエージェントの制御

通常、ブラウザエージェントはページに自動的に追加されるか、JavaScript スニペットをコピー/ペーストすることでデプロイされます。これらの推奨方法の詳細については、 New Relic にブラウザアプリを追加する をご覧ください。

また、APMエージェントのAPIコールでブラウザエージェントを制御することもできます。詳細については、 ブラウザモニタリングとNode.jsエージェント を参照してください。

カスタムインストルメントの拡張

newrelic.instrument() は、カスタムインストルメントのための追加の柔軟性を提供します。チュートリアルや例題を含む詳細については、GitHubの shims documentation をご覧ください。

Copyright © 2022 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.