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

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



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