在假定某个功能已经损坏之前,请先检查机器人本身是否真的有问题:实时“资源”页面会显示内存和 CPU 使用情况、数据库与 WebSocket 延迟,以及当前为该服务器运行机器人的基础设施节点,大约每隔几秒更新一次。大多数“机器人没有响应”的报告,原因是缺少某项设置,而不是服务中断;但如果确实是服务中断或延迟飙升,应当通过此页面进行确认,而不是凭猜测判断。
“资源”页面实际显示的内容
- 实时使用情况:已用内存与总内存、堆内存使用量和 CPU 负载,并附有一个显示最近 60 秒的小型滚动图表,因此能看到峰值,而不只是一个当前数值。
- 运行时间与节点:当前进程已运行的时长,以及为你的服务器提供服务的具体节点名称。这一点很重要,因为 Noxyr 运行在多个节点上,而自定义机器人则运行在分配给它的那个节点上。
- 实时延迟面板:分别显示数据库、Redis 缓存、Discord WebSocket 连接、消息延迟和节点间延迟的往返时间。每项数值会根据当前高低显示为绿色、黄色或红色。
- 服务状态:主机器人进程,以及 MongoDB 和 Redis 的在线/启动中/离线状态。这三项必须全部正常,每个功能才能运行。
如果你的浏览器支持,页面会通过实时连接自动更新;否则会每隔几秒轮询一次。无需手动刷新。
如何解读:什么是正常的,什么是真正的问题
数据库、WebSocket 和消息延迟的数值都处于绿色范围,并且内存低于仪表盘变为黄色的临界点,这就是正常的健康状态;预计会有小幅波动,而不是一条平直的线。单个延迟数值短暂飙升到黄色并不需要采取行动;但如果某项服务显示“离线”超过几秒钟,或所有延迟数值同时变为红色,那么在认定你的服务器设置有问题之前,最好先等一分钟再重新检查。
何时查看此页面,何时检查你自己的设置
- 某一个功能不工作,其他一切正常:这几乎总是配置问题(缺少频道、身份组层级问题,或模块已关闭),而不是基础设施问题。应先查看概览页面的设置清单。
- 所有功能都完全没有响应:先检查“资源”页面。如果主机器人服务显示离线,或所有延迟数值都是红色,问题出在基础设施端,任何控制面板设置都无法改变这一点。
- 慢,但没有损坏:某个命令要多花几秒钟,但最终能正常执行。应专门查看消息延迟和数据库延迟数值;如果某个数值暂时偏高,并在一两分钟内恢复,那只是短暂波动,而不是服务中断。
为什么节点很重要,尤其是对自定义机器人
为了提高容量,Noxyr 将其机器人进程分布在多个节点上运行。对大多数服务器来说,这一点是不可见的;你永远不需要知道或关心自己位于哪个节点。但对于自定义机器人来说,它就变得很重要:自定义机器人在启动时会被分配到某个特定节点,而“资源”页面可以让你确认具体是哪个节点,并查看该节点自身的数值,而不是全局平均值。如果自定义机器人的行为异常,在联系支持时提及此页面上的节点名称会很有帮助,因为它能准确指向需要检查的服务器端进程。
此页面无法告诉你什么
它报告的是基础设施的健康状况,而不是功能配置。即使机器人运行完全健康、所有延迟数值都是绿色,服务器仍可能出现工单面板从未发布的情况(因为从未设置分类),或者欢迎消息从不触发(因为开关处于关闭状态)。“资源”页面只能回答“机器人本身是否正常”,而无法回答“我服务器的设置是否正确”。要查看后者,应当前往概览页面的设置清单,以及各个功能自己的控制面板页面。
常见问题
内存使用率高是否意味着机器人即将崩溃?单凭这一点并不意味着这一点。仪表盘会在越过临界值时依次变为黄色、红色,目的是让持续上升的趋势在演变为问题之前就能看到,而并不是即将崩溃的必然信号。
如果我只运行一个服务器,为什么服务器的节点名称还重要?对于普通(非自定义)服务器,它基本没有影响,仅作为参考信息。当你运行自定义机器人时,它就变得更重要了,因为该机器人所在的节点,实际上决定了它的延迟和运行时间,并且与主机器人的健康状况无关。
这和 /status 命令一样吗?不一样,/status 报告的是你社区自身的数据(成员、工单、销售)。“资源”页面报告的则是机器人的基础设施健康状况,是完全不同类型的“状态”。
成员能看到此页面吗?不能。它是服务器管理控制面板的一部分,需要与其他任何控制面板页面相同的访问权限,即服务器所有者或管理员。
如果“资源”页面显示一切正常,但我的功能仍然不工作,我该怎么办?应将其视为配置问题,而非基础设施问题。请查看概览页面的设置清单,以及该具体功能的设置页面,检查是否缺少频道、身份组或开关。
请在控制面板的“资源”页面查看你服务器的实时状态,并参阅控制面板文档,了解与之相关的其他内容。