美文网首页程序员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 应用

    依然是阿里开源的一个专门用于监控Node应用服务的库 --> Pandora,专门为Node而生并且对于Egg的多...

  • 使用Dynatrace AppMon监控Docker应用

    使用 Dynatrace AppMon 监控 Docker 应用 可以配置 AppMon 来监控包裹在docker...

  • Egg egg-bin

    本地开发调试Egg应用程序时需使用egg-bin模块 egg-bin是一个为便捷开发者在本地开发、调试、测试Egg...

  • windows部署nodejs应用

    这次使用NSSM这个工具来部署node应用。NSSM会监控你安装的node服务,如果node挂了,NSSM会自动重...

  • 掌握Web应用的监控与告警

    前面有介绍利用Blackbox监控Web应用的健康状况:使用blackbox监控Web应用[https://www...

  • Egg Cors

    Egg.js跨域访问需使用egg-cors插件,典型的应用场景是前后端分离的项目中,前端与后台在不同的域下,此时若...

  • 使用 YourKit及perfino 监控Tomcat应用

    使用 YourKit 监控Tomcat应用 环境说明: 监控机:Windows10 被监控服务器:Centos 6...

  • EGG爬坑记录——element-ui样式文件加载

    在使用官方egg-vue-webpack时使用element-ui的组件库,发现虽然可以应用组件库,但是无法加载样...

  • Egg 安装

    本文将从实例的角度,一步步地搭建出一个 Egg.js 应用,让你能快速的入门 Egg.js。 直接使用脚手架快速生...

  • python 制作egg库以及打包(1)

    Egg和Wheel本质上都是一个 zip 格式包,Egg 文件使用.egg扩展名,Wheel 使用.whl扩展名。...

网友评论

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

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