可用指标
指标分为以下三个类别:
-
自动收集的指标
-
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 指标。
有关控制面板的详细信息和使用说明,请参阅控制面板组织结构和使用方式。