• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

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

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

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

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

その他のリソース

要件

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

コードの欠落しているセクションをトランザクションで計測する

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

New Relicがコードの特定の部分をまったくインストルメントしていない場合は、次のメソッドを使用します。

あなたがしたい場合は...

これを行う...

メソッドのタイミングを開始するNewRelicが自動的にインストルメント化しない

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

作業が完了したら、メソッドのタイミングを停止します

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

トランザクションがNewRelicに報告されないようにする

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

カスタム Web サイトの作成の詳細については、 GitHub の startWebTransaction の例を参照してください。

セグメントを使用した時間固有の方法

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

特定のメソッドの時間を計るには、 newrelic.startSegmentを参照してください。

タイミングの詳細については、 GitHub のカスタムインストゥルメンテーションの例を参照してください。

トランザクションのメタデータを強化する

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

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

あなたがしたい場合は...

これを行う...

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

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

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

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

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

GitHub のnewrelic.startBackgroundTransaction()サンプルアプリケーションを参照してください。

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

newrelic.startWebTransaction()使用してください。

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

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

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

recordMetricまたはincrementMetricを使用してください。

関連ログを見る

エージェントはデフォルトで、アプリケーションのエラーとトレースのコンテキスト内でログを直接送信します。ログ データを他のテレメトリ データおよびサポートされているフレームワークと関連付ける方法の詳細については、コンテキスト ドキュメントのログを参照してください。

New Relic によって計測されていないロギング メカニズムを使用している場合は、代わりにこの API 呼び出しを直接使用して、ログを記録し、コンテキストで転送することができます。

古い代替方法は、エージェントに転送を任せる代わりに、独自のログ フォワーダーを使用することです。この場合、ログを転送する前に、適切なコンテキストでログに注釈を付ける必要があります。次の API 呼び出しを使用します。

機器の非同期作業

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

あなたがしたい場合は...

これを行う...

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

newrelic.startSegment参照してください。

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

newrelic.startSegment参照してください。

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

newrelic.startSegment参照してください。 あなたの場所を失っているライブラリに対して独自のカスタムインストゥルメンテーションを作成することもできます。

外部サービスへの機器呼び出し

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

あなたがしたい場合は...

これを行う...

外部リソース(外部サービス、データベースサーバー、メッセージキューなど)への呼び出しの時間を計測します

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

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

ディストリビューティッド(分散)トレーシングを使用します。 ディストリビューティッド(分散)トレーシング ヘッダーを手動で挿入して受け入れる方法の詳細については、GitHub のサンプル アプリケーションを参照してください。

リクエストが分散システムを通過する際の経路を見ることができます。

ディストリビューティッド(分散)トレーシング

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

通常、エージェントはエラーを自動的に検出します。 ただし、エージェントを使用して手動でエラーをマークすることは可能です。 エラーを無視としてマークすることもできます。 API メソッドを使用してエラーをログに記録、グループ化、関連付ける方法の詳細については、GitHub のサンプル アプリケーションを使用してください。

あなたがしたい場合は...

これを行う...

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

newrelic.noticeError()参照してください。

定義したカスタム フィルター関数を使用して、名前でエラーをグループ化します

newrelic.setErrorGroupCallback()参照してください。

エラーをユーザーに関連付ける

newrelic.setUserID()参照してください。

アプリからカスタムイベントと指標データを送信する

New Relic には、任意のカスタム データを記録するさまざまな方法が含まれています。 New Relic のデータ型の説明については、 「データ収集」を参照してください。 以下の API メソッドの使用に関する詳細については、GitHub のサンプル アプリケーションを使用してください。

あなたがしたい場合は...

これを行う...

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

カスタムイベントを作成します。 newrelic.recordCustomEvent()参照してください。

イベントにメタデータのタグを付けて、イベントをフィルタリングしてファセット化します

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

カスタムパフォーマンスデータを報告する

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

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

通常、 エージェントはページに自動的に追加されるか、JavaScript スニペットをコピー/貼り付けすることによってデプロイされます。 これらの推奨方法の詳細については、 「New Relic へのブラウザー アプリの追加」を参照してください。

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

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

カスタムインストゥルメンテーションAPI使用の詳細については、 「Node.js カスタムインストゥルメンテーション」を参照してください。

ES モジュール アプリケーションにカスタムインストゥルメンテーションを追加するには、 ES モジュールのドキュメントまたは GitHub のサンプル アプリケーションを参照してください。

Copyright © 2024 New Relic株式会社。

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