监控 Amazon GameLift Servers
监控是保持 Amazon GameLift Servers 和您的其他 AWS 解决方案的可靠性、可用性和性能的重要部分。Amazon GameLift Servers 指标有三个主要用途:监控系统运行状况和设置警报;跟踪游戏服务器的性能和使用情况;以及使用手动或自动扩展功能管理容量。
AWS 提供以下监控工具来监控 Amazon GameLift Servers、在出现错误时进行报告并在适当的时候自动采取措施:
-
Amazon GameLift Servers 控制台 – 使用图形界面管理您的 Amazon GameLift Servers 资源并跟踪游戏托管活动。
-
服务器遥测指标 – Amazon GameLift Servers 支持您通过 SDK 和插件集成,直接从游戏服务器发送自定义指标。您可以定义并跟踪自己的游戏特定指标以及内置的性能、网络、内存和计时数据。所有指标都可以发布到 Amazon Managed Service for Prometheus,并使用完全可自定义的控制面板在 Amazon Grafana 中进行监控。您也可以发布到 Amazon CloudWatch,以便与其他 AWS 服务集成。遥测系统可完全自定义,除内置指标外,您还可以创建自定义 Prometheus 查询,以获取更多指标。有关特定技术栈的实施指南,请参阅使用服务器遥测指标进行监控。
-
Amazon CloudWatch – 您可以实时监控 Amazon GameLift Servers 指标以及基于 AWS 服务运行的其他 AWS 资源和应用程序的指标。Amazon CloudWatch 提供了一套监控功能,包括用于创建自定义控制面板的工具和设置警报以在指标达到指定阈值时进行通知或采取措施的功能。
-
AWS CloudTrail - 捕获由您的 AWS 账户为 Amazon GameLift Servers 及其他 AWS 服务发出或代表它们发出的所有 API 调用和相关事件。数据将作为日志文件传送到您指定的 Amazon S3 存储桶。您可以标识哪些用户和账户调用了 AWS、发出调用的源 IP 地址以及调用的发生时间。
-
游戏会话日志 – 您可以将游戏会话的自定义服务器消息输出到存储在 Amazon S3 中的日志文件中。
跨监控源的指标比较
Amazon GameLift Servers 通过三个主要来源提供指标:Amazon GameLift Servers 控制台的实例集活动指标、服务器遥测指标以及 Amazon CloudWatch 的 Amazon GameLift Servers 指标。了解每个来源的重叠情况和独特功能,可以帮助您根据需要选择合适的监控方法。
按来源划分的指标可用性
下表按指标类别显示了不同监控来源可用的指标。
实例指标
实例集容量和运行状况监控的实例级指标:
| 指标 | 控制台 | CloudWatch | 遥测 |
|---|---|---|---|
| 活动实例 | ✓ | ✓ | ✓ |
| 空闲实例 | ✓ | ✓ | ✓* |
| 空闲实例所占百分比 | ✓ | ✓ | ✓* |
| 预期实例数 | ✓ | ✓ | |
| 最大实例数 | ✓ | ✓ | |
| 最小实例数 | ✓ | ✓ | |
| CPU 使用率 | ✓ | ✓ | |
| 网络输入/输出量 | ✓ | ✓ | |
| 磁盘/存储空间读/写量 | ✓ | ✓ | |
| 实例中断次数 | ✓ | ✓ | |
| 实例回收次数 | ✓ | ✓ | |
| 运行不正常的实例替换次数 | ✓ |
*可通过使用遥测数据的自定义 Prometheus 查询获取。
游戏服务器指标
服务器进程和游戏会话指标:
| 指标 | 控制台 | CloudWatch | 遥测 |
|---|---|---|---|
| 有效游戏会话 | ✓ | ✓ | ✓* |
| 激活游戏会话 | ✓ | ✓ | |
| 可用的游戏会话 | ✓ | ✓ | |
| 可用游戏会话所占百分比 | ✓ | ✓ | |
| 并发可激活游戏会话数 | ✓ | ✓ | |
| 游戏会话中断次数 | ✓ | ✓ | |
| 活动服务器进程数 | ✓ | ||
| 运行状况良好的游戏服务器数 | ✓ | ||
| 崩溃的游戏会话数 | ✓ |
*可通过使用遥测数据的自定义 Prometheus 查询获取。
玩家使用情况指标
玩家会话和并发用户指标:
| 指标 | 控制台 | CloudWatch | 遥测 |
|---|---|---|---|
| 当前玩家会话 | ✓ | ||
| 玩家会话激活次数 | ✓ | ||
| 全局并发用户数(CCU) | ✓ | ||
| 位置并发用户数(CCU) | ✓ | ||
| 位置容量 | ✓ |
容器实例集指标
容器特定指标(仅容器实例集在 CloudWatch 中提供):
| 指标 | 控制台 | CloudWatch | 遥测 |
|---|---|---|---|
| 活动容器组数 | ✓ | ✓ | |
| 空闲容器组数 | ✓ | ✓ | |
| 容器 CPU/内存利用率 | ✓ | ✓ | |
| 容器网络流量 | ✓ | ✓ | |
| 容器存储操作次数 | ✓ | ✓ |
选择合适的监控源
根据具体需求选择监控方法:
-
使用服务器遥测指标来监控来自游戏服务器的全面性能数据,并发出特定于游戏的自定义指标。这些指标可提供所有游戏引擎和服务器 SDK 的服务器性能、网络活动、内存使用情况及计时数据的详细见解。您可针对游戏事件、业务逻辑性能和特定于应用程序的数据点定义自定义指标。所有控制面板均可完全自定义,您可以创建自定义 Prometheus 查询,从收集的数据中获取更多指标。有关更多信息,请参阅 使用服务器遥测指标进行监控。
-
使用 Amazon GameLift Servers 控制台实现实例集管理、容量规划和一般运营监督。该控制台提供实例集运行状况与玩家活动的集成视图。有关更多信息,请参阅 使用 Amazon GameLift Servers 管理游戏托管资源。
-
使用 Amazon CloudWatch 实现自动化监控、警报以及与其他 AWS 服务的集成。CloudWatch 支持自定义控制面板和基于警报的自动化操作。有关更多信息,请参阅 使用 Amazon CloudWatch 监控 Amazon GameLift Servers。
-
使用 Amazon Managed Service for Prometheus 实现高性能指标收集与存储,并支持 PromQL 查询功能。Prometheus 为服务器遥测指标提供可扩展的时间序列数据存储。
-
使用 Amazon Managed Grafana 实现高级可视化和完全可自定义的控制面板管理。Grafana 提供预先构建的 GameLift 控制面板,您可对其进行自定义和扩展,同时支持创建使用多个数据来源的完全自定义的控制面板。您可以构建自定义查询和可视化工具,以追踪游戏中任何重要的指标。
-
使用多个来源实现全面监控。将控制台监督、服务器遥测指标和自动化警报结合起来,全面了解游戏托管基础设施。
要获得其他监控功能,还可使用以下方法:
-
使用 AWS CloudTrail 记录 Amazon GameLift Servers API 调用 – 跟踪 API 调用和相关事件,满足审计与合规性要求。
-
在 Amazon GameLift Servers 中记录服务器消息 – 捕获自定义服务器消息和游戏会话日志。