

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 可用指标
<a name="gamelift-servers-metrics-types"></a>

指标分为以下三个类别：
+ 自动收集的指标
+ SDK 提供的指标
+ 自定义指标

## 自动指标收集
<a name="metrics-automatic-collection"></a>

这些指标无需更改代码：

### 实例指标
<a name="metrics-instance-level"></a>


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

### 机群指标
<a name="metrics-fleet-level"></a>


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

## SDK 提供的指标
<a name="metrics-sdk-functions"></a>

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

### 服务器计时指标
<a name="metrics-server-timings"></a>


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

**实现：**对于与引擎无关的 SDKs （C\$1\$1、C\$1、Go），您可以通过使用计算出的计时值从游戏循环中调用 SDK 函数来实现这些指标。对于引擎插件（Unreal、Unity），这些指标将通过引擎集成自动捕获。

### 网络指标
<a name="metrics-networking"></a>


| 指标 | 说明 | 实施 | 
| --- | --- | --- | 
| Connections | 服务器已建立的网络连接总数 | 在 InitMetrics () 之后自动 | 
| 网络 I/O （字节） | 服务器通过网络发送和接收的字节总数 | 在 InitMetrics () 之后自动 | 
| 网络 I/O （数据包） | 服务器发送和接收的网络数据表总数 | 在 InitMetrics () 之后自动 | 
| 数据包丢失 | 传输过程中丢失的网络数据包的百分比 | 在 InitMetrics () 之后自动 | 

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

### 进程指标
<a name="metrics-process-level"></a>


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

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

#### 每个进程的控制面板组织
<a name="process-metrics-dashboards"></a>

每个进程的指标可在两个专门的控制面板中找到：
+ **服务器性能控制面板** — 包含服务器计时（增量时间、滴答率、滴答时间、世界滴答时间）、网络指标（连接、 I/O 字节/数据包、数据包丢失）、内存使用情况和单个游戏会话的 CPU 使用率。
+ **“实例性能”控制面板**：包含“内存消耗最大的前 N 个游戏会话”和“CPU 消耗最大的前 N 个游戏会话”表，可帮助确定哪些进程消耗的实例资源最多。点击“游戏会话”链接可以更深入地调查详细指标。

#### 每个进程的指标使用案例
<a name="process-metrics-use-cases"></a>

每进程/ per-game-session 指标支持以下监控场景：
+ **深入的性能调查** — 当由于特定进程或游戏会话而导致性能下降时，每个进程的指标可通过 “占用 CPU 和内存占用量最高的游戏会话” 表来帮助确定哪个进程导致了问题。 host/instance 
+ **游戏服务器崩溃调查**：当游戏会话崩溃时，这些指标可帮助确定崩溃原因是否源于内存不足、CPU 过载或网络带宽问题。
+ **调查玩家报告的问题**：当玩家报告称游戏过程中出现延迟或中断时，每个进程的指标有助于识别 CPU、内存、网络、节拍时间或世界更新时间中的瓶颈。
+ **识别不同生成包中的性能变化**：借助节拍时间、节拍率和世界更新时间指标，开发人员能够衡量不同服务器生成包中游戏性能的变化情况。
+ **检测游戏过程中的延迟和缓慢情况**：节拍时间、节拍率和世界更新时间指标反映了服务器更新游戏的速度，直接影响客户体验。
+ **基准测试**：根据玩家人数、游戏模式及其他变量等因素，识别不同游戏场景对服务器性能的影响。

## 控制面板组织
<a name="metrics-dashboard-usage"></a>

[Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html) 将指标按不同监控场景组织到专门的控制面板中。可用的控制面板取决于您的实例集类型：

### EC2 舰队仪表板
<a name="ec2-fleet-dashboards"></a>
+ **EC2 舰队概述仪表板** — 高级舰队容量、扩展见解、并发玩家 (CCU)、实例、玩家容量和游戏会话崩溃。
+ **“实例概述”控制面板**：涵盖所有实例的主机级汇总指标，包括平均 CPU、内存、网络和磁盘利用率。
+ **“实例性能”控制面板**：提供单个实例的详细指标，其中包含用于识别资源密集型进程的“内存消耗最大的前 N 个游戏会话”和“CPU 消耗最大的前 N 个游戏会话”表。
+ **服务器性能控制面板 (EC2)**- EC2 实例上单个游戏会话的游戏循环时间、网络性能、内存和 CPU 指标。

### 容器实例集控制面板
<a name="container-fleet-dashboards"></a>
+ **“容器实例集概述”控制面板**：容器实例集资源利用率的高级概述，包括 CPU 预留、内存利用率和容器组状态。
+ **“容器性能”控制面板**：特定 ECS 任务中各个容器的详细指标，包括 CPU 利用率、内存使用率、网络 I/O 和存储性能。
+ **“服务器性能”控制面板（容器）**：提供容器中单个游戏会话的游戏循环计时、网络性能、内存及 CPU 指标。

有关控制面板的详细信息和使用说明，请参阅[控制面板组织结构和使用方式](gamelift-servers-metrics-dashboards.md)。