# 监控功能

node-framework的特点之一是内置监控模块，方便站长、开发人员、测试人员等实时掌握网站的各方面信息，了解应用的压力情况，发现并预防问题。

以下是监控功能的一些示例截图，您可以点击后查看大图：

1. 查看网站概况，包括总体请求数，响应数，进程崩溃次数，部署服务器的基本信息等。系统会在给出总体情况后分服务器给出详细信息。此外也可以根据不同的时间区段进行查看。更详细描述请点击[这里](#概况)

    [![概况截图](http://bs.baidu.com/weigou-baidu-com/d6e29a5fe50e5c2cb88f0b58de8498c5.png)](http://bs.baidu.com/weigou-baidu-com/d6e29a5fe50e5c2cb88f0b58de8498c5.png)

2. 查看网站实时情况，包括瞬时请求量以及内存和堆栈的使用情况。这些信息会随着用户应用的运行而__实时更新__。更详细的描述请点击[这里](#趋势)

    [![趋势截图](http://bs.baidu.com/weigou-baidu-com/db7dae53afd7d937c66b5a7e6a79447e.png)](http://bs.baidu.com/weigou-baidu-com/db7dae53afd7d937c66b5a7e6a79447e.png)

## 概况

通常来说，一个web应用会部署在多台服务器上。监控模块会将这些服务器的信息逐一收集后进行汇总统计，计算出“处理静态请求”，“处理动态请求”和“错误”个数。*鼠标浮上时可以显示更详细的信息*。

![概况汇总部分](http://bs.baidu.com/weigou-baidu-com/674bb514015e0196cae58a0282d82c1c.png)

紧接着是对每个服务器分别的统计，统计指标主要有：

1. 开始运行时间
2. 已处理请求数
3. __崩溃次数__
4. 操作系统 
5. CPU个数
6. 内存总量
7. 请求的分类展示，包括按类型（静态、动态）和按HTTP Method（GET, POST, PUT, DELETE）
8. 响应的分类展示，包括按类型（静态、动态、错误）和按响应时间（正常，非正常）

__请注意：__

1. 服务器名称在存在域名时（如线上服务器或开发机）显示为域名，在不存在时（如本机开发）显示为登录者用户名。
2. 响应时间是否为长时间响应取决于配置文件`config/monitor.js`的`responseWarningThreshold`。

![概况服务器详细部分](http://bs.baidu.com/weigou-baidu-com/6e44b2f9dac2e9c62871a67cafc6a65c.png)

概况信息可以分时间查看，包括“今天”，“昨天”，“一周”和“按日期”，方便查看历史记录并进行比较。

## 趋势

趋势页面会以每个服务器为单位展现它的__实时信息__，主要包含两部分信息。

1. 居上为瞬时请求数，指在一个监控周期(status frequency，下面会解释)内收到的请求数。开发人员可以根据这些数据来判断服务器的实时压力。
2. 居下为瞬时内存使用情况。node可以提供的内存信息包括驻留内存（RSS)，总堆栈（HeapTotal）和已使用堆栈（HeapUsed）。开发人员可以根据这些数据来判断服务器的内存是否足够，来判断内存是否为服务器性能瓶颈。

![趋势](http://bs.baidu.com/weigou-baidu-com/effc669b3af4dd936260fd62f75594d7.png)

您可以点击机器名称旁边的“暂停更新”来静止图表，从而查看更精确的数据。

监控周期(status frequency)的配置位于`config/monitor.js`的`frequency`对象中。默认情况下设置为1000ms，即一秒更新一次。如果您觉得这对服务器压力较大，可以适当增加监控周期来降低频率。

趋势图表最多返回一台服务器的近3600条数据，即在默认设置下，周期为一秒一次，则能反应近一小时的趋势情况。

## 使用

### 激活监控功能

监控功能默认是__关闭__的。激活监控功能的步骤如下：

1. 访问监控中心并[注册应用](http://cq01-rdqa-pool028.cq01.baidu.com:8888/public/create)。填入申请人邮箱和所属产品线后，能够获得全局唯一的appid和appkey。
2. 将获得的appid和appkey分别填入`config/global.js`对应的两项配置中。
3. 打开或新建配置文件`config/monitor.js`，编写配置项`enable`并且设置为`true`。
4. 如果有必要，调整适合您应用的参数。常用的包括`frequency`, `responseWarningThreshold`等。

至此，监控功能打开完毕。您的web应用会在后台静默定时发送请求给监控中心，用以记录服务器的各类状态。

### 查看监控数据

您需要访问[监控中心](http://cq01-rdqa-pool028.cq01.baidu.com:8888/)以查看数据。具体步骤如下：

1. 填入之前分配给您的appid并提交
2. 点击“概况”或者“趋势”进行查看。

## 感谢

监控功能所有图表由[echarts](http://echarts.baidu.com)提供支持，在此感谢林峰及开发团队所有人员。