class Gs2::Watch::Client

GS2-Watch クライアント

@author Game Server Services, Inc.

Public Class Methods

ENDPOINT(v = nil) click to toggle source

デバッグ用。通常利用する必要はありません。

# File lib/gs2/watch/Client.rb, line 22
def self.ENDPOINT(v = nil)
  if v
    @@ENDPOINT = v
  else
    return @@ENDPOINT
  end
end
new(region, gs2_client_id, gs2_client_secret) click to toggle source

コンストラクタ

@param region [String] リージョン名 @param gs2_client_id [String] GSIクライアントID @param gs2_client_secret [String] GSIクライアントシークレット

Calls superclass method
# File lib/gs2/watch/Client.rb, line 17
def initialize(region, gs2_client_id, gs2_client_secret)
  super(region, gs2_client_id, gs2_client_secret)
end

Public Instance Methods

create_alarm(request) click to toggle source

アラームを作成

GS2 内のスタティスティックスに対して監視を行うことができます。
クオータの消費量に対して閾値を設定し、閾値を超えた際に通知を出すことができます。

@param request [Array]

* name => アラーム名
* description => 説明文
* service => 監視対象サービス
* serviceId => 監視対象サービスID
* operation => 監視対象オペレーション
* expression => 演算子(>=, >, <, <=)
* threshold => 閾値
* notificationId => 通知ID

@return [Array]

* item
  * alarmId => アラームID
  * ownerId => オーナーID
  * name => アラーム名
  * description => 説明文
  * service => 監視対象サービス
  * serviceId => 監視対象サービスID
  * operation => 監視対象オペレーション
  * expression => 演算子
  * threshold => 閾値
  * notificationId => 通知ID
  * createAt => 作成日時
  * updateAt => 更新日時
  * status => ステータス
  * lastStatusChangeAt => 最終ステータス更新日時
# File lib/gs2/watch/Client.rb, line 94
def create_alarm(request)
  if not request; raise ArgumentError.new(); end
  body = {}
  if request.has_key?('name'); body['name'] = request['name']; end
  if request.has_key?('description'); body['description'] = request['description']; end
  if request.has_key?('service'); body['service'] = request['service']; end
  if request.has_key?('serviceId'); body['serviceId'] = request['serviceId']; end
  if request.has_key?('operation'); body['operation'] = request['operation']; end
  if request.has_key?('expression'); body['expression'] = request['expression']; end
  if request.has_key?('threshold'); body['threshold'] = request['threshold']; end
  if request.has_key?('notificationId'); body['notificationId'] = request['notificationId']; end
  query = {}
  return post(
        'Gs2Watch', 
        'CreateAlarm', 
        @@ENDPOINT, 
        '/alarm',
        body,
        query);
end
delete_alarm(request) click to toggle source

アラームを削除

@param request [Array]

* alarmName => アラーム名
# File lib/gs2/watch/Client.rb, line 195
def delete_alarm(request)
  if not request; raise ArgumentError.new(); end
  if not request.has_key?('alarmName'); raise ArgumentError.new(); end
  if not request['alarmName']; raise ArgumentError.new(); end
  query = {}
  return delete(
        'Gs2Watch', 
        'DeleteAlarm', 
        @@ENDPOINT, 
        '/alarm/' + request['alarmName'],
        query);
end
describe_alarm(pageToken = nil, limit = nil) click to toggle source

アラームリストを取得

@param pageToken [String] ページトークン @param limit [Integer] 取得件数 @return [Array]

* items
  [Array]
    * alarmId => アラームID
    * ownerId => オーナーID
    * name => アラーム名
    * description => 説明文
    * service => 監視対象サービス
    * serviceId => 監視対象サービスID
    * operation => 監視対象オペレーション
    * expression => 演算子
    * threshold => 閾値
    * notificationId => 通知ID
    * createAt => 作成日時
    * updateAt => 更新日時
    * status => ステータス
    * lastStatusChangeAt => 最終ステータス更新日時
* nextPageToken => 次ページトークン
# File lib/gs2/watch/Client.rb, line 52
def describe_alarm(pageToken = nil, limit = nil)
  query = {}
  if pageToken; query['pageToken'] = pageToken; end
  if limit; query['limit'] = limit; end
  return get(
        'Gs2Watch', 
        'DescribeAlarm', 
        @@ENDPOINT, 
        '/alarm',
        query);
end
describe_alarm_event(request, pageToken = nil, limit = nil) click to toggle source

アラームイベントリストを取得

過去にアラームが発生した履歴などを確認できます。

@param request [Array]

* alarmName => アラーム名

@param pageToken [String] ページトークン @param limit [Integer] 取得件数 @return [Array]

* items
  [Array]
    * eventId => アラームイベントID
    * alarmId => アラームID
    * type => イベントの種類
    * eventAt => イベント発生日時
* nextPageToken => 次ページトークン
# File lib/gs2/watch/Client.rb, line 224
def describe_alarm_event(request, pageToken = nil, limit = nil)
  if not request; raise ArgumentError.new(); end
  if not request.has_key?('alarmName'); raise ArgumentError.new(); end
  if not request['alarmName']; raise ArgumentError.new(); end
  query = {}
  if pageToken; query['pageToken'] = pageToken; end
  if limit; query['limit'] = limit; end
  return get(
      'Gs2Watch',
      'DescribeAlarmEvent',
      @@ENDPOINT,
      '/alarm/' + request['alarmName'] + '/event',
      query);
