# Grafana监控进阶功能
# 预设Dashboard说明
- 下面是一些官方预设的Dashboard的统计图表说明
# Dashboard--在线状态
- 此Dashboard上实时显示了对应游戏的在线人数,是最重要的指标,一般任何服务器的异常最终都会在在线人数上体现出来
# 图表--master统计的在线人数
- lobby人数:master统计到的所有lobby类型服务器进程的在线人数之和
- game人数:master统计到的所有game类型服务器进程的在线人数之和
- proxy连接数:master统计到的所有proxy服务器进程的在线人数之和,所有的客户端都直接与porxy保持连接;proxy连接数会大于lobby人数与game人数的和,因为还有部分玩家处于登录中,或者转服过程中,不属于任何具体的lobby或game服务器。
- 总在线人数:等于lobby人数与game人数的和,也就是实际的在线玩家数
# 图表--master统计的登录登出人数
- 全服登录:每10秒为一个区间,玩家登录成功的人数
- 全服登出:每10秒为一个区间,玩家离线登出的人次
- 全服转服:每10秒为一个区间,玩家转服的人次
# Dashboard--服务器状态
- 此Dashboard上,实时显示了各个服务器的状态
- 状态--10:有效的服务器(配置中存在且未通过滚动更新关闭),已连接状态(唯一的正常状态)
- 状态--0:服务器不存在(配置中不存在,或者已经通过滚动更新关闭)
- 状态--1:有效的服务器,断线状态
- 状态--3:有效的服务器,正在强制关服
- 状态--4:有效的服务器,正在优雅关服
- 状态--5:部署中的候选服,检查ok会成为正常服务器
- 状态--6:滚动更新中的候选服,检查ok后状态会切换为滚动更新就绪
- 状态--7:滚动更新就绪,状态服务器不会对外提供服务;滚动服都就绪后统一切换为正常服
# 图表--Proxy状态
- 所有代理服的状态图表
# 图表--Lobby状态
- 所有大厅服的状态图表
# 图表--Game状态
- 所有游戏服的状态图表,因为不同的项目,游戏服的具体type都不同,所以需要服主自己去设置具体需要关注的游戏服的type
# Dashboard--当前服务器状态
# 图表--Proxy状态
- 所有代理服的状态图表,与服务器状态中的Proxy状态相同
# 图表--Lobby状态
- 所有大厅服的状态图表,与服务器状态中的Lobby状态相同
# 图表--异常状态的服务器
- 所有状态异常的服务器(状态不为10的服务器)的列表,假如有某个服务器长期处于异常状态,或者长期都有很多服务器都处于异常状态,那么多半是服务器确实出了问题
# 新增Dashboard--进程性能监控
- 服务器管理人员额外提供了服务器进程相关的一些监控数据,但是默认的Dashboard中并没有预设对应的监控图表,需要的服主可以参考下面的指引创建对应的监控图表
# 新增统计图表--进程基本内存监控
- 步骤1:点击左上角的**+号,选择Create Dashboard**
- 步骤2:然后点击Add Query,新增一个新的图表
- 步骤3:点击图中的铅笔状图标,切换进入SQL模式
- 步骤4:在查询语句中填入下面的SQL语句,并且在ALIAS BY中填入**$tag_process_name**
SELECT mean("memory_rss") FROM "procstat" WHERE $timeFilter GROUP BY time(10s), "process_name" fill(null)
- 步骤5:点击左边的第二个图标,切换到Visualization配置
- 步骤6:在Draw Modes中,选择Fill=0(不填充曲线,看起来清晰点);以及Line Width=1(由于服务器进程一般较多,曲线不宜太粗)
- 步骤7:在Axes中,Unit中选择Data(IEC)-bytes(左边Y轴的数值标注的单位会显示为KB,MB)
- 步骤8:在Legend中,打开As Table、To the right的开关(会将服务器进程名和对应的内存数据显示在图标的右方);以及Avg、Current的开关(进程内存占用会显示当前值与平均值)
- 步骤9:点击左边的第三个图标,切换到General配置,在Title中可以配置这个统计图的名称
- 步骤10:修改Title之后,点击右上角的磁盘图标,保存这个Dashboard
- 步骤11:把新增的Dashboard命名为进程性能监控,然后点击Save
- 步骤12:当前,在名为进程性能监控的Dashboard上,有一个名为进程基本内存监控的图表,这个图表可以像windows的窗口一样,通过拖动边框调整尺寸
# 新增统计图表--进程基本CPU监控
- 点击右上角最左边的图标,可以在现有Dashboard上新增一个统计图表
- 重复上面的步骤2——步骤10,可以新增进程基本的CPU监控图表,唯一不太一样的是步骤4中的SQL语句,与步骤7Unit单位
- 进程基本CPU监控,步骤4中的SQL语句为
SELECT mean("cpu_usage") FROM "procstat" WHERE $timeFilter GROUP BY time(1m), "process_name" fill(null)
- 进程基本CPU监控,步骤7中的Axes配置,Unit为Misc--percent(0-100)(CPU占用为百分比显示)
# 新增Dashboard--数据库监控
- 服务器管理人员还额外提供了数据库相关的一些监控数据,需要的服主可以参考下面的指引创建对应的监控图表
# 新增统计图表--MySQL 内存使用率
- 对应SQL语句为
SELECT mean("memory_usage") FROM "mysql" WHERE $timeFilter GROUP BY time(1m) fill(null)
# 新增统计图表--MySQL CPU使用率
- 对应SQL语句为
SELECT mean("disk_usage") FROM "mysql" WHERE $timeFilter GROUP BY time(1m) fill(null)
# 新增统计图表--MySQL 负载
- 对应SQL语句为
SELECT mean("qps") FROM "project"."mysql" WHERE $timeFilter GROUP BY time(1m) fill(null)
# 新增统计图表--MySQL 慢请求
- 对应SQL语句为
SELECT mean("slow_queries") FROM "mysql" WHERE $timeFilter GROUP BY time(1m) fill(null)
# 新增统计图表--MySQL 磁盘用量
- 对应SQL语句为
SELECT mean("disk_usage") FROM "mysql" WHERE $timeFilter GROUP BY time(1m) fill(null)
# 新增统计图表--MySQL 连接数
- 对应SQL语句为
SELECT mean("connected_clients") FROM "mysql" WHERE $timeFilter GROUP BY time(1m) fill(null)
# 新增统计图表--Redis CPU使用率
- 对应SQL语句为,注意这里的host,需要根据具体分配的Redis数据库来设置
SELECT mean("cpu_usage") FROM "redis" WHERE ("host" = 'redis-senior01-xxxxx') AND $timeFilter GROUP BY time(1m) fill(null)
← Monitor监控报警系统 在线人数显示 →