

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

# 监控 亚马逊 GameLift 服务器
<a name="monitoring-overview"></a>

监控是维护和其他 AWS 解决方案的可靠性、可用性和性能的重要组成部分。Amazon GameLift ServersAmazon GameLift Servers 指标有三个主要用途：监控系统运行状况和设置警报；跟踪游戏服务器的性能和使用情况；以及使用手动或自动扩展功能管理容量。

AWS 提供以下监控工具Amazon GameLift Servers，供您监视、报告问题并在适当时自动采取措施：
+ **Amazon GameLift Servers 控制台** – 使用图形界面管理您的 Amazon GameLift Servers 资源并跟踪游戏托管活动。
+ **服务器遥测指标** – Amazon GameLift Servers 支持您通过 SDK 和插件集成，直接从游戏服务器发送自定义指标。您可以定义并跟踪自己的游戏特定指标以及内置的性能、网络、内存和计时数据。所有指标都可以发布到 [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)，并使用完全可自定义的控制面板在 Amazon Grafana 中进行监控。您也可以发布到 Amazon CloudWatch ，以便与其他 AWS 服务集成。遥测系统是完全可定制的——除了内置指标外，您还可以创建自定义 Prometheus 查询，以获取其他指标。有关特定技术栈的实施指南，请参阅[使用服务器遥测指标进行监控](monitoring-gamelift-servers-metrics.md)。
+ **Amazon CloudWatch** — 您可以实时监控Amazon GameLift Servers指标，以及您在 AWS 服务上运行的其他 AWS 资源和应用程序的指标。Amazon CloudWatch 提供了一套监控功能，包括用于创建自定义控制面板的工具，以及设置警报以在指标达到指定阈值时发出通知或采取行动的功能。
+ **AWS CloudTrail**— 捕获由您的账户或代表您的 AWS 账户为和其他 AWS 服务进行的所有 API 调用Amazon GameLift Servers和相关事件。数据将作为日志文件传送到您指定的 Amazon S3 存储桶。您可以识别哪些用户和帐户拨打了电话 AWS、发出呼叫的源 IP 地址以及呼叫发生的时间。
+ **游戏会话日志** – 您可以将游戏会话的自定义服务器消息输出到存储在 Amazon S3 中的日志文件中。

## 跨监控源的指标比较
<a name="monitoring-metrics-comparison"></a>

Amazon GameLift Servers通过三个主要来源提供指标：Amazon GameLift Servers控制台舰队活动指标、服务器遥测指标和 Amazon CloudWatch Amazon GameLift Servers 指标。每个来源都有独特的功能。服务器遥测提供最深入的服务器端和 OS-level 可见性， CloudWatch 为警报和自动化提供最广泛的 GameLift-side 舰队、队列和配对指标，控制台一目了然地显示舰队活动。下表显示了每个来源提供的指标，按指标类别排列。

### 按来源划分的指标可用性
<a name="metrics-overlap-analysis"></a>

在下表中：
+ **控制台**表示指标以原生方式显示在Amazon GameLift Servers控制台中（例如，在队列的 “活动”、“扩展” 或 “位置” 选项卡上，或者在队列表中）。
+ **CloudWatch**表示指标已发布到`AWS/GameLift`命名空间，可以绘制图表、警报或查询。 CloudWatch
+ **遥测**表示该指标由收集Amazon GameLift Servers OpenTelemetry 器收集，可在管理门户和预先构建的仪表板中找到。**✓ \*** 表示指标不是直接发出的，而是可以通过对收集的遥测数据进行自定义 PromQL 查询得出。

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

Instance-level 容量和生命周期指标：


**实例指标可用性**  

| 指标 | 控制台 | CloudWatch | 遥测 | 
| --- | --- | --- | --- | 
| 活动实例 | ✓ | ✓ | ✓\* | 
| 空闲实例 | ✓ | ✓ | ✓\* | 
| 空闲实例所占百分比 | ✓ | ✓ | ✓\* | 
| 预期实例数 | ✓ | ✓ |  | 
| 最小实例数 | ✓ | ✓ |  | 
| 最大实例数 | ✓ | ✓ |  | 
| 待处理实例 | ✓ | ✓ |  | 
| 正在终止实例 | ✓ | ✓ |  | 
| 实例 Spot 中断 | ✓ | ✓ |  | 
| 回收的实例（Spot） | ✓ | ✓ |  | 
| 运行不正常的实例替换次数 | ✓ | ✓ |  | 

