GS2 Blog

Game Server Services(https://gs2.io/) の最新情報をお届けします

パフォーマンスチューニング用のツール提供を開始しました

はじめに

通信時間を最適化する一番のポイントは通信処理の並列化です。
依存関係のないデータ取得ではなるべく並列化することで、通信の待ち時間を最適化できます。

ただ、今の実装が最適化できているかどうかを正確に判断するのは困難が伴います。

追加された機能

GS2-Log のアクセスログAPM(Application Performance Monitoring) で可視化するためのツールとして GS2-Telemetry をオープンソースで公開しました。
GS2-Telemetry は Open Telemetry というオープンなテレメトリデータ収集プロトコルに則って動作し、さまざまなオープンソースを使ってテレメトリを可視化できます。

リポジトリ

github.com

GS2-Telemetry に GS2-Log からデータを取得する期間などのパラメータを指定して起動すると、
指定したホスト・ポートに対して Open Telemetry プロトコルに基づいてテレメトリデータに変換し、送信します。

Open Telemetry サーバーであり、ビジュアライズツール機能を持つ Jaeger でデータを受け止めると、以下のようにユーザーIDごとにテレメトリが分類されます。

任意のユーザーを選択することで、そのユーザーの通信履歴をシーケンサーのようなビジュアルで可視化できます。

いつ頃どういったAPIを呼び出し、処理にどれだけ時間がかかったかをわかるだけでなく
GS2-Exchange で交換処理を実行した後、各マイクロサービスでアイテムの消費や入手といった処理がどいった時系列で発生したかをツリー形式で整理された状態で閲覧できます。

この機能はうまく活用すれば、パフォーマンスチューニングだけでなく開発中の動作確認も容易に行えるようなるはずです。

(C) Game Server Services, Inc.