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

依然是阿里開源的一個專門用于監(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)用:

pandora list

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

home page of dashboad
application logs
process info

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

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

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

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

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