system.status

概要

system.status コマンドは、クラスタの現在の状態を返します。

APIの形式

HTTP

リクエスト先
(ドキュメントルート)/droonga/system/status
リクエストメソッド
GET
リクエストのURLパラメータ
なし。
リクエストのbody
なし。
レスポンスのbody
レスポンスメッセージ

REST

対応していません。

Fluentd

形式
Request-Response型。コマンドに対しては必ず対応するレスポンスが返されます。
リクエストの type
system.status
リクエストの body
なし。
レスポンスの type
system.status.result

パラメータの構文

このコマンドはパラメータを取りません。

使い方

このコマンドは各ノードの死活情報を出力します。 例:

{
  "type" : "system.status",
  "body" : {}
}

=> {
     "type" : "system.status.result",
     "body" : {
       "nodes": {
         "192.168.0.10:10031/droonga": {
           "status": "active"
         },
         "192.168.0.11:10031/droonga": {
           "status": "dead"
         }
       },
       "reporter": "192.168.0.10:49707/droonga @ 192.168.0.10:10031/droonga"
     }
   }

レスポンス

このコマンドは以下のようなハッシュを body200statusCode としたレスポンスを返します。以下はその一例です。。

{
  "nodes" : {
    "<1番目のノードの識別子>" : {
      "status" : "<ノードの死活状態>"
    },
    "<2番目のノードの識別子>" : { ... },
    ...
  },
  "reporter": "<報告者の内部識別名> @ <報告者の識別名>"
}
nodes
クラスタ内のノードの情報を含むハッシュ。 ハッシュのキーは、catalog.json で定義された各ノードの識別子(形式は ホスト名:ポート番号/タグ)です。 ハッシュの値は対応するノードのステータス情報を表し、以下の情報を含んでいます:
status
そのノードの死活状態を示す文字列。 以下のいずれかの値を取ります:
  • active: ノードは動作していて、サービスを提供している。 メッセージはそのノード宛に通常通り配送される。
  • inactive: ノードは動作しているが、一時的にサービスから外れている。 メッセージはそのノード宛にはすぐには配送されない事がある。 具体的には、読み込みのみのメッセージ(検索リクエストなど)は全く配送されない。 データベースへの変更を伴うメッセージ(addなど)は溜め込まれて、ノードの状態がactiveに復帰した後に配送される。
  • dead: ノードは永続的に停止している。例えば、サービスが停止しているなど。

これらのステータスは相対的なもので、ノード同士がお互いの状態を個別に認識して報告します。 例えば、異なるロールを持った2つのノードは、お互いに自分をactiveと認識し、相手をinactiveと認識する場合があります。

reporter
どのノードが結果を返したかを示す文字列。 この情報は、他のノードの状態を間違って認識しているおかしなノードがないかを調べるのに役立ちます。

エラーの種類

このコマンドは一般的なエラーを返します。