可用指标 - Amazon GameLift Servers

可用指标

指标分为以下三个类别:

  • 自动收集的指标

  • SDK 提供的指标

  • 自定义指标

自动指标收集

这些指标无需更改代码:

实例指标

指标类型 描述 用例
CPU 每个实例的利用率百分比 资源监控
内存 物理内存使用量和百分比 容量规划
网络 I/O 发送/接收的字节数和数据包数 连接运行状况
磁盘 I/O 读/写操作次数和吞吐量 存储性能

实例集指标

指标类型 描述 用例
活动实例 正在运行的实例计数 实例集扩展
游戏会话 活动与可用的会话数量 容量管理
崩溃的游戏会话数 已崩溃的游戏会话数 错误监控

SDK 提供的指标

需要在代码中调用 SDK 函数:

服务器计时指标

指标 描述 实现
服务器增量时间 当前服务器节拍和上一个服务器节拍之间的时间差。衡量服务器节拍率的一致性 调用 GetDeltaTime()
服务器节拍率 显示服务器每秒处理更新的次数 自动计算
服务器节拍时间 服务器处理单个节拍或更新所用的时间 调用 GetTickTime()
服务器世界节拍时间 服务器每个节拍更新游戏世界所用的时间 调用 GetWorldUpdateTime()

实现:对于与引擎无关的 SDK(C++、C#、Go),您需在游戏循环中调用 SDK 函数并传入计算出的计时值来实现这些指标。对于引擎插件(Unreal、Unity),这些指标将通过引擎集成自动捕获。

网络指标

指标 描述 实现
连接 服务器已建立的网络连接总数 在 InitMetrics() 之后自动执行
网络 I/O(字节) 服务器通过网络发送和接收的字节总数 在 InitMetrics() 之后自动执行
网络 I/O(数据包) 服务器发送和接收的网络数据表总数 在 InitMetrics() 之后自动执行
数据包丢失 传输过程中丢失的网络数据包的百分比 在 InitMetrics() 之后自动执行

实现:将 SDK 函数调用与您的网络库集成。SDK 为不同的网络实现提供了指导。

进程指标

指标 描述 实现
CPU 使用率(%) 游戏服务器进程使用的 CPU 资源的百分比 在 InitMetrics() 之后自动执行
内存使用量(单位) 服务器进程使用的内存总量 在 InitMetrics() 之后自动执行
物理内存使用率(%) 当前正在使用的服务器总物理内存的百分比 在 InitMetrics() 之后自动执行
服务器状态 游戏服务器运行状况信息 在 InitMetrics() 之后自动执行

实现:这些指标由 SDK 在每次游戏会话进程中自动收集。

每个进程的控制面板组织

每个进程的指标可在两个专门的控制面板中找到:

  • “服务器性能”控制面板 – 包含服务器计时(增量时间、节拍率、节拍时间、世界节拍时间)、网络指标(连接、I/O 字节/数据包、数据包丢包率)、内存使用情况和单个游戏会话的 CPU 使用率。

  • “实例性能”控制面板 – 包含“内存消耗最大的前 N 个游戏会话”和“CPU 消耗最大的前 N 个游戏会话”表,可帮助确定哪些进程消耗的实例资源最多。点击“游戏会话”链接可以更深入地调查详细指标。

每个进程的指标使用案例

每个进程/每个游戏会话的指标支持以下监控场景:

  • 深入的性能调查 – 当主机/实例由于特定进程或游戏会话而导致性能下降时,每个进程的指标可通过“CPU 和内存消耗最高游戏会话”表来帮助确定哪个进程导致了问题。

  • 游戏服务器崩溃调查 – 当游戏会话崩溃时,这些指标可帮助确定崩溃原因是否源于内存不足、CPU 过载或网络带宽问题。

  • 调查玩家报告的问题 – 当玩家报告称游戏过程中出现延迟或中断时,每个进程的指标有助于识别 CPU、内存、网络、节拍时间或世界更新时间中的瓶颈。

  • 识别不同生成包中的性能变化 – 借助节拍时间、节拍率和世界更新时间指标,开发人员能够衡量不同服务器生成包中游戏性能的变化情况。

  • 检测游戏过程中的延迟和缓慢情况 – 节拍时间、节拍率和世界更新时间指标反映了服务器更新游戏的速度,直接影响客户体验。

  • 基准测试 – 根据玩家人数、游戏模式及其他变量等因素,识别不同游戏场景对服务器性能的影响。

控制面板组织

Amazon Managed Grafana 将指标按不同监控场景组织到专门的控制面板中。可用的控制面板取决于您的实例集类型:

EC2 实例集控制面板

  • “EC2 实例集概述”控制面板 – 高级实例集容量、扩展见解、并发玩家(CCU)、实例、玩家容量和崩溃的游戏会话。

  • “实例概述”控制面板 – 涵盖所有实例的主机级汇总指标,包括平均 CPU、内存、网络和磁盘利用率。

  • “实例性能”控制面板 – 提供单个实例的详细指标,其中包含用于识别资源密集型进程的“内存消耗最大的前 N 个游戏会话”和“CPU 消耗最大的前 N 个游戏会话”表。

  • “服务器性能”控制面板(EC2)– 提供 EC2 实例上单个游戏会话的游戏循环计时、网络性能、内存及 CPU 指标。

容器实例集控制面板

  • “容器实例集概述”控制面板 – 容器实例集资源利用率的高级概述,包括 CPU 预留、内存利用率和容器组状态。

  • “容器性能”控制面板 – 特定 ECS 任务中各个容器的详细指标,包括 CPU 利用率、内存使用率、网络 I/O 和存储性能。

  • “服务器性能”控制面板(容器)– 提供容器中单个游戏会话的游戏循环计时、网络性能、内存及 CPU 指标。

有关控制面板的详细信息和使用说明,请参阅控制面板组织结构和使用方式