使用可能なメトリクス
メトリクスは、3 つのカテゴリに分類されます。
-
自動的に収集されるメトリクス
-
SDK が提供するメトリクス
-
カスタムメトリクス
自動メトリクス収集
これらのメトリクスにはコードの変更は必要ありません。
インスタンスメトリクス
| メトリクスタイプ | 説明 | ユースケース |
|---|---|---|
| CPU | インスタンスあたりの使用率 | リソースのモニタリング |
| メモリ | 物理メモリの使用量と使用率 | 容量プランニング |
| ネットワーク I/O | 送受信されたバイトとパケット | 接続の正常性 |
| ディスク I/O | 読み取り/書き込みオペレーションとスループット | ストレージパフォーマンス |
フリートメトリクス
| メトリクスタイプ | 説明 | ユースケース |
|---|---|---|
| アクティブなインスタンス | 実行中のインスタンスの数 | フリートスケーリング |
| ゲームセッション | アクティブセッションと使用可能なセッション | 容量管理 |
| クラッシュしたゲームセッション | クラッシュしたゲームセッション | エラーモニタリング |
SDK が提供するメトリクス
コードに SDK 関数呼び出しが必要です。
サーバータイミングメトリクス
| メトリクス | 説明 | 実装 |
|---|---|---|
| サーバー差分時間 | 現在のサーバーティックと以前のサーバーティックの間の時間の差。サーバーのティックレートの整合性を測定します。 | GetDeltaTime() を呼び出す |
| サーバーのティックレート | サーバーが更新を処理する回数 (1 秒あたり) を示します | 自動計算 |
| サーバーのティック時間 | サーバーが 1 つのティックまたは更新を処理するのにかかる時間 | 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 によって自動的に収集されます。
プロセスごとのダッシュボード組織
プロセスごとのメトリクスは、次の 2 つの特殊なダッシュボードで使用できます。
-
[サーバーパフォーマンス] ダッシュボード - サーバータイミング(デルタタイム、ティックレート、ティック時間、ワールドティック時間)、ネットワークメトリクス(接続、I/O バイト/パケット、パケット損失)、メモリ使用率、個々のゲームセッションの CPU 使用率が含まれます。
-
[インスタンスパフォーマンス] ダッシュボード - インスタンスリソースの消費に最も寄与するプロセスを特定するのに役立つ [メモリ消費量が多い上位 N のゲームセッション] テーブルと [CPU 消費量が多い上位 N のゲームセッション] テーブルを備えています。ゲームセッションリンクをクリックすると、詳細なメトリクスをより詳細に調査できます。
プロセス毎のメトリクスのユースケース
プロセス/ゲームセッション毎のメトリクスは、次のモニタリングシナリオをサポートします。
-
詳細なパフォーマンス調査の詳細 - 特定のプロセスまたはゲームセッションが原因でホスト/インスタンスのパフォーマンスが低下した場合、プロセス毎のメトリクスは、CPU/メモリ消費が高い上位Nのゲームセッションテーブルを通じて問題の原因となったプロセスを特定するのに役立ちます。
-
ゲームサーバーのクラッシュ調査 - ゲームセッションがクラッシュすると、これらのメトリクスは、クラッシュの原因がメモリ不足、CPU 過負荷、またはネットワーク帯域幅の問題であるかどうかを判断するのに役立ちます。
-
プレイヤーが報告した問題の調査 - プレイヤーがゲームプレイ中に遅延や中断を報告すると、プロセス毎のメトリクスは CPU、メモリ、ネットワーク、ティック時間、またはワールド更新時間のボトルネックを特定するのに役立ちます。
-
さまざまなビルドでのパフォーマンスの変化を特定する - ティック時間、ティックレート、ワールド更新時間メトリクスにより、開発者はさまざまなサーバービルドにおけるゲームパフォーマンスの変化を測定できます。
-
ゲームプレイの遅延と速度を検出する - ティック時間、ティックレート、ワールド更新時間のメトリクスは、サーバーがゲームを更新する速度を反映し、カスタマーエクスペリエンスに直接影響します。
-
ベンチマーク - プレイヤー数、ゲームモード、その他の変数などの要因に基づいて、さまざまなゲームシナリオがサーバーのパフォーマンスにどのように影響するかを特定します。
ダッシュボードの整理
メトリクスは、さまざまなモニタリングシナリオ用に Amazon Managed Grafana の特殊なダッシュボードに整理されています。使用可能なダッシュボードは、フリートタイプによって異なります。
EC2 フリートダッシュボード
-
[EC2 フリートの概要] ダッシュボード - 高レベルのフリート容量、スケーリングインサイト、同時接続プレイヤー (CCU)、インスタンス、プレイヤー容量、クラッシュしたゲームセッション。
-
[インスタンス概要] ダッシュボード - 平均 CPU、メモリ、ネットワーク、ディスク使用率など、すべてのインスタンスで集約されたホストレベルのメトリクス。
-
[インスタンスパフォーマンス] ダッシュボード - リソース集約型プロセスを識別するための [メモリ消費量が多い上位 N のゲームセッション] テーブルと [CPU 消費量が多い上位 N のゲームセッション] テーブルを持つ個々のインスタンスの詳細なメトリクス。
-
[サーバーパフォーマンス] ダッシュボード (EC2) - EC2 インスタンス上の個々のゲームセッションのゲームループタイミング、ネットワークパフォーマンス、メモリ、CPU メトリクス。
コンテナフリートダッシュボード
-
[コンテナフリートの概要] ダッシュボード - CPU 予約、メモリ使用率、コンテナグループのステータスなど、コンテナフリートのリソース使用率の高レベルの概要。
-
コンテナパフォーマンスダッシュボード - CPU 使用率、メモリ使用率、ネットワーク I/O、ストレージパフォーマンスなど、特定の ECS タスク内の個々のコンテナの詳細なメトリクス。
-
[サーバーパフォーマンス] ダッシュボード (コンテナ) - コンテナ内の個々のゲームセッションのゲームループタイミング、ネットワークパフォーマンス、メモリ、CPU メトリクス。
ダッシュボードの詳細な情報と使用手順については、「ダッシュボードの整理と使用状況」を参照してください。