Node.js プローブ エージェントのインストールおよび実行

管理者は、以下のいずれかの方法を使用して、Node.js プローブ エージェントをインストールおよび実行できます。
apmdevops106
管理者は、以下の
いずれか
の方法を使用して、Node.js プローブ エージェントをインストールおよび実行できます。
Node.js プローブ エージェントをグローバルにインストール(コード変更なし)
Node.js プローブ エージェントを、デフォルト値を使用してコード変更せずにグローバルにインストールできます。 この方法では、Node.js プローブ エージェントがすべての Node.js プロセスで使用可能になります。 複数のプロセスの場合、各プロセスの名前を、環境変数としてまたは config.json ファイルに個別に指定できます。
NPM を使用して、Node.js プローブ エージェントをグローバルにインストールし、アプリケーションを実行します。
以下の手順に従います。
  1. ユーザに以下の権限があることを確認します。
    UNIX: root - root ユーザは、ca-apm-probe/log ディレクトリへの書き込み権限を root 以外のユーザに付与します。
    Windows: 管理者
  2. 以下のコマンドを実行して、プローブ エージェントをインストールします。
    $ npm install --global ca-apm-probe
  3. (オプション)実行コンテキストに基づいて、インフラストラクチャ エージェントのホスト、ポート、プローブ名をデフォルト以外の値に設定します。 オペレーティング システム コマンドを使用して、以下の環境変数を設定します。ここで、Probe Name は Node.js エージェントの名前です。 例:
    export INFRASTRUCTURE_AGENT_HOST=<Infrastructure-agent-host> export INFRASTRUCTURE_AGENT_PORT=<Infrastructure-agent-port> export CA_APM_PROBENAME=<probe-name>
    たとえば、
    CA_APM_PROBENAME
    環境変数を設定します。
    export CA_APM_PROBENAME=mynodeapp
    : Node.js インフラストラクチャ エージェントのデフォルト値は以下のとおりです。
    • ホスト: localhost
    • ポート: 5005
    • プローブ名: 通常はアプリケーション名です。 プローブ名を決定する方法の詳細については、「Node.js 用の APM の設定」を参照してください。
  4. Node.js アプリケーションを実行します。
    $ ca-apm-run <startup_script>
    アプリケーションは動的にインスツルメントされます。
    require ステートメントを使用してソース コードを変更することもできます。
Node.js プローブ エージェントをアプリケーションごとにインストールして実行(コード変更なし)
Node.js プローブ エージェントを各アプリケーションに対してローカルにインストールできます。 この方法では、各アプリケーションを選択的にインスツルメントし、監視できます。
以下の手順に従います。
  1. コマンド プロンプトを開き、以下のコマンドを使用します。
    $ cd <your_application_root> $ npm install --save ca-apm-probe
    パッケージは、アプリケーションのルート ディレクトリにインストールされます。
  2. (オプション)実行コンテキストに基づいて、Node.js インフラストラクチャ エージェントのホスト、ポート、プローブ名をデフォルト以外の値に設定します。 オペレーティング システム コマンドを使用して、以下の環境変数を設定します。ここで、Probe Name は Node.js エージェントの名前です。 例:
    export INFRASTRUCTURE_AGENT_HOST=<Infrastructure-agent-host> export INFRASTRUCTURE_AGENT_PORT=<Infrastructure-agent-port> export CA_APM_PROBENAME=<probe-name>
    たとえば、
    CA_APM_PROBENAME
    環境変数を設定します。
    export CA_APM_PROBENAME=mynodeapp
    Node.js エージェントは、Node.js アプリケーションを開始するたびに動的に実行されます。
    : Node.js インフラストラクチャ エージェントのデフォルト値は以下のとおりです。
    • ホスト: localhost
    • ポート: 5005
    • プローブ名: 通常はアプリケーション名です。 プローブ名を決定する方法の詳細については、「Node.js 用の APM の設定」を参照してください。
  3. Node.js アプリケーションを開始します。
    $ cd <your_application_root>
    $ ./node_modules/ca-apm-probe/bin/ca-apm-run.js <startup_script>
