##pomelo-cli 交互式命令行
pomelo-cli 提供了一个交互式命令行,开发者可以使用这个工具对使用pomelo框架开发的应用和服务进行运维
npm install -g pomelo-cli
使用命令
pomelo-cli -h host -P port -u username -p password
默认的pomelo-cli登录参数
pomelo-cli -h 127.0.0.1 -P 3005 -u monitor -p monitor
登录用户的用户名密码权限等级是在config/adminUser.json里面进行配置的
具体可以参考admin user
对于kill, stop, add ,enable, disable 等命令是受权限限制的,非admin用户将无权进行操作
使用某个context来进行操作,context可以是serverId或者是all
use {serverId|all}
之后你的命令就会被应用到该context
example: use area-server-1
example: use all
敲入 quit 你就会退出 pomelo-cli
关闭所有服务器
example: kill
注意:小心使用该命令
具体操作请看 :
https://github.com/NetEase/pomelo/wiki/pomelo-cli-exec命令使用
执行脚本文件
在这之前, 需要设置app master服务器配置:
app.configure('production|development', 'master', function() {
app.enable('systemMonitor');
}
exec {filepath}
filepath 可以是相对于pomelo-cli命令执行的路径
example :
use chat-server-1 [use all 不可以] //必须要指定服务器Id
exec xxx.js
等价于 exec pwd/xxx.js
filepath 也可以是以 / 开头的绝对路径
example : exec /home/user/xxx.js
脚本文件的执行是通过 vm 模块
vm context 是 [ node_modules/pomelo/pomelo-admin/lib/modules/scripts.js文件 ]
var context = {
app: this.app,
require: require,
os: require("os"),
fs: require("fs"),
process: process,
util: util
};
只能使用context里引用的模块, 其他模块都不可用;例如 console.log() 也会报undefined.
执行结果是通过 result 参数
因此,你在脚本文件里,你需要使用result来得到返回结果
getCPUs.js
var cpus = os.cpus();
result = util.inspect(cpus,true,null);
等价于 app.get(key)
get {key}
等价于 app.set(key, value)
set {key} {value}
注意:value 必须是 string 或者简单的value
动态添加服务器到pomelo集群中
add 参数是来自于servers.json配置文件中的 key = value 对
example: add host=127.0.0.1 port=3451 serverType=chat id=chat-server-2
example: add host=127.0.0.1 port=3152 serverType=connector id=connector-server-3 clientPort=3012 frontend=true
注意:添加服务器必须使用正确完整的参数,否则添加的服务器会处于bad模式
停止服务器,以serverId作为参数
stop {serverId}
example: stop area-server-1
查看信息比如:servers, connections
可以查看如下信息:
servers, connections, logins, modules, status, proxy, handler, components, settings
example: show servers
example: show connections
example: show proxy
example: show handler
example: show logins
注意: 只有查看servers的时候是可以在任何一个context下面的,其他的所有的信息查看必须在某一个server的context下进行。
enable admin module 设置 或者 enable app 设置
enable module {moduleId}
enable app {settings}
example: enable module systemInfo
example: enable app systemMonitor
disable admin module 设置 或者 disable app 设置
disable module {moduleId}
disable app {settings}
example: disable module systemInfo
example: disable app systemMonitor
dump v8 heap 和 cpu 以供之后的分析
dump cpu|memory {filepath} [times] [–force]
times 是 cpu dump 所需要的时间,以秒为单位
example: dump cpu /home/xxx/test 5
example: dump memory /home/xxx/test
注意:你可以使用 --force 来覆盖写入已经存在的文件
example: dump cpu /home/xxx/test 5 --force
example: dump memory /home/xxx/test --force
打开google chrome浏览器,按下F12来打开浏览器控制台
找到profile标签,右键选择Load profile…
选择dump文件,点击open。dump 文件就会被载入,你就可以进行分析
关于dump的更多信息,你可以访问ndump