SGame 页面管理

SGame框架提供了一个页面管理工具,用来实时的监控和对运行时进程提供一些通用指令

管理进程

manager_serv是框架的管理进程

  • 代码 位于sgame/servers/manager_serv目录下
tree sgame/servers/manage_serv/sgame/servers/manage_serv/
|-- html_tmpl
|   |-- detail.html
|   |-- index.html
|   `-- login.html
|-- lib
|   |-- base.go
|   |-- cmd.go
|   |-- panel.go
|   `-- report.go
`-- manage_serv.go
  • 配置 位于sgame/servers/spush/tmpl/manager_serv.tmpl
cat sgame/servers/spush/tmpl/manage_serv.tmpl 
{
"listen_addr":"$listen_addr",
"http_addr":"$http_addr",
"log_file":"manage_serv.log",
"client_list":[[10001,"conn_serv-1"],[20001,"logic_serv-1"],[30001,"db_logic_serv-1"],[10002,"conn_serv-2"],[20002,"logic_serv-2"],[30002,"db_logic_serv-2"],[40001,"disp_serv-1"],[40002,"disp_serv-2"]],
"heart_timeout":20,
"reload_timeout":10,
"auth":["admin:xxxx" , "nmsoccer:oooo"],
"auth_expire":3600
}

其中listern_addr是其他业务进程向manager报告的监听地址;http_addr是我们页面管理端的登陆地址;auth是配置的有效用户和密码;auth_expire就是登陆的有效时间.可以看到http_addr是作为参数存在的,所以需要结合sgame.json部署时候来共同查看

  • 发布 配置位于sgame/servers/spush/sgame.json
{
  "task":"sgame" , 
  "deploy_host":"" ,
  "deploy_timeout":180, 
  "remote_user":"nmsoccer" ,
  "remote_pass":"****" ,
  
  "procs":[
    {"name":"conn_serv-1" , "bin":["../conn_serv/conn_serv"] , "host":"127.0.0.1" , "host_dir":"/home/nmsoccer/sg/group1/conn_serv/" , "cmd":"./conn_serv -N sgame -p 10001 -P conn_serv-1 -f conf/conn_serv.json -D"},  
    ......	
    {"name":"manage_serv-1" , "bin":["../manage_serv/manage_serv" , "../manage_serv/html_tmpl/"] , "host":"" , "host_dir":"/home/nmsoccer/sg/manage/manage_serv-1/" , "cmd":"./manage_serv -N sgame -P manage_serv-1 -f conf/manage_serv.json -D"}        
  ],

  "proc_cfgs":[
    {"name":"conn_serv-1" ,  "cfg_name":"conf/conn_serv.json" , "cfg_tmpl":"./tmpl/conn_serv.tmpl" , "tmpl_param":"logic_serv=20001,listen_addr=:18909,m_addr=:7000"}, 
    ......
    {"name":"manage_serv-1" ,  "cfg_name":"conf/manage_serv.json" , "cfg_tmpl":"./tmpl/manage_serv.tmpl" , "tmpl_param":"listen_addr=:7000,http_addr=:8080"}
  ]
   
}

上面截取了sgame.json关于manager_serv的片段,在procs配置项可以看到会将manager_serv二进制文件和html_tmpl部署到/home/nmsoccer/sg/manage/manage_serv-1/;同时以./manage_serv -N sgame -P manage_serv-1 -f conf/manage_serv.json -D命令拉起。
在proc_cfgs项可以看到manager_serv.tmpl的配置具体参数。其监听地址为本机7000;http管理端地址为本机8080

  • 操作 进入sgame/servers/spush目录,以下命令可以控制manager_serv
    • ./spush -p ^man* -f sgame.json 推送manager_serv配置及相关文件到目标目录并拉起
    • ./spush -p ^man* -f sgame.json -o 仅推送二进制文件并拉起
    • ./spush -p ^man* -f sgame.json -O 仅推送配置
    • killall -10 manager_serv 让当前机器所有manager_serv重新加载配置

管理页面

在manager_serv成功部署,同时SGAME框架的示例各进程拉起之后,打开目标地址xxx:8080将可以看到主页上显示的页面:

 

命令区

命令区包含指定的进程.执行的命令和附加参数.指定的进程名支持正则表达式,附加参数针对一些特定命令添加.
下面介绍主要命令:

  • reload(cfg) 指定目标进程重新加载其配置
  • reload(table) 针对某些特定进程,比如logic_serv重新加载其表格资源,对于其他进程并不起效
  • stop(server) 指定进程关闭
  • log_level 动态修正指定进程的日志过滤等级 需要填入后面的附加参数(1:debug 2:info 3:err 4:fatal)
  • log_degree 动态修正指定进程的日志时间粒度 需要填入后面的附加参数(1:second 2:milli sec 3:micro sec 4:nano sec)
  • log_rotate 动态修正指定进程的本地日志滚动数目 后面的附加参数填写滚动数目
  • log_size 动态修正指定进程的本地日志大小 附加参数填写新的日志大小
  • start_gprof 对指定进程开始ggprof监控,并会在本地产生cpu,mem的监控文件
  • end_gprof 对指定进程停止ggprof监控

演示 下面以修改时间粒度为例: 

  • 修正logic_serv_xx的日志粒度为默认的毫秒改为微秒

  • 正在进行

  • 完成

  • 验证
cat logic_serv.log.0
...
[2020-08-14 21:43:57.132 info] <RecvReportCmd> proto:10006 int_v:1597412634 str_v:log_degree
[2020-08-14 21:43:57.132 info] HandleReportCmd <log_degree> extra:3
[2020-08-14 21:43:57.132105 info] HandleReportCmd log_degree extra:3 success!
[2020-08-14 21:49:45.816198 debug] <RecvLoginReq> login: user:cs pass:17908 device:onepluse9 c_key:19189599030223 from:10001
[2020-08-14 21:49:45.831543 debug] <RecvLoginRsp> result:0 c_key:19189599030223 user:cs
...

我们看到随后的日志时间已经成功调整了

 

监控区

  • 监控区显示了进程的拉起时间、最近一次的心跳时间、关闭时间,一些进程相关的状态,比如连接数,在线数等。然后也显示了最近一次执行的命令及其结果
  • 点击具体的进程,将会显示该进程的top信息反馈,目前的收集间隔为5s,具体可以在进程的monitor_inv配置文件里修正

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值