• ログイン今すぐ開始

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

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

問題を作成する

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

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

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

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

その他のリソース

要件

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

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

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

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

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

これを行う...

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

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

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

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

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

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

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

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

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

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

これを行う...

特定の方法の時間を計る

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

タイミングの詳細については、 GitHub のインストルメンテーション チュートリアルを参照してください。

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

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

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

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

これを行う...

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

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

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

カスタム属性を使用します。(カスタム属性の収集は、Node.js エージェントでデフォルトで有効になっています。)newrelic.addCustomAttribute()newrelic.addCustomAttributes()を参照してください。

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

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

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

newrelic.startWebTransaction()を使用します。

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

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

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

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

関連ログを見る

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

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

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

機器の非同期作業

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

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

これを行う...

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

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

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

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

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

newrelic.startSegmentを参照してください。また、トランザクションが失われているライブラリ用に独自のカスタム インストルメンテーションを作成することもできます。

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

一般的な問題は、インストルメント化されていないライブラリを使用しているときにトランザクション状態が失われることです。詳細については、 GitHub のトランザクション保存チュートリアルを参照してください。

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

リクエストネーミング 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()を参照してください。データを表示するには、metrics と eventsを使用します。

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

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

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

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

newrelic.instrument()は、カスタム インストルメンテーションにさらなる柔軟性を提供します。チュートリアルや例などの詳細については、GitHub のshim ドキュメントを参照してください。

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

Copyright © 2023 New Relic Inc.

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