このページでは、Java プロキシモードで 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 エージェントのインストール

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

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

インストール方法:npm

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

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

npm install --appd_include_java_proxy=true appdynamics
CODE

Java プロキシを使用して Windows で Node.js エージェントを実行するには、「Windows での Node.js エージェントの実行」を参照してください。

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',
  proxy: true
 });
CODE

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

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

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

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

構成のテスト

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

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

Java プロキシを使用して Node.js エージェントを実行する場合は、インストゥルメント化された Node.js インスタンスを停止するスクリプト/メカニズムを設定し、可能な場合は SIGTERM 信号を使用します。SIGKILL(kill -9)によって、エージェントの Java プロキシのリソースが解放されないようにします。

Node.js エージェントをマルチテナントモードで実行している場合は、Node.js アプリケーションを停止した後に Java プロキシを手動でシャットダウンする必要があります。 

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

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

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

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

Java プロキシで Node.js エージェントを実行する場合、プロキシを手動で起動する必要はありません。Java プロキシとアプリケーションの外部プロセスマネージャ(PM2 など)を使用して Node.js エージェントを実行する場合は、プロキシコンポーネントを手動で起動する必要があります。 

Node.js エージェント間でプロキシを共有」を参照してください。