#### 实例系统和操作系统指标
<a name="instance-system-metrics-table"></a>

Operating-system-level 实例指标。服务器遥测收集的主机指标集要丰富得多 CloudWatch，包括详细的内存、文件系统和网络故障。EC2 舰队发布的主机指标集与集装箱舰队不同的主机指标——集装箱船队指标列在下面的集装*箱队*列指标下。


**实例系统和操作系统指标可用性（托管 EC2 队列）**  

| 指标 | 控制台 | CloudWatch | 遥测 | 
| --- | --- | --- | --- | 
| CPU 使用率 | ✓ | ✓ | ✓ | 
| 按状态划分的 CPU 时间（用户、系统、空闲、iowait） |  |  | ✓ | 
| CPU 平均负载（1m、5m、15m） |  |  | ✓ | 
| 内存使用率和利用率 |  |  | ✓ | 
| 文件系统的使用和利用率 |  |  | ✓ | 
| 网络 in/out （字节） | ✓ | ✓ | ✓ | 
| 网络数据包、错误、丢弃 |  |  | ✓ | 
| 活跃的网络连接 |  |  | ✓ | 
| 磁盘 read/write 字节 | ✓ | ✓ | ✓ | 
| 磁盘 read/write 操作 | ✓ | ✓ | ✓ | 
| 磁盘操作时间和 I/O 时间 |  |  | ✓ | 
| 待处理的磁盘操作 |  |  | ✓ | 
| Per-process CPU 时间 |  |  | ✓ | 
| Per-process 内存使用情况（驻留、虚拟） |  |  | ✓ | 

#### 游戏会话和服务器进程指标
<a name="game-server-metrics-table"></a>

游戏会话计数和服务器进程生命周期指标：


**游戏会话和服务器进程指标可用性**  

| 指标 | 控制台 | CloudWatch | 遥测 | 
| --- | --- | --- | --- | 
| 有效游戏会话 | ✓ | ✓ | ✓\* | 
| 激活游戏会话 | ✓ | ✓ |  | 
| 可用游戏会话（游戏容量） | ✓ | ✓ | ✓ | 
| 可用游戏会话百分比（容量使用情况） | ✓ | ✓ | ✓ | 
| 并发可激活游戏会话数 | ✓ | ✓ |  | 
| 游戏会话 Spot 中断 | ✓ | ✓ |  | 
| 活动服务器进程数 | ✓ | ✓ | ✓ | 
| 健康的服务器进程 | ✓ | ✓ | ✓ | 
| 运行状况良好的服务器进程百分比 | ✓ | ✓ | ✓ | 
| 服务器进程激活 | ✓ | ✓ |  | 
| 服务器进程终止 | ✓ | ✓ |  | 
| 服务器进程异常终止 | ✓ | ✓ |  | 
| 崩溃的游戏会话数 |  |  | ✓ | 

#### 服务器性能指标
<a name="server-performance-metrics-table"></a>

In-game 服务器性能指标通过 Amazon GameLift Servers SDK 和插件直接从游戏服务器发出。它们是服务器遥测所独有的，在控制台或中 CloudWatch不可用。


**服务器性能指标可用性**  

| 指标 | 控制台 | CloudWatch | 遥测 | 
| --- | --- | --- | --- | 
| 服务器增量时间（以及 p50、p90、p95） |  |  | ✓ | 
| 服务器滴答时间（以及 p50、p90、p95） |  |  | ✓ | 
| 服务器滴答率 |  |  | ✓ | 
| 服务器世界的滴答时间（以及 p50、p90、p95） |  |  | ✓ | 
| 服务器启动状态 |  |  | ✓ | 
| 服务器连接 |  |  | ✓ | 
| 服务器字节 in/out |  |  | ✓ | 
| 服务器数据包 in/out |  |  | ✓ | 
| 服务器数据包丢失 in/out |  |  | ✓ | 

#### 玩家指标
<a name="player-metrics-table"></a>

玩家会话和并发用户指标：


**玩家指标可用性**  

