依然是阿里開(kāi)源的一個(gè)專門用于監(jiān)控Node應(yīng)用服務(wù)的庫(kù) --> Pandora,專門為Node而生并且對(duì)于Egg的多進(jìn)程模型也有很好支持,這里將Egg服務(wù)如何快速接入Pandora進(jìn)行簡(jiǎn)要說(shuō)明。
安裝Pandora
npm i pandora -g // 安裝在全局
npm i pandora --save // 安裝在應(yīng)用
首先全局需要安裝,安裝完成之后可以使用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
創(chuàng)建Egg測(cè)試項(xiàng)目
$ npm i egg-init -g //如果沒(méi)有安裝過(guò) egg-init 需要安裝
$ egg-init pandora-demo --type=simple
安裝 egg-pandora-script
npm i egg-pandora-script
熟悉egg的應(yīng)該知道egg的啟動(dòng)是使用egg-script工具進(jìn)行啟動(dòng)的,但是如果使用pandora就需要替換掉egg-script,所以egg-pandora-script是本人根據(jù)egg-script的邏輯翻寫了一版。
創(chuàng)建procfile.js
procfile.js文件是pandora默認(rèn)讀取的啟動(dòng)配置文件,位于項(xiàng)目的根目錄下,可以使用pandora init命令直接創(chuàng)建,但是對(duì)于egg應(yīng)用需要手動(dòng)創(chuàng)建,然后將下面的代碼copy進(jìn)去:
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 是一個(gè)可視化的控制面板,可以通過(guò)這個(gè)面板查看所有通過(guò)pandora start啟動(dòng)的應(yīng)用,詳見(jiàn)說(shuō)明文檔。
$ npm i pandora-dashboard -g # 全局安裝,會(huì)全局注冊(cè)一個(gè)命令 pandora-dashboard-dir
$ pandora start --name dashboard `pandora-dashboard-dir` # 使用該命令獲得路徑,用于啟動(dòng)
啟動(dòng)應(yīng)用
切換命令行到項(xiàng)目根目錄(也就是procfile所在目錄),然后執(zhí)行pandora start啟動(dòng)應(yīng)用,這里也可以將package.json中原來(lái)的egg-script start改成pandora start然后用npm start, 效果是一樣的。
查看應(yīng)用
我們可以用 pandora log <項(xiàng)目名> 來(lái)查看日志, 可以使用 pandora list來(lái)查看所有啟動(dòng)的應(yīng)用:

當(dāng)然使用Pandora-Dashboard才是最直觀的,下面截取部分圖片:



這里只是快速的說(shuō)明了egg應(yīng)用如何的接入,還有很多的參數(shù)配置都沒(méi)有仔細(xì)的研究,但是相信很多人跟我一樣看待這樣的面板就覺(jué)得棒極了,尤其是看到多進(jìn)程的性能數(shù)據(jù)面板。