
# Node.js应用接入APM
#### Node.js应用接入APM
1. 登录[APM控制台](https://console.huaweicloud.com/apm2/)。
2. 在左侧导航栏中选择"应用监控 \> 应用列表"。
3. 进入"接入应用"页面。 
   - 首次接入应用时，单击"点击接入应用"，进入"接入应用"页面。
   
   - 已有探针接入时，在页面右上角，单击"接入应用"，进入"接入应用"页面。
   
   
   
   
4. 选择"区域"和"应用"。若未有应用，可单击"创建应用"，弹出"创建应用"弹窗，具体操作请参见[创建应用](https://support.huaweicloud.com/usermanual-apm2/apm_07_0050.html#apm_07_0050__section1684713176449)。
5. "接入方式"选择"增强型探针"。
6. "服务端语言"选择Node.js。
7. 数据接入。 
   - 无修改接入
     1. 请到"系统管理 \> 访问密钥"界面，获取JavaAgent所需的AK、SK。获取"访问密钥"的方法，请参见[管理APM访问密钥](https://support.huaweicloud.com/usermanual-apm2/apm_07_0034.html)。
     
     2. 使用SSH远程登录工具，登录待安装Agent的Linux操作系统主机，并以root或service权限执行相关命令。执行安装命令的用户需要和启动应用的用户保持一致。
     
     3. 接入命令如下：
        ```
        npm install -S apm-nodejs-agent && APM_APP_NAME=apm-nodejs-demo APM_AK=APM访问密钥 ID APM_SK=APM秘密访问密钥 APM_MASTER_ADDRESS=APM探针的接入地址 node -r apm-nodejs-agent/tracing app.js; history -cw; history -r
        ```
        表1无修改接入参数 
        | 环境变量               | 入参            | 描述                                                                                                       | 选项 |
        |:---|:---|:---|:---|
        | APM_APP_NAME       | appName       | 组件名称，一个组件可以包含多个环境。不能重复，如果要重复，使用APM_INSTANCE_NAME区分。                                                      | 必填 |
        | APM_AK             | AK            | APM访问密钥ID（AK）。获取APM_AK方法参见[管理APM访问密钥](https://support.huaweicloud.com/usermanual-apm2/apm_07_0034.html)。 | 必填 |
        | APM_SK             | SK            | APM秘密访问密钥（SK）。获取APM_AK方法参见[管理APM访问密钥](https://support.huaweicloud.com/usermanual-apm2/apm_07_0034.html)。 | 必填 |
        | APM_MASTER_ADDRESS | masterAddress | APM探针的接入地址。请参见[探针接入地址](https://support.huaweicloud.com/usermanual-apm2/apm_07_1008.html)。                | 必填 |
        | APM_BUSINESS       | business      | 应用：代表一个逻辑单元，是一个全局概念，各个region都可以看到相同的应用信息，比如一个租户下面比较独立的功能模块可以定义为一个应用。如果填写，则必须提前创建该应用。如果为空，则代表默认应用。        | 选填 |
        | APM_SUB_BUSINESS   | subBusiness   | 子应用：在一个应用下面可以创建多个子应用，主要起文件夹和管理的功能，子应用为全局概念，当前最多支持三层子应用，子应用格式为：sub1/sub2/sub3                             | 选填 |
        | APM_ENV            | env           | 环境：一个组件由于部署不同的配置参数，会形成的多个环境。                                                                             | 选填 |
        | APM_ENV_TAG        | envTag        | 环境标签：是在环境上的一个属性，多个环境可能具有相同的标签，可以通过标签对环境进行过滤。                                                             | 选填 |
        | APM_INSTANCE_NAME  | instanceName  | 实例：是环境下的一个进程，名称由主机名+ip+实例名称组成。                                                                           | 选填 |
           
        
      
   
   - 自定义接入
     1. 使用SSH远程登录工具，登录待安装Agent的Linux操作系统主机，并以root或service权限执行相关命令。执行安装命令的用户需要和启动应用的用户保持一致。
     
     2. 安装apm-nodejs-agent，命令如下：
        ```
        npm install -S apm-nodejs-agent
        ```
        
     
     3. 添加agent启动和配置项，示例如下：
        ```
        const process = require('process');
            const agent = require('apm-nodejs-agent');
            agent.start({
              appName: 'apm-nodejs-demo',
              masterAddress: 'APM探针的接入地址',
              AK: 'APM访问密钥',
              SK: 'APM秘密访问密钥'
            }).then(()=>{
              console.log('Agent trace start');
            }).catch((error)=>{
              console.log('Error agent trace',error);
            })
            process.on('SIGTERM',()=>{
              agent.stop();
            })
        ```
        表2自定义接入参数 
        | 环境变量               | 入参            | 描述                                                                                                       | 选项 |
        |:---|:---|:---|:---|
        | APM_APP_NAME       | appName       | 组件名称，一个组件可以包含多个环境。不能重复，如果要重复，使用APM_INSTANCE_NAME区分。                                                      | 必填 |
        | APM_AK             | AK            | APM访问密钥ID（AK）。获取APM_AK方法参见[管理APM访问密钥](https://support.huaweicloud.com/usermanual-apm2/apm_07_0034.html)。 | 必填 |
        | APM_SK             | SK            | APM秘密访问密钥（SK）。获取APM_AK方法参见[管理APM访问密钥](https://support.huaweicloud.com/usermanual-apm2/apm_07_0034.html)。 | 必填 |
        | APM_MASTER_ADDRESS | masterAddress | APM探针的接入地址。请参见[探针接入地址](https://support.huaweicloud.com/usermanual-apm2/apm_07_1008.html)。                | 必填 |
        | APM_BUSINESS       | business      | 应用：代表一个逻辑单元，是一个全局概念，各个region都可以看到相同的应用信息，比如一个租户下面比较独立的功能模块可以定义为一个应用。如果填写，则必须提前创建该应用。如果为空，则代表默认应用。        | 选填 |
        | APM_SUB_BUSINESS   | subBusiness   | 子应用：在一个应用下面可以创建多个子应用，主要起文件夹和管理的功能，子应用为全局概念，当前最多支持三层子应用，子应用格式为：sub1/sub2/sub3                             | 选填 |
        | APM_ENV            | env           | 环境：一个组件由于部署不同的配置参数，会形成的多个环境。                                                                             | 选填 |
        | APM_ENV_TAG        | envTag        | 环境标签：是在环境上的一个属性，多个环境可能具有相同的标签，可以通过标签对环境进行过滤。                                                             | 选填 |
        | APM_INSTANCE_NAME  | instanceName  | 实例：是环境下的一个进程，名称由主机名+ip+实例名称组成。                                                                           | 选填 |
           
        
      
   
   
   
   
 
