• ログイン今すぐ開始

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

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

問題を作成する

Node.jsエージェントAPI

New Relic は、Node.js アプリケーションに関する有用なメトリクスを提供するために必要な情報を取得するためのツールをいくつか提供しています。これらには次のようなものがあります。

  • ExpressとRestifyのルーターからルート名(使用されている場合)を読み込む
  • APIを使用して、現在のリクエストに名前を付ける。単純な名前や、アクションを持つコントローラのグループを使用する。
  • リクエストの生のURLに対してマッチした正規表現に基づいて、リクエストをリネームまたは無視するようマークすることができる、エージェントの設定に保存されたルールをサポート(APIコールとしても利用可能)

New Relic が追跡する名前の数は、ユーザー・エクスペリエンスが堅牢であるように十分小さくする必要があります。また、アプリケーションの問題点をより簡単に特定できるように、(データに圧倒されることなく)適切な量の情報を提供するのに十分な規模である必要があります。

詳しくは、Github Node.jsエージェントの設定 ドキュメントと、Github Node.jsエージェントのAPIドキュメント をご覧ください。

リクエスト名

Node.js エージェントは、潜在的にパラメーター化されたパス ( /user/:idなど) または正規表現 ( /^/user/([-0-9a-f]+)$/など) とともに HTTP メソッドをキャプチャします。これらの情報は、リクエスト名の一部になります。

低速トランザクション トレースをサポートしていて、構成ファイルでcapture_paramsを有効にしている場合、トランザクション トレースにもリクエストのパラメータとその値が添付されます。Node.js エージェントが使用する要求名に満足できない場合は、API 呼び出しを使用して、よりわかりやすい名前を作成できます。

ヒント

汎用名でリクエストをグループ化する場合は、 /*で十分であり、構成ファイルや API 呼び出しをカスタマイズする必要はありません。

要件

New Relic では、多くのチャートやテーブルでリクエストをグループ化するためにリクエスト名を使用しています。異なるリクエスト名の数が増えると、これらのビジュアライゼーションの価値は下がります。

例えば、作成するリクエスト名にGUID、数値ID、タイムスタンプのような潜在的に動的なデータを含まないようにします。リクエストがトランザクショントレースを生成するほど遅い場合、そのトレースにはオリジナルのURLが含まれます。パラメータキャプチャを有効にした場合、パラメータもトレースに添付されます。

ヒント

50種類以上のトランザクション名を持たないようにしてください。例えば、リクエスト名が数百種類以上ある場合は、ネーミング戦略を見直してください。

メトリクスのグループ化問題を回避する

"" New Relic では、このような問題に対処するためにいくつかの方法を用意しています。最も厳しい方法は、問題のあるアプリケーションを拒否リストに追加することです。

これらのリクエスト名付けツールの使用に注意する主な理由は、アプリケーションにこのような事態が発生するのを防ぐためです。詳細については、 Metric grouping issues をご覧ください。

ガイドライン

設定ルールは、最も具体的なものから最も一般的なものまで定義してください。設定ファイルに記載された最初のルール、または Node.js transaction naming API で追加されたルールが最初に適用されるため、対象を絞る必要があります。より一般的な"fall-through" のルールは、リストの最後の方に追加してください。なぜなら、これらのルールは、Node.js トランザクション ネーミング API を使用して設定または追加された順に評価されるからです。

リクエストネーミングAPIの読み込み

アプリケーションの他の部分がロードされる前に、New Relic モジュールがブートストラップする必要があるため、New Relic モジュールのロードがアプリケーションの最初に行われるようにしてください。

var newrelic = require('newrelic');

これは、リクエストネーミングAPIを返します。このモジュールは一度だけ初期化されるので、アプリケーション内の複数のモジュールから安全に要求することができます。

APIコールのリクエスト

New Relic の Node.js エージェントの Request API コールをまとめました。

カスタムインストルメントAPIコール

これらのAPIコールを使用して、 カスタムインストルメントでインストルメントを拡張することができます.

カスタムメトリクスのAPIコール

これらのAPIコールを使用して、 追加の任意のメトリクスを記録する

カスタムイベントのAPIコール

これらのAPIコールを使用して、追加のイベントを記録します。

トランザクション処理方法

このセクションでは、 newrelic.getTransaction()を通じて取得できるTransactionHandleクラス インスタンスによって提供されるメソッドについて詳しく説明します。

これらのメソッドを使用して、現在のトランザクションと直接対話します。

その他のAPIコール

New Relic の Node.js エージェントには、追加の API コールがあります。

リクエストの命名と無視のルール

New Relic モジュールへの呼び出しをアプリケーションコードに直接記述したくない場合は、パターンベースのルールを使ってリクエストに名前を付けることができます。ルールには、リクエストの名前を変更するためのものと、New Relic のインスツルメンテーションによって無視されるリクエストをマークするためのものの 2 種類があります。

ここでは、New Relic の Node.js エージェントにおけるルールの構造について説明します。

ここでは、設定ファイルに含まれるルールの全例をご紹介します。

ルールのAPIコール

ここでは、New Relic の Node.js エージェントでルールを命名したり無視したりするための API コールを紹介します。

Copyright © 2022 New Relic株式会社。

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