🔭 在线调试(WebConsole)
WebConsole介绍:
该工具是基于Web的Console工具,位于 kbe/tools/server/webconsole
中。如下图:

其中包括:
- 用户管理:对用户进行管理
- 集群管理:管理所有服务器、组件等配置和状态
- 性能分析:提供tick、cpu、Python、event、network的性能分析
- 日志查看:实时日志的查看和筛选
- 状态查看:利用状态图,查看当前cellapp和baseapp的运行状态线性图表
- Python控制台:可以在该控制台下输入python命令,立即执行
- Watcher:查看单个组件进程的所有状态信息,并实时更新
- SpaceViewer:查看所有Space中entity的分布情况
我们先来看看如何进行环境配置,使WebConsole运作起来。
环境配置:
运行环境要求:
- Python版本:Python3.x(建议3.3或3.3以上版本)
- Django版本:1.8.9
使用方法:
1:请自行为你所使用的Python安装与之匹配的django模块,如果不想安装django,有另外两个选择:
- 如果使用的是Python2.6.6,可进入“kbe/tools/server/django_packages”目录,并在该目录下解压Django-1.6.11.tar.gz文件(解压到当前目录);
- 如果使用的是Python2.7或以上,可进入“kbe/tools/server/django_packages”目录,并在该目录下解压Django-1.8.9.tar.gz文件(解压到当前目录)。
2:修改sync_db.bat、sync_db.sh以及run_server.bat、run_server.sh,使其正确指向你所使用的Python的路径,第一次使用,需要初始化数据:
- windows下Python3.3 + django 1.8.9,运行“sync_db.bat”命令;
- linux下Python3.3 + django 1.8.9,运行“sync_db.sh”命令;
- linux下Python2.6 + django 1.6.11,运行“sync_db_dj-1.6.sh”命令;
- windows下Python2.6 + django 1.6.11,请参考“sync_db_dj-1.6.sh”自行创建.bat文件。
运行步骤:
1:启动服务器
Linux:执行run_server.sh脚本,或者部署到nginx上,浏览器打开地址 “http://xxx.xxx.xxx.xxx:8000/wc/”进行访问,其中“xxx.xxx.xxx.xxx”为运行webconsole的机器IP;
- Windows:运行run_server.bat(需将run_server.bat中的Python文件夹改为自己的Python文件夹)
,之后在浏览器打开地址 “http://xxx.xxx.xxx.xxx:8000/wc/”进行访问,其中“xxx.xxx.xxx.xxx”为运行webconsole的机器IP。
2:登录系统
初次登陆需用默认用户名密码登入用户管理界面,并新建管理用户。

注意事项:
- 第一次使用此控制台时,默认的登录账号为“Admin”,默认密码为“123456”,此账号也是后台唯一的管理账号,登录后请及时修改密码;
- 第一次使用Admin进入后台,需要根据自己启动服务器的用户账号名和用户uid创建新的控制用户,创建完成后,需要退出Admin使用新用户登录才能进行实际的后台操作;
- 此后台的开发环境为Python3.3 + django 1.8.9,在linux下使用Python2.6.6 + django-1.6.11测试通过;
- 此工具所有的操作都源于Machine,因此,想要使用这个工具的功能,必须确保machine进程正确运行;
配置说明:
虽然默认的配置下,WebConsole就可以启动起来,但是在一些特殊的环境情况下,还是需要深入的了解配置。比如Machine之间跨网端,就必须自定义配置。
所有的配置位于{kbe/tools/server/webconsole/KBESettings}
文件夹下。
path.py:路径配置;
settings.py:django的设置以及与引擎相关的参数配置;
urls.py:对django的urlpatterns
进行设置;
wsgi.py:django的wsgi配置。
绝大多数是django相关的配置,请参见Django官网
我们来看一下settings.py
的最后一段,是涉及与引擎相关的参数配置。
# BOOL
# 是否使用Machines的缓冲机制;
# 使用些机制可以减缓页面打开时的卡顿现象,
# 但对于实时性来说,会有些偏差
# 注意:此机制只能在独立运行时设置成true,
# 如果部署到apache等http服务器上以后此参数仍然为True,
# 有可能会造成大量的udp广播包
USE_MACHINES_BUFFER = True
# FLOAT;单位:秒
# 当多长时间没有查询Machines相关数据时停止缓冲机制,
# 以避免长时间没有人操作还不停的广播查询包
STOP_BUFFER_TIME = 300
# FLOAT;单位:秒
# Machines缓冲机制的刷新间隔
# 间隔时间越短,越精确,发送的数据也越频繁
# 此参数仅在 USE_MACHINES_BUFFER = True 时起作用
MACHINES_BUFFER_FLUSH_TIME = 1.0
# FLOAT;单位:秒
# 每次查询Machine时等待响应的最长时间
MACHINES_QUERY_WAIT_TIME = 1.0
# MACHINES地址配置
# 当此参数不为空时,则由原来的广播探测改为固定地址探测,
# WebConsole仅会以此配置的地址进行探测,
# 当服务器存在跨网段的情况时,此方案犹为有用。
# 例子:
# MACHINES_ADDRESS = ["192.168.0.1", "10.0.0.1", "172.16.0.1"]
MACHINES_ADDRESS = []
功能说明:
功能包块有:用户管理、集群管理、性能分析、日志查看、状态查看、Python控制台、Watcher、SpaceViewer。
1. 用户管理

