程序员iOS程序猿

使用 Pandora.js 来监控你的 Egg 应用

2019-03-19  本文已影响2人  马修王

依然是阿里开源的一个专门用于监控Node应用服务的库 --> Pandora,专门为Node而生并且对于Egg的多进程模型也有很好支持,这里将Egg服务如何快速接入Pandora进行简要说明。

安装Pandora

npm i pandora -g  // 安装在全局
npm i pandora --save   // 安装在应用

首先全局需要安装,安装完成之后可以使用pandora命令,如下:

$ pandora --help
pandora <command>

Commands:
  pandora init <filePath>     Init a Pandora.js project
  pandora start [targetPath]  Start an application
  pandora stop [appName]      Stop an application
  pandora restart [appName]   Restart a running application
  pandora reload <appName>    Reload an application
  pandora log [appName]       Show logs of an application
  pandora pid <appName>       Get the PID of a running application
  pandora ps <appName>        Get a tree composed of
  pandora list                List all applications
  pandora dev [targetPath]    Debug an application
  pandora exit                Stop all applications and exit the pandora daemon process

Options:
  --help         Show help                                                                                                                                              [boolean]
  -v, --version  Show version number   

创建Egg测试项目

$ npm i egg-init -g  //如果没有安装过 egg-init 需要安装
$ egg-init pandora-demo --type=simple

安装 egg-pandora-script

npm i egg-pandora-script

熟悉egg的应该知道egg的启动是使用egg-script工具进行启动的,但是如果使用pandora就需要替换掉egg-script,所以egg-pandora-script是本人根据egg-script的逻辑翻写了一版。

创建procfile.js

procfile.js文件是pandora默认读取的启动配置文件,位于项目的根目录下,可以使用pandora init命令直接创建,但是对于egg应用需要手动创建,然后将下面的代码copy进去:

const path = require('path');
const utility = require('utility');

const pkgPath = path.join(__dirname,'package.json');
const pkg = utility.readJSONSync(pkgPath);
const eggPandoraPath = path.join(__dirname,'node_modules/egg-pandora-script/index.js');

module.exports = (pandora) => {
  pandora
    .fork(pkg.name,eggPandoraPath)
}

可视化控制面板 -- Pandora-Dashboard

Pandora-Dashboard 是一个可视化的控制面板,可以通过这个面板查看所有通过pandora start启动的应用,详见说明文档

$ npm i pandora-dashboard -g # 全局安装,会全局注册一个命令 pandora-dashboard-dir
$ pandora start --name dashboard `pandora-dashboard-dir` # 使用该命令获得路径,用于启动

启动应用

切换命令行到项目根目录(也就是procfile所在目录),然后执行pandora start启动应用,这里也可以将package.json中原来的egg-script start改成pandora start然后用npm start, 效果是一样的。

查看应用

我们可以用 pandora log <项目名> 来查看日志, 可以使用 pandora list来查看所有启动的应用:

pandora list
当然使用Pandora-Dashboard才是最直观的,下面截取部分图片: home page of dashboad application logs process info

这里只是快速的说明了egg应用如何的接入,还有很多的参数配置都没有仔细的研究,但是相信很多人跟我一样看待这样的面板就觉得棒极了,尤其是看到多进程的性能数据面板。

上一篇下一篇

猜你喜欢

热点阅读