| 指标 | 控制台 | CloudWatch | 遥测 | 
| --- | --- | --- | --- | 
| 当前玩家会话 | ✓ | ✓ |  | 
| 可用玩家会话数（最大） | ✓ | ✓ |  | 
| 玩家会话激活次数 | ✓ | ✓ |  | 
| 全球和每个位置的并发用户 (CCU) |  |  | ✓ | 

#### 容器实例集指标
<a name="container-metrics-table"></a>

托管集装箱船队的特定指标。与之相比，服务器遥测收集的网络和存储故障更丰富 CloudWatch，同时 CloudWatch 跟踪遥测未暴露的容器组生命周期计数。


**容器实例集指标可用性**  

| 指标 | 控制台 | CloudWatch | 遥测 | 
| --- | --- | --- | --- | 
| 活跃的游戏服务器容器组 | ✓ | ✓ |  | 
| 闲置游戏服务器容器组 | ✓ | ✓ |  | 
| 待处理的游戏服务器容器组 | ✓ | ✓ |  | 
| 终止游戏服务器容器组 | ✓ | ✓ |  | 
| 替换了不健康的游戏服务器容器组 | ✓ | ✓ |  | 
| 容器 CPU 利用率 | ✓ | ✓ | ✓ | 
| 按模式划分的容器 CPU 使用率（内核、用户、系统） |  |  | ✓ | 
| 容器 CPU 预留 | ✓ | ✓ |  | 
| 容器内存利用率 | ✓ | ✓ | ✓ | 
| 容器内存预留 | ✓ | ✓ | ✓ | 
| 容器内存限制和最大使用量 |  |  | ✓ | 
| 容器网络 in/out （速率） | ✓ | ✓ | ✓ | 
| 容器网络数据包 in/out |  |  | ✓ | 
| 容器网络错误和数据包丢失 |  |  | ✓ | 
| 容器存储 read/write 字节 | ✓ | ✓ | ✓ | 
| ECS 任务 CPU 使用率（总计，系统） |  |  | ✓ | 
| 已使用和预留 ECS 任务内存 |  |  | ✓ | 
| ECS 任务网络速率 (rx、tx) |  |  | ✓ | 
| ECS 任务存储 read/write 字节数 |  |  | ✓ | 

#### 玩家网关指标
<a name="player-gateway-metrics-table"></a>

玩家网关流量和限制指标，适用于使用玩家网关的托管容器舰队。玩家网关指标是独有的 CloudWatch （并且在控制台中作为 CloudWatch 小部件可见）。


**玩家网关指标可用性**  

| 指标 | 控制台 | CloudWatch | 遥测 | 
| --- | --- | --- | --- | 
| 玩家网关数据包 in/out | ✓ | ✓ |  | 
| 玩家网关字节 in/out | ✓ | ✓ |  | 
| 玩家网关数据包已被限制 | ✓ | ✓ |  | 
| 玩家网关字节数已被限制 | ✓ | ✓ |  | 
| 玩家网关玩家会话 | ✓ | ✓ |  | 

#### 游戏会话队列指标
<a name="queue-metrics-table"></a>

游戏会话放置队列的指标。队列指标是独有的 CloudWatch （并在控制台中以 CloudWatch 小组件的形式显示在队列的 “指标” 选项卡上）。


**队列指标可用性**  

| 指标 | 控制台 | CloudWatch | 遥测 | 
| --- | --- | --- | --- | 
| 平均等待时间 | ✓ | ✓ |  | 
| 队列深度 | ✓ | ✓ |  | 
| 游戏会话已放置 | ✓ | ✓ |  | 
| 第一选择不可行 | ✓ | ✓ |  | 
| 容量不足的首选 | ✓ | ✓ |  | 
| 最低延迟放置 |  | ✓ |  | 
| 最低定价 |  | ✓ |  | 
| 已开始投放 | ✓ | ✓ |  | 
| 投放成功 | ✓ | ✓ |  | 
| 投放已取消 | ✓ | ✓ |  | 
| 投放失败 | ✓ | ✓ |  | 
| 展示位置已超时 | ✓ | ✓ |  | 

#### FlexMatch 配对指标
<a name="matchmaking-metrics-table"></a>

 FlexMatch 配对配置和规则集的指标。配对指标是独有的 CloudWatch （并在控制台中作为配对配置的 “指标” 选项卡上的 CloudWatch 小部件可见）。


**配对指标可用性**  