在该界面,可以管理所有用户,包括新增、删除、修改等。
1.1 新建管理用户

账号:登陆用的账号;
昵称:登陆后显示的名称;
登录密码:任意字母数字组合;
确认密码:再输入一遍密码;
操作系统用户:Linux系统的用户名称,Windows下开发调试请无视;
操作系统用户uid:Linux系统用户uid,Windows下开发需与被管理的KBE的uid相同,否则无法管理该KBE;
KBE_ROOT:被管理的KBE的KBE_ROOT目录,默认为当前webconsole所在的KBE的KBE_ROOT路径(可为空);
KBE_RES_PATH:被管理的KBE的KBE_RES_PATH目录,默认为当前webconsole所在的KBE的KBE_RES_PATH路径(可为空);
KBE_BIN_PATH:被管理的KBE的KBE_BIN_PATH目录,默认为当前webconsole所在的KBE的KBE_BIN_PATH路径(可为空)。
注:因一台服务器上可同时存在多个KBE,故每个被管理的KBE的系统用户、UID、KBE_ROOT、KBE_RES_PATH、KBE_BIN_PATH都不能与其他用户的参数重复。
1.2 修改资料
输入新的用户参数,点击确认修改即可。

1.3 修改密码
输入新的密码两次并点击修改。

2. 集群管理
集群管理可以管理所有服务器、组件等配置和状态。
2.1 服务器管理

在“服务器管理”页面,你可以对已启动的KBE进程进行管理和资源消耗查看。
- STOP操作:停止当前进程;
- KILL操作:杀死当前进程;
- 启动新组件:启动新的KBE服务组件;
- 停止服务器:停止当前KBE服务器所有进程;
- 保存当前服务器运行配置:保存当前KBE服务器进程的数量配置信息。
2.2 启动新组件
在该页面,你可以在服务器群内新建任意数量的组件进程。

2.3 所有守护进程状态
在当前界面,你可以查看当前服务器群内所有KBE的Machine信息和资源占用情况。

2.4 服务器运行配置
在这个页面,你可以对之前保存的服务器配置进行加载和删除操作。

3. 性能分析Profile
在这个页面,选择你想进行分析查看的操作。

3.1 TickProfile
在这个页面,你可以进行TickProfile的查询操作,查询时长为空,即默认查询时长为10秒,通过点击柱条可查看相关详细信息。

3.2 CProfile
在该界面,你可以进行cprofile的性能分析查询,查询时长为空,即默认查询时长为10秒。

3.3 PyProfile
在该界面,你可以进行pyprofile的信息查询分析,查询时长为空,即默认查询时长为10秒。

3.4 EventProfile
在该界面,你可以进行eventprofile的信息查询分析,查询时长为空,即默认查询时长为10秒。

3.5 NetworkProfile
在该界面,你可以进行网络性能的信息查询分析,查询时长为空,即默认查询时长为10秒。

4. 日志查看
该页面提供实时日志的查看和筛选,点击上方的箭头可下拉筛选菜单,默认为查看所有进程和所有类型的日志数据。
4.1 实时日志

4.2 日志的筛选

5. 状态图
状态图页面提供给开发者查看当前cellapp和baseapp的运行状态线性图表,点击名称可查看单个组件进程的状态线形图。
5.1 状态图组件总览页面:

5.2 状态图组件进程页面:

6. Python控制台
在该功能下,你可以选择对单个进程使用控制台功能(Telnet形式),点击“连接到控制台”进入该进程控制台,在下方输入框输入命令,点击执行。
6.1 Python控制台的组件进程选择页面

6.2 控制台页面

7. Watcher
Watcher功能提供给开发者一个查看单个组件进程的所有状态信息(网络信息、响应速度等),并实时更新数据到进程Watcher页面。
7.1 Watcher组件进程选择页面

7.2 Watcher操作页面

8. SpaceViewer
在SpaceViewer中,你可以查看游戏当中所有Space中的entity的分布情况。
左边的space列表会随着space的产生而更新,右边实时显示该space的entity的运动情况和分布情况。
注:因暂时无法获取space地图的大小,所以该SpaceViewer的XY轴的值为所有entity中最大X值和最大Y值。
