このページでは、Node.js エージェントのインストール方法について説明します。

コントローラの開始ウィザードは、AppDynamics Node.js エージェントを使い始めるための最も簡単な方法を提供します。ウィザードは、入力に基づいてエージェント用に事前構成された require ステートメントを作成します。 

はじめる前に

Node.js エージェントをインストールするには、Node.js アプリケーションのソースコードに require ステートメントを追加する必要があります。このため、実行中の AppDynamics コントローラに加えて、アプリケーションのソースコードへの書き込みアクセス権と、Node.js アプリケーションを再起動する機能(これによってエージェントをインストールします)が必要です。

コントローラの開始ウィザードは、require ステートメントを自動的に生成します。このステートメントには、コントローラの接続設定と、AppDynamics で Node.js アプリケーションをモデル化するためのウィザードに指定した値が入力されます。

Windows でのインストールについては、ご使用の Windows のバージョンに対応したサポート対象環境を参照し、Visual Studio 2015 用の Visual C ++ Redistributable をインストールしてください。

Node.jsエージェントのノードIDについて

ノード名設定を使用して、Node.js アプリケーション インスタンスの ID を構成します。デフォルトでは、エージェントは nodeName に対して構成された値をプレフィックスとして使用し、ダッシュと数字をサフィックスとして追加します。たとえば、次のように設定します。

nodeName=MyNode
CODE

この構成で開始する最初のノードは MyNode-0 という名前になります。ノード名の自動で番号付けされたサフィックスは、複数のワーカープロセスを持つマシンで最も有用です。

複数のワーカープロセスを実行していない場合に、ノード名に自動番号付けが行われないようにするには、noNodeNameSuffixtrue に設定します。次の例では、ノードの名前は MyNode になります。

nodeName=MyNode
noNodeNameSuffix=true
CODE

各マシンでワーカープロセスをインストゥルメント化する場合は、アプリケーション名とノード名の各組み合わせは一意にする必要があります。このため、たとえば 1 番目のサーバーに nodeName=Server1 を、2 番目のサーバーには nodeName=Server2 を構成して、各サーバーには異なるノード名プレフィックスを指定してください。 

マシンエージェントでの Node.js エージェントの使用

インストゥルメント化された Node.js をホストするマシンに Machine Agentをインストールして、マシンエージェントの controller-info.xml ファイルにティア名とノード名を指定する場合、Node.js Agentは登録に失敗します。

この問題を回避するには、

  • まず、Node.js Agentをインストールして、次のエージェントをインストールします。Machine Agent
  • インストゥルメント化された Node.js ノードをホストするマシンにマシンエージェントをインストールする場合、マシンエージェントの controller-info.xml ファイルにアプリケーション、ティア、またはノードの名前を指定しないでください。これを行うとNode.jsエージェントが登録に失敗する可能性があります。

Node.js エージェントのインストール

エージェントをインストールするには、アプリケーションのディレクトリでインストールコマンドを実行してから、アプリケーションにエージェントモジュールを追加するための require コマンドを追加します。

Node.js 0.8.1 ~ 0.8.18 を使用している場合は、インストールコマンドを実行する前に、「Node.js 0.8.1 から 0.8.18 までのユーザーエージェントを設定」を参照してください。

インストール方法:npm

Node.js エージェントのどのバージョンがご使用のコントローラと互換性があるかを判断するには、「エージェントとコントローラの互換性」を参照してください。

最新のエージェントをインストールするには、以下のコマンドを実行します。

npm install appdynamics@next
CODE

インストールしたいNode.jsエージェントの具体的なバージョンがわかっている場合は、それを指定できます。

npm install appdynamics@<x.y.z>
CODE

npm 5 を使用している場合は、npm 構成設定で package-lock=false を設定してロックファイルを無効化する必要があります。

Node.js v6 に付属している npm のバージョンは、エージェントの 4.5.12 以降のバージョンで使用されているインストール後スクリプトを自動実行しません。最新の Node.js バージョンを使用することを推奨します。

Node.js v6 を使用する必要がある場合は、エージェントをインストールする前に npm を更新する必要があります。

npm install -g npm
npm install appdynamics
CODE

Requireステートメントの追加

他の require ステートメントの前に、アプリケーションのソースコードの最初の行として次の require ステートメントを貼り付けます。次に、変数を設定用の値に置き換えます。アカウント名とアクセスキーを検索するには、[Settings Settings Icon] を選択してから、[License] を選択します。

require("appdynamics").profile({
  controllerHostName: '<controller host name>',
  controllerPort: <controller port number>, 
  controllerSslEnabled: false,  // Set to true if controllerPort is SSL
  accountName: '<AppDynamics_account_name>',
  accountAccessKey: '<AppDynamics_account_key>', //required
  applicationName: 'your_app_name',
  tierName: 'choose_a_tier_name', 
  nodeName: 'choose_a_node_name' 
 });
CODE

設定に関する参照情報、および使用可能なその他の設定については、「Node.js Settings Reference」を参照してください。

コードの最初の行として表示される別のモジュールの require ステートメントの最初の行として、require ステートメントを配置できます。

この場合、ポイントオブエントリ ソース ファイルの変更が必要な場合があります。エージェントへのコールを発信するファイルに対して require() を実行するために 1 行変更するだけです。例:require(“<script-that-initializes-the-agent>”。また、複数のバージョンのエージェント初期化スクリプトを使用せずに、profile() コールをパラメータ化して、異なるインスタンスに名前を付けることもできます。

require ステートメントをコードの最初の行として配置できない場合は、ステートメントを他の場所に挿入できますが、インストゥルメント化する必要のあるコアまたはサードパーティ製モジュールの require() の前に置く必要があります。一般に、require(“appdynamics”) ステートメントはコード内でできるだけ早期に実行する必要があります。 

構成のテスト

インストールを確認するには、アプリケーションを再起動して負荷をかけます。構成で指定したビジネスアプリケーションのフローマップに新しいノードが表示されます。

Node.js アプリケーションの停止

デフォルトでは、Node.js アプリケーションを閉じるとアプリケーションが停止します。

他のプロファイリングツールを使用して実行

エージェントは他のプロファイリングツールと互換性がありません(例:--inspect フラグを付けてノードプロセスを実行する)。

Node.js クラスタのインストゥルメント化

アプリケーションでクラスタモジュールが使用されている場合、プライマリおよびワーカープロセスの両方に appdynamics.profile require ステートメントを配置します。

Node.js 0.8.1から0.8.18までのユーザーエージェントを設定します

0.8.1 ~ 0.8.18 のバージョンの Node.js を実行している場合、npm install コマンドを実行する前に、user-agent npm プロパティを設定する必要があります。

構文は次のとおりです。

npm config set user-agent "node/<version> {linux|darwin} {x64|i86}"
CODE

例:

npm config set user-agent “node/v0.8.14 linux x64"
CODE

Node.js に関するインストレーション問題の解決

エージェントでサポートされていないバージョンの Node.js にNode.js Agentをインストールしようとすると、インストールが失敗し次のようなメッセージが表示されます。

npm ERR! notsup Unsupported
npm ERR! notsup Not compatible with your version of node/npm: appdynamics@3.9.3
npm ERR! notsup Required: {"node":">=0.8.0 <=0.10.31"}
npm ERR! notsup Actual:   {"npm":"1.4.28","node":"0.10.32"}
...
CODE

詳細については、「Node.js対応環境」を参照してください。