| 指标 | 控制台 | CloudWatch | 遥测 | 
| --- | --- | --- | --- | 
| 当前门票 | ✓ | ✓ |  | 
| 门票开始了 | ✓ | ✓ |  | 
| 门票失败了 | ✓ | ✓ |  | 
| 门票已超时 | ✓ | ✓ |  | 
| 玩家已开始 | ✓ | ✓ |  | 
| 已创建匹配项 | ✓ | ✓ |  | 
| 比赛已接受 | ✓ | ✓ |  | 
| 比赛被拒绝 | ✓ | ✓ |  | 
| 已放置火柴 | ✓ | ✓ |  | 
| 比赛接受超时 | ✓ | ✓ |  | 
| 配对搜索时间 | ✓ | ✓ |  | 
| 是时候配对了 | ✓ | ✓ |  | 
| 是时候取消门票了 | ✓ | ✓ |  | 
| 是时候成功购票了 | ✓ | ✓ |  | 
| 规则评估已通过 |  | ✓ |  | 
| 规则评估失败 |  | ✓ |  | 

#### 选择合适的监控源
<a name="monitoring-source-selection"></a>

根据具体需求选择监控方法：
+ **使用服务器遥测指标**来监控来自游戏服务器的全面性能数据，并发出特定于游戏的自定义指标。这些指标可提供所有游戏引擎和服务器 SDK 的服务器性能、网络活动、内存使用情况及计时数据的详细见解。您可针对游戏事件、业务逻辑性能和特定于应用程序的数据点定义自定义指标。所有控制面板均可完全自定义，您可以创建自定义 Prometheus 查询，从收集的数据中获取更多指标。有关更多信息，请参阅 [使用服务器遥测指标进行监控](monitoring-gamelift-servers-metrics.md)。
+ **使用 Amazon GameLift Servers 控制台**实现实例集管理、容量规划和一般运营监督。该控制台提供实例集运行状况与玩家活动的集成视图。有关更多信息，请参阅 [使用 Amazon GameLift Servers 管理游戏托管资源](gamelift-console-intro.md)。
+ **使用 Amazon CloudWatch** 进行自动监控、警报以及与其他 AWS 服务的集成。 CloudWatch 启用自定义仪表板和基于警报的自动化。有关更多信息，请参阅 [监控 亚马逊 GameLift 服务器 与亚马逊合作 CloudWatch](monitoring-cloudwatch.md)。
+ **使用 [Amazon Managed Service for Prometheus](https://docs.aws.amazon.com/prometheus/latest/userguide/what-is-Amazon-Managed-Service-Prometheus.html)** 实现高性能指标收集与存储，并支持 PromQL 查询功能。Prometheus 为服务器遥测指标提供可扩展的时间序列数据存储。
+ **使用 [Amazon Managed Grafana](https://docs.aws.amazon.com/grafana/latest/userguide/what-is-Amazon-Managed-Service-Grafana.html)** 实现高级可视化和完全可自定义的控制面板管理。Grafana 提供您可以自定义和扩展的 GameLift 预建仪表板，还支持创建包含多个数据源的完全自定义的仪表板。您可以构建自定义查询和可视化工具，以追踪游戏中任何重要的指标。
+ **使用多个来源**实现全面监控。将控制台监督、服务器遥测指标和自动化警报结合起来，全面了解游戏托管基础设施。

要获得其他监控功能，还可使用以下方法：
+ [使用记录 Amazon GameLift Servers API 调用 AWS CloudTrail](logging-using-cloudtrail.md) – 跟踪 API 调用和相关事件，满足审计与合规性要求。
+ [在 Amazon GameLift Servers 中记录服务器消息](logging-server-messages.md) – 捕获自定义服务器消息和游戏会话日志。

### 主题
<a name="monitoring-topics"></a>
+ [使用 Amazon GameLift Servers 管理游戏托管资源](gamelift-console-intro.md)
+ [监控 亚马逊 GameLift 服务器 与亚马逊合作 CloudWatch](monitoring-cloudwatch.md)
+ [使用服务器遥测指标进行监控](monitoring-gamelift-servers-metrics.md)
+ [使用记录 Amazon GameLift Servers API 调用 AWS CloudTrail](logging-using-cloudtrail.md)
+ [在 Amazon GameLift Servers 中记录服务器消息](logging-server-messages.md)