Node.js プローブ エージェントをアプリケーションの依存関係としてインストールして手動で設定(コード変更あり)
Node.js プローブ エージェントをインストールして手動で設定できます。 プローブ エージェントをアプリケーションの依存項目としてローカルにインストールおよび実行できます。 必要に応じて、監視用に Node.js アプリケーションを手動で設定することができます。
npm
コマンドを使用して Node.js プローブ エージェントをインストールし、アプリケーションの依存項目として追加します。 これにより、システムに対する変更を回避し、アプリケーションに対するローカルのすべての依存関係を保持します。
以下の手順に従います。
  1. コマンド プロンプトを開き、以下のコマンドを使用して、Node.js プローブ エージェントをインストールします。
    $ cd <your_application_root> $ npm install --save ca-apm-probe
    パッケージは、アプリケーションのルート ディレクトリにインストールされます。
  2. (オプション)プローブ名をデフォルト以外の値に設定します。 オペレーティング システム コマンドを使用して、以下の環境変数を設定します。 例:
    export CA_APM_PROBENAME=<probe-name>
    たとえば、
    CA_APM_PROBENAME
    環境変数を設定します。
    export CA_APM_PROBENAME=mynodeapp
  3. 以下の最初の行をアプリケーションのメイン エントリ ポイント スクリプトに追加します(たとえば、server または
    server.js
    など)。 必要に応じて、対応する引数を指定できます。 たとえば、Node.js インフラストラクチャ エージェントが別のホストまたはポート上で実行されている場合は、対応する引数を指定できます。 ファイルを保存して閉じます。
    var probe = require('ca-apm-probe').start(<Infrastructure-agent-host>, <Infrastructure-agent-port>, <probe-name>);
    各項目の説明:
    <Infrastructure-agent-host> は、インフラストラクチャ エージェントのホスト アドレスです。 通常、このアドレスは localhost です。
    <Infrastructure-agent-port> は、インフラストラクチャ エージェントのポートです。
    <probe-name> は、メトリックがレポートされるプローブの名前です。
    ca-apm-probe require ステートメントを、コード内の
    最初
    の require ステートメントとして配置します。 例:
    var probe = require('ca-apm-probe')({
    ……
    var express = require('express');
    var mongoose = require('mongoose');
  4. 以下のコマンドを使用して、アプリケーションを実行します。
    $ node <startup_script>
Node.js プローブ エージェントをオフラインの実稼働システムにインストール(コード変更なし)
通常は、インターネット上の NPM 中央リポジトリから
npm
コマンドを使用して、Node.js プローブ エージェントをインストールします。 ただし、一部の実稼働ホストでは、インターネットへのアクセスが利用できず、npm が必要な依存関係モジュールをロードできません。 そのような場合は、
npmbox
ユーティリティを使用することをお勧めします。
以下の手順に従います。
  1. システムに以下の項目が含まれていることを確認します。
    • NPM がインストールされ、インターネットにアクセス可能なステージング システム(複数可)
    • NPM がインストールされたオフラインの実稼働ホスト(複数可)
  2. ステージングおよびオフラインの両方のホストに npmbox モジュールをインストールします。
    • ステージング ホストで、次のコマンドを使用します:
      $ npm install –g npmbox
    • オフライン システムで、次のリンクの指示に従います:
      https://github.com/arei/npmbox/blob/master/README.md#user-content-using-npmunbox-without-npmbox-being-installed
  3. ca-apm-probe.npmbox ファイルを作成します。
    1. ステージング ホストで、次のコマンドを使用します:
      $ npmbox ca-apm-probe
      ログには、クエリとダウンロードの進捗状況が表示されます。 以下のログが表示された場合、ca-apm-probe.npmbox ファイルが現在のディレクトリで使用可能です。
      Packing <working_dir>/ca-apm-probe.npmbox...
      Done.
    2. NFS、ポータブル メディア、電子メール、または他の手段を使用して、ca-apm-probe.npmbox ファイルをオフライン ホストに移します。
  4. npmunbox
    コマンドを使用して ca-apm-probe をインストールします。 このコマンドは、npm install コマンドを実行したディレクトリで実行します(ローカルにインストールされている場合)。
    -g
    オプションを使用して ca-apm-probe をグローバルにインストールすることもできます。
    $ npmunbox -g ca-apm-probe.npmbox
    A log shows the installation progress, for example:
    Unboxing ca-apm-probe.npmbox...
    Unpacking ca-apm-probe...
    Installing ca-apm-probe...
Node.js プローブ エージェント名の検出
Node.js プローブ エージェント名は、メトリック ブラウザ ツリーでノード パスを決定します。 例:
(SuperDomain|<Host>|nodejs-probes|Agent(<ProbeName>)
Node.js プローブ エージェント名の下で、エージェントは、指定された Node.js アプリケーションに対するパフォーマンス メトリックをレポートします。 Node.js アプリケーションの開始時に、プローブ名の検出ロジックが実行されます。 メトリックは、個別のプローブ エージェント名を指定しない限り、すべての Node.js プロセスにわたって集約されます。 各プロセスがレポートするメトリックを分割する場合は、個別のプローブ エージェント名を設定します。 以下のいずれかの方法を使用します。
  • インストール時に、環境変数を渡すか、require ステートメントを挿入する
  • config.json ファイルを編集する
    複数の個別の名前が
    nodejs-probes
    ノードの下のメトリック ブラウザ ツリーに表示されます。たとえば以下のようになります。
    (SuperDomain|<Host>|nodejs-probes|Agent(<ProbeName_One>)
    (SuperDomain|<Host>|nodejs-probes|Agent(<ProbeName_Two>)
    (SuperDomain|<Host>|nodejs-probes|Agent(<ProbeName_Three>)
Node.js プローブ エージェント名の検出は、次の順序で実行されます。 有効な値は NULL でも空でもありません。 名前の検出で現在の実行手順に対して有効な値が見つかると、Node.js プローブ エージェント名が設定されます。 名前の検出は、残りの手順をスキップします。
  1. インストール時に指定された
    CA_APM_PROBENAME
    環境変数
  2. config.json ファイルに指定されている
    probeNameEnvKey
    環境キー
  3. アプリケーションへの require ステートメントの追加によるプローブのロード時のアプリケーション コード
  4. config.json ファイルに指定されている
    probeName
    プロパティ
  5. Node.js アプリケーション(ルート ディレクトリ)の package.json に指定されている
    name
    プロパティ
  6. ルート レベルの起動スクリプト名(index.js でない限り)
  7. アプリケーションのルート ディレクトリ名(index.js が存在する場所)
  8. ハードコードされた
    NodeApplication
    の値