連載
» 2014年04月30日 18時00分 公開

LINE Developer Conferenceまとめリポート(中編):LINEゲームの躍進を支えるゲームプラットフォームの概要とEsper CEPの活用例 (2/2)

[益田昇,@IT]
前のページへ 1|2       

ゲームアプリでのモニタリングの重要性

 大量のユーザーが同時接続するゲームアプリを安全かつ快適に動作させ続けるには、さまざまなモニタリングをリアルタイムに行う必要がある。LINEゲームプラットフォームでは、システム周りのモニタリングだけではなく、アプリやサービスに関連するモニタリングもリアルタイムで行っている。

 まずシステムモニタリングでは、CPU、メモリ、ディスク、ロードアベレージ、ネットワーク、プロセスなどのモニタリング情報をホストごとにグラフィカルに参照できるようにしている。

システムモニタリングの例

 サービスモニタリングは、利用者からの問い合わせはもちろん、利用者によるスコアやデータの改ざんなどの不正行為を素早く検知し、LINEやメールを使ってプラットフォーム開発メンバーやサービス運営者にリアルタイムで通知する仕組みとしている。これによって、わずかな異常も早期に見つけ出し、大きな問題になる前に、障害を取り除くことができる。

 アプリモニタリングでは、アプリログや、クライアントから送られてきたクラッシュログを、ログレベル別、サービス別、ホスト別に単位時間ごとに検索できる。また、ホスト単位でそれぞれAPIが提供されるため、APIごとに接続状態と応答時間をリアルタイムに検索できるAPIヘルスチェック機能を備えている。

アプリモニタリングの例

リアルタイムモニタリングを支える「Esper」

 LINEゲームプラットフォームでは、今年刷新したシステムからオープンソースの「Esper」を導入し、本格的なリアルタイムモニタリングを実現している。

 Esperは、連続/複合的なイベントをSQLに似たEPL言語を使って、リアルタイムに処理できるJavaベースの複合イベント処理エンジン。スマートフォンなどの端末やSDKから送られてくるインプットやイベントを、EPLによってフィルタリングし、その結果をデータベースやメッセージ、ダッシュボードなどへリアルタイムに出力する。イベントの形式は、Javaオブジェクト、マップ、オブジェクトアレイ、XMLをサポートする。

Esperによるイベント処理の流れ

 下図は、特定のゲームに同時接続する利用者数をEsperを使ってリアルタイムにモニタリングした結果を、時系列でグラフ化したテスト用のサンプルだ。

ゲームへの同時接続数をEsperで計測したグラフのサンプル

 正常であれば、グラフの線は横方向にほぼ一直線に、上下にあまり大きくブレることもなく伸びていく。企業の昼休み時である平日お昼の時間帯や、ゲームのイベント時に開催案内をプッシュした際に、接続数が一時的に増加することもあるが、これらは事前に想定できる。しかし、図のオレンジ色や赤色の線や点で示したように、接続者数が急激に減少しているとしたら、何らかの問題が発生して接続できなくなっていることが考えられる。

 下図は、上記のサンプルを例に、Esperにおける5分間のRTA(Real Time Access)イベント処理の流れとEPLの記述例を示したものだ。

Esperのイベント処理の流れとEPLの記述例

 ここではまず、クライアント端末から、アプリを識別するためのIDやOS、リージョン、暗号化されたユーザー情報(userHash)などをイベント(AccessEvent)としてWebサーバー経由でEsperエンジンへ送る。そして、Esperエンジン側で5分(300 sec)おきにセレクト(図右上の「EPL1」参照)し、結果をListenerに登録してRDBにアウトプットする。

 ここで得られた集計結果をイベント(timedRtaEvent)として、EPLのmatch_recognise機能を使ってゲームアプリのアクセス数の情報を加え、その結果をListenerに登録してアウトプットする(図右下の「EPL2」参照)。

 下図は、そのアウトプットの結果だ。

Esperによるモニタリングテストのアウトプット結果

 中央の赤文字の部分で、メールアプリが異常値を示し、それをEPL2に登録したSubscriberが検知して警報(Warning)を発していることが分かる。これらの一連のモニタリング処理がリアルタイムで行われている。

Esper活用の課題と可能性

LINE 開発2センター LINEゲーム開発1室 堀上裕之氏

 堀上氏は講演の最後に、Esper活用の課題と可能性を紹介した。現在、バックエンドシステムのEsperノードでは、毎秒1万以上という膨大なイベントを処理している。従って、「今後のゲーム利用者の増大に対応するために、イベントごとにEsperノードを分けて、処理を分散させることを検討している」(堀上氏)という。

 応用の可能性については、まず「複数のゲームにおいて、何らかのイベントをクリアした条件がリアルタイムでマッチングした場合にプレゼントを贈る」というようなクロスプロモーションでの活用が考えられる。

 また、「ゲーム利用者によるスコア改ざんのような不正行為などをリアルタイムに監視する」といった処理にも応用できるとしている。

次回は、LINEのトップエンジニアが語る開発の裏舞台

 次回は、「LINE Developer Conference」の締めくくりのイベントとして開催された公開ディスカッション「Fire Side Chat」の模様をお届けする。LINE社内で中心的な役割を担うトップエンジニアが一同に介し、苦労話や失敗談など、LINE開発の裏舞台を披露したので、お楽しみに。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

編集部からのお知らせ

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。