美文网首页程序员iOS程序猿
使用 Pandora.js 来监控你的 Egg 应用

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

作者: 马修王 | 来源:发表于2019-03-19 20:25 被阅读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应用如何的接入,还有很多的参数配置都没有仔细的研究,但是相信很多人跟我一样看待这样的面板就觉得棒极了,尤其是看到多进程的性能数据面板。

    相关文章

      网友评论

        本文标题:使用 Pandora.js 来监控你的 Egg 应用

        本文链接:https://www.haomeiwen.com/subject/usonmqtx.html