end
describe_operation(request) click to toggle source

オペレーション名リストを取得

アラームを設定する際に指定できるオペレーションの一覧を取得できます。

@param request [Array]

* serviceName => サービス名

@return [Array] オペレーション名リスト

# File lib/gs2/watch/Client.rb, line 262
def describe_operation(request)
  if not request; raise ArgumentError.new(); end
  if not request.has_key?('serviceName'); raise ArgumentError.new(); end
  if not request['serviceName']; raise ArgumentError.new(); end
  query = {}
  result = get(
      'Gs2Watch',
      'DescribeOperation',
      @@ENDPOINT,
      '/service/' + request['serviceName'] + '/operation',
      query);
  return result['items'];
end
describe_service() click to toggle source

サービス名リストを取得

アラームを設定する際に指定できるサービスの一覧を取得できます。

@return [Array] サービス名リスト

# File lib/gs2/watch/Client.rb, line 244
def describe_service()
  query = {}
  result = get(
      'Gs2Watch',
      'DescribeService',
      @@ENDPOINT,
      '/service',
      query);
  return result['items'];
end
get_alarm(request) click to toggle source

アラームを取得

@param request [Array]

* alarmName => アラーム名

@return [Array]

* item
  * alarmId => アラームID
  * ownerId => オーナーID
  * name => アラーム名
  * description => 説明文
  * service => 監視対象サービス
  * serviceId => 監視対象サービスID
  * operation => 監視対象オペレーション
  * expression => 演算子
  * threshold => 閾値
  * notificationId => 通知ID
  * createAt => 作成日時
  * updateAt => 更新日時
  * status => ステータス
  * lastStatusChangeAt => 最終ステータス更新日時
# File lib/gs2/watch/Client.rb, line 135
def get_alarm(request)
  if not request; raise ArgumentError.new(); end
  if not request.has_key?('alarmName'); raise ArgumentError.new(); end
  if not request['alarmName']; raise ArgumentError.new(); end
  query = {}
  return get(
      'Gs2Watch',
      'GetAlarm',
      @@ENDPOINT,
      '/alarm/' + request['alarmName'],
      query);
end
get_metric(request) click to toggle source

メトリクスを取得

過去のサービスの利用状況を取得します。

@param request [Array]

* serviceId => サービスID
* operation => オペレーション名
* begin => メトリクス取得開始日時(unixepoch)
* end => メトリクス取得終了日時(unixepoch)
* allowLongTerm => 7日以上の期間のデータを取得することを許可するか(OPTIONAL)
* serviceId => サービスID

@return [Array]

* items
  [Array]
    * timestamp => タイムスタンプ(YYYY-MM-DD HH:mm:SS)
    * value => 値
# File lib/gs2/watch/Client.rb, line 292
def get_metric(request)
  if not request; raise ArgumentError.new(); end
  if not request.has_key?('serviceId'); raise ArgumentError.new(); end
  if not request['serviceId']; raise ArgumentError.new(); end
  if not request.has_key?('operation'); raise ArgumentError.new(); end
  if not request['operation']; raise ArgumentError.new(); end
  query = {}
  if request.has_key?('begin'); query['begin'] = request['begin']; end
  if request.has_key?('end'); query['end'] = request['end']; end
  if request.has_key?('allowLongTerm'); query['allowLongTerm'] = request['allowLongTerm']; end
  return get(
      'Gs2Watch',
      'GetMetric',
      @@ENDPOINT,
      '/metric/' + request['serviceId'] + '/' + request['operation'],
      query);
end
update_alarm(request) click to toggle source

アラームを更新

@param request [Array]

* alarmName => アラーム名
* description => 説明文
* expression => 演算子(>=, >, <, <=)
* threshold => 閾値
* notificationId => 通知ID

@return [Array]

* item
  * alarmId => アラームID
  * ownerId => オーナーID
  * name => アラーム名
  * description => 説明文
  * service => 監視対象サービス
  * serviceId => 監視対象サービスID
  * operation => 監視対象オペレーション
  * expression => 演算子
  * threshold => 閾値
  * notificationId => 通知ID
  * createAt => 作成日時
  * updateAt => 更新日時
  * status => ステータス
  * lastStatusChangeAt => 最終ステータス更新日時
# File lib/gs2/watch/Client.rb, line 172
def update_alarm(request)
  if not request; raise ArgumentError.new(); end
  if not request.has_key?('alarmName'); raise ArgumentError.new(); end
  if not request['alarmName']; raise ArgumentError.new(); end
  body = {}
  if request.has_key?('description'); body['description'] = request['description']; end
  if request.has_key?('expression'); body['expression'] = request['expression']; end
  if request.has_key?('threshold'); body['threshold'] = request['threshold']; end
  if request.has_key?('notificationId'); body['notificationId'] = request['notificationId']; end
  query = {}
  return put(
      'Gs2Watch',
      'UpdateAlarm',
      @@ENDPOINT,
      '/alarm/' + request['alarmName'],
      body,
      query);
end