使用 Pandora.js 來(lái)監(jiān)控你的 Egg 應(yīng)用

依然是阿里開(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)用:

pandora list

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

home page of dashboad
application logs
process info

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在實(shí)現(xiàn) egg + vue 服務(wù)端渲染工程化實(shí)現(xiàn)之前,我們先來(lái)看看前面兩篇關(guān)于Webpack構(gòu)建和Egg的文章: ...
    hubcarl閱讀 6,145評(píng)論 0 19
  • Getting Started Burp Suite 是用于攻擊web 應(yīng)用程序的集成平臺(tái)。它包含了許多工具,并為...
    Eva_chenx閱讀 29,263評(píng)論 0 14
  • Kubernetes 是 docker 容器編排系統(tǒng), 用于協(xié)調(diào)高可用的計(jì)算機(jī)集群,并在這個(gè)集群上以更有效的方式自...
    莫林君閱讀 6,797評(píng)論 1 4
  • Codis 3.2 部署配置匯總 概念總結(jié) 集群配置前需要了解架構(gòu),集群分片主要分三種: 客戶端分片:這個(gè)需要自己...
    三杯水Plus閱讀 6,326評(píng)論 0 11
  • 曾經(jīng),我是個(gè)滴辣不沾的人。那時(shí)候的我,吃個(gè)夫妻肺片會(huì)被辣得胃疼,更別說(shuō)麻辣火鍋、麻辣燙、麻辣香鍋、麻辣小龍蝦了。此...
    依依荷閱讀 404評(píng)論 0 1

友情鏈接更多精彩內(nèi)容