配置 Node.js 代理程序

您必须先向 Node.js 应用程序添加数据收集器,并将其重新启动,代理程序才能开始监视应用程序。

开始之前

在同一版本内重新配置代理程序设置之前,使用以下步骤清除先前配置已创建的数据收集器文件:
  1. 转至 install_dir/lx8266/nj/bin 目录。
  2. 运行 ./uninstall.sh 命令,以移除现有的数据收集器文件。

关于此任务

Node.js 代理程序是单实例代理程序。它为每个受监视 Node.js 应用程序注册子节点。子节点的结构如下:

NJ:hostname_port:NJA
提示: 如果一个 Node.js 应用程序侦听多个端口号,那么会使用最小端口号。
您必须先向 Node.js 应用程序添加数据收集器,并将其重新启动,代理程序才能开始监视应用程序。代理程序数据收集器将收集转发至 Node.js 代理程序的数据。目前,提供了下列代理程序数据收集器:
  • 资源数据收集器从 Node.js 应用程序收集资源监视数据。
  • 诊断数据收集器从 Node.js 应用程序收集诊断数据和资源监视数据。
  • 方法跟踪数据收集器从 Node.js 应用程序收集方法跟踪、诊断数据和资源监视数据。

过程

  1. 确保用于运行应用程序服务器的用户标识对代理程序的 install_dir 目录具有完全许可权。
  2. 移至 install_dir/bin 目录并运行以下命令:
    ./nodejs-agent.sh config
  3. 遵循提示,以指定下列配置选项的值:
    KNJ_NODEJS_RUNTIME_BIN_LOCATION
    Node.js 运行时的 bin 文件夹目录。缺省目录为 /usr/local/bin
    KNJ_NPM_RUNTIME_BIN_LOCATION
    npm 命令的 bin 文件夹的目录。缺省目录为 /usr/local/bin
    KNJ_NPM_LIB_LOCATION
    npm 包全局安装目录的 lib 文件夹目录。缺省目录为 /usr/local/lib。例如,如果通过运行 npm install -g 命令来安装 npm 包,那么这个包将安装到 /nodejs_home/lib/node_modules 中,并且 KNJ_NPM_LIB_LOCATION/nodejs_home/lib
    CP_PORT
    代理程序侦听来自套接字客户端的数据时所用的端口。值为 0 表示将使用临时端口。缺省值为 63336
    注: 请勿使用系统中已使用的端口号。要检查该端口是否已在使用中,请运行 netstat -apn | grep port_number 命令。
  4. 运行以下命令启动代理程序:
    ./nodejs-agent.sh start
  5. 确认 Node.js 代理程序 顺利启动。如果此代理程序顺利启动,那么将生成 KNJ_NPM_LIB_LOCATION/node_modules/ibmapm 文件夹。
  6. 根据您拥有的产品和需求,在 Node.js 应用程序的 .js 文件中插入下列其中一个条目以配置代理程序数据收集器:
    注: 只能将一个条目添加到 Node.js 应用程序,以启用代理程序数据收集器功能。并且,如果启用未包括在产品中的功能,那么可能会产生不必要的额外开销,这会降低应用程序执行效率。
    • 如果只有资源监视功能,那么可添加资源数据收集器。要添加资源数据收集器,请在 Node.js 应用程序文件开头插入下面这一行:
      require('KNJ_NPM_LIB_LOCATION/node_modules/ibmapm');
      如果环境中 KNJ_NPM_LIB_LOCATION 的值是 /usr/local/lib,那么此行是:
      require('/usr/local/lib/node_modules/ibmapm');
    • 如果不仅有资源层次的监视功能,还有诊断功能,那么可选择添加下列其中一个代理程序数据收集器:
      • 要添加方法跟踪数据收集器,请在 Node.js 应用程序文件开头插入下面这一行:
        require('KNJ_NPM_LIB_LOCATION/node_modules/ibmapm/methodtrace.js');
      • 要添加诊断数据收集器,请在 Node.js 应用程序文件开头插入下面这一行:
        require('KNJ_NPM_LIB_LOCATION/node_modules/ibmapm/deepdive.js');
      • 要添加资源监视数据收集器,请在 Node.js 应用程序文件开头插入下面这一行:
        require('KNJ_NPM_LIB_LOCATION/node_modules/ibmapm');

      为了确保最佳性能,仅当要进行调试时,才应添加方法跟踪数据收集器。

    注: 插件代码从 Cloud APM2017年 3 月开始更改。如果您从旧版升级代理程序,那么必须更新应用程序中现有数据收集器的代码,以使监视功能正常工作。
  7. 重新启动 Node.js 应用程序,以启用代理程序数据收集器。

结果

您已成功配置 Node.js 代理程序

下一步做什么

  • 现在,您可验证 Node.js 代理程序 数据是否显示在 Cloud APM 控制台中。有关如何启动 Cloud APM 控制台的指示信息,请参阅启动 Cloud APM 控制台。有关使用“应用程序”编辑器的信息,请参阅管理应用程序
    要点: 要在 Cloud APM 控制台中添加应用程序,请在应用程序编辑器中选择 Node.js
  • 您可以更改 Node.js 代理程序数据收集器的运行时行为。有关更多信息,请参阅配置 Node.js 代理程序数据收集器
  • 您可以配置诊断数据收集器,以启用诊断数据收集及显示。有关更多信息,请参阅配置诊断数据收集器