Search:

Search all manuals
Search this manual
Manual
Couchbase Server 1.8 マニュアル
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
8 Couchbase 管理 REST API
Chapter Sections
Chapters

8.2. オペレーション

このセクションでは、Couchbase管理のREST APIの操作について説明します。

Couchbase Webコンソールの起動

厳格にはREST APIではないものも一部ありますが、Couchbase Webコンソールは非常に多くのREST APIエンドポイントを管理や情報収集に利用しています。

Couchbase Webコンソールは一般的なWebブラウザのユーザエージェントでロードおよび実行します。それは、HTMLページ、画像、CSS、およびJavaScriptで構成されています。サポートされるブラウザの一覧については、 システム要件を参照してください。システムの各ノードから部分的なUI階層がCouchbase Webコンソールへ提供されます(ルート"/"へ問い合わせた場合、ユーザエージェントにリダイレクトされます)。Couchbase Webコンソールを起動するには、ブラウザから適切なホストとポートにアクセスします:

GET https://node.in.pool.com/

ブートストラッピング

クライアントは、RESTfulなサービスへのエントリポイントを取得するブートストラップを行う必要があります。ブートストラッピングは以下のリクエストに示すようにプールを探す必要があります。Couchbaseの実装でのURI空間は非常に特別なURIであるように見えるかもしれませんし、ある点ではRPCのようなその他のHTTPメソッドと仕組みを利用したアーキテクチャスタイルに見えるかもしれません。しかし、それはCouchbaseが決めたURIとしての文字列でしかありません。クライアントは適切にRESTfulな処理をすればよく、リソースを表すURI構造について慣例通りであると推定したり、リソースの命名規則について指示を受けることは期待しないでしょう。構造内のさまざまな部分で類似しているため、以下に示す階層は表現上再利用していることに注意してください。

リクエスト

GET /pools
Host: node.in.your.pool.com
Authorization: Basic xxxxxxxxxxxxxxxxxxx
Accept: application/json
X-memcachekv-Store-Client-Specification-Version: 0.1

レスポンス

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: nnn


{
  "implementationVersion": "253",
  "pools" : [
    {
      "name": "Default Pool",
      "uri": "/pools/default",
    },
    {
      "name": "Couchbase kvcaching pool name",
      "uri": "/pools/anotherpool",
    },
    {
      "name": "A pool elsewhere",
      "uri": "https://a.node.in.another.pool.com:4321/pools/default"
    }
  ]
  "uri": "https://node.in.your.pool.com/pools",
  "specificationVersion": [
    "0.1"
  ]
}

システムグループ内で1つのプールのみが分かればよく、それは通常defaultという名前になります。プールを変更してPOSTすると403が返却されます。

実装の"ビルド"番号がimplementation_versionに、サポートされる仕様がspecificationVersionに表示されます。このノードがメンバになれるのは1つのプールだけですが、どのノードも他のプールを認識することができる柔軟性があります。

リクエストのClient-Specification-Versionは省略可能ですが、できれば設定してください。これにより、下位互換性が望まれる場合、クライアントに送信する内容を調整することができます。

ノードのプロビジョニング

ノードをクラスタで使用できるようにするには、いくつかの設定を行う必要があります。具体的には、新しいクラスタを作成する場合、そのクラスタのノードあたりのメモリ割り当てを設定する必要があります。ノードが既存のクラスタに参加するのか、新しいクラスタを起動するかどうかで、ストレージのパスを設定する必要があります。

新規クラスタの作成または既存クラスタへのノードの追加は、プロビジョニングと呼ばれ、いくつかのステップが必要です。ブートストラップ後に次の手順を実行してください。

次のステップは、新しいクラスタが作成されているか、または既存のクラスタに結合されるかどうかによって異なります。新しいクラスタを作成する場合は、次の手順が必要です。

"セキュア"にするため、管理者のユーザ名とパスワードを指定します。ノードが別のクラスタに参加する場合、それはそのクラスターのRESTインターフェースの接続先と、認証情報が必要になります。

ノードのディスクパスを設定する

ノードのリソースはノード上のコントローラを介して設定できます。設定対象のリソースはノード上の永続ファイルのパスです。これは、新しいクラスタを作成、または既存のクラスタにノードを追加する前に設定する必要があります。

リクエスト

POST /nodes/self/controller/settings HTTP/1.1
Host: node.in.your.cluster:8091
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: xx path=/var/tmp/test

レスポンス

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 0

shell> curl -d path=/var/tmp/test http://localhost:8091/nodes/self/controller/settings

クラスタのメモリ割り当ての設定リクエスト

POST /pools/default HTTP/1.1
Host: node.in.your.cluster:8091
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: xx memoryQuota=400

レスポンス

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 0

shell> curl -d memoryQuota=400 http://localhost:8091/pools/default

ノードのユーザ名とパスワードを設定する

任意の時点で行うことができますが、これはノードを新規のクラスタとしてプロビジョニングする際の最後のステップです。パラメータが受理されると、レスポンスは新しいベースURIを示します。クライアントは、この応答に基づいて再びブートストラッピングする場合があります。

リクエストとレスポンス

POST /settings/web HTTP/1.1 Host: node.in.your.cluster:8091 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Authorization: Basic YWRtaW46YWRtaW4= Content-Length: xx username=Administrator&password=letmein&port=8091
HTTP/1.1 200 OK Content-Type: application/json Server: Couchbase Server 1.6.0 Pragma: no-cache Date: Mon, 09 Aug 2010 18:50:00 GMT Content-Type: application/json Content-Length: 39 Cache-Control: no-cache no-store max-age=0 {"newBaseUri":"http://localhost:8091/"}

curl -d username=Administrator -d password=letmein -d port=8091 http://localhost:8091/settings/web

注記

変更しない場合でも、ポート番号を指定する必要があります。

グローバル設定

統計情報を外部に送信するかどうかを設定する

これはすべてのクラスタのグローバル設定です。この値を変更するには、認証が必要です。

リクエスト

POST /settings/stats HTTP/1.1 Host: node.in.your.cluster:8091 Content-Type: application/x-www-form-urlencoded Authorization: Basic YWRtaW46YWRtaW4= Content-Length: 14 sendStats=true

レスポンス

200 OK、400 不正なリクエスト:"sendStats"の値はtrueまたはfalseでなければなりません。401 認証不可

curl -i -u Administrator:letmein -d sendStats=true http://localhost:8091/settings/stats

統計情報を外部に送信するかどうかを取得

これはすべてのクラスタのグローバル設定です。この値を読み取るには認証が必要です。

リクエスト

GET /settings/stats HTTP/1.1 Host: node.in.your.pool.com Authorization: Basic YWRtaW46YWRtaW4= Accept: */*

レスポンス

HTTP/1.1 200 OK Content-Type: application/json Content-Length: nnn

curl -u Administrator:letmein http://localhost:8091/settings/stats

自動フェイルオーバーを有効にするかどうかの設定

このエンドポイントは現在利用できません。

これはすべてのクラスタのグローバル設定です。この値を変更するには、認証が必要です。

設定可能なパラメータは次のとおりです。

リクエスト

POST /settings/autoFailover HTTP/1.1 Host: node.in.your.cluster:8091 Content-Type: application/x-www-form-urlencoded Authorization: Basic YWRtaW46YWRtaW4= Content-Length: 14 enabled=true&timeout=60

レスポンス

200 OK、400不正な要求:"enabled"の値はtrueかfalseでなければいけません。400 不正な要求:"timeout"の値は30以上の整数でなければいけません。401 認証不可

curl -i -u Administrator:letmein -d enabled=true&timeout=60http://localhost:8091/settings/autoFailover

自動フェイルオーバーの設定情報の取得

このエンドポイントは現在利用できません。

これはすべてのクラスタのグローバル設定です。この値を読み取るには認証が必要です。

リクエストとレスポンス

GET /settings/autoFailover HTTP/1.1 Host: node.in.your.pool.com Authorization: Basic YWRtaW46YWRtaW4= Accept: */*
HTTP/1.1 200 OK Content-Type: application/json Content-Length: nnn { "enabled": true, "timeout": 60, "count": 0 }

curl -u Administrator:letmein http://localhost:8091/settings/autoFailover

自動フェイルオーバ回数をリセットする

このエンドポイントは現在利用できません。

これはすべてのクラスタのグローバル設定です。この値を変更するには、認証が必要です。自動的にフェイルオーバされたノードの数をリセットします。パラメータなし

リクエスト

POST /settings/autoFailover/resetCount HTTP/1.1 Host: node.in.your.cluster:8091 Content-Type: application/x-www-form-urlencoded Authorization: Basic YWRtaW46YWRtaW4=

レスポンス

200 OK、 401 認証不可

curl -i -u Administrator:letmein http://localhost:8091/settings/autoFailover/resetCount

電子メール通知を有効にするかどうかの設定

このエンドポイントは現在利用できません。

これはすべてのクラスタのグローバル設定です。この値を変更するには、認証が必要です。

特定のイベントが発生したときにメールを送信します(現在は自動フェールオーバーが原因のイベントのみをサポート)。

設定可能なパラメータは次のとおりです。

リクエスト

POST /settings/alerts HTTP/1.1 Host: node.in.your.cluster:8091 Content-Type: application/x-www-form-urlencoded Authorization: Basic YWRtaW46YWRtaW4= Content-Length: 14 enabled=true&sender=couchbase@localhost&recipients=admin@localhost,membi@localhost&emailHost=localhost&emailPort=25&emailEncrypt=false

レスポンス

200 OK、400不正な要求:エラー情報JSONオブジェクト({"errors": {"key": "error"}})。発生し得るエラーは次のとおりです。

curl -i -u Administrator:letmein -d 'enabled=true&sender=couchbase@localhost&recipients=admin@localhost,membi@localhost&emailHost=localhost&emailPort=25&emailEncrypt=false' http://localhost:8091/settings/alerts

電子メール通知の設定情報の取得

このエンドポイントは現在利用できません。

これはすべてのクラスタのグローバル設定です。この値を読み取るには認証が必要です。

リクエスト

GET /settings/alerts HTTP/1.1 Host: node.in.your.pool.com Authorization: Basic YWRtaW46YWRtaW4= Accept: */*

レスポンス

HTTP/1.1 200 OK Content-Type: application/json Content-Length: nnn { "alerts": [ "auto_failover_node", "auto_failover_maximum_reached" ], "emailServer": { "encrypt": false, "host": "localhost", "pass": "", "port": 25, "user": "" }, "enabled": true, "recipients": [ "user@localhost" ], "sender": "couchbase@localhost" }
curl -u Administrator:letmein http://localhost:8091/settings/alerts

テストメールの送信

このエンドポイントは現在利用できません。

これはすべてのクラスタのグローバル設定です。この値を変更するには、認証が必要です。現在の構成でテストメールを送信します(メールアラートのセクションを参照してください)。

/settings/alertsと同じパラメータを指定します。加えて:subject (文字列)(必須):テスト電子メールのタイトル、body (文字列)(必須):電子メール本文

リクエスト

POST /settings/alerts/sendTestEmail HTTP/1.1 Host: node.in.your.cluster:8091 Content-Type: application/x-www-form-urlencoded Authorization: Basic YWRtaW46YWRtaW4=

レスポンス

200 OK、400 不正な要求、401 認証不可

curl -i -u Administrator:letmein http://localhost:8091/settings/alerts/sendTestEmail -d 'subject=Test+email+from+Couchbase&body=This+email+was+sent+to+you+to+test+the+email+alert+email+server+settings.&enabled=true&recipients=vmx%40localhost&sender=couchbase%40localhost&emailUser=&emailPass=&emailHost=localhost&emailPort=25&emailEncrypt=false&alerts=auto_failover_node%2Cauto_failover_maximum_reached%2Cauto_failover_other_nodes_down%2Cauto_failover_cluster_too_small'

プールの詳細情報を取得

リクエスト

GET /pools/default Host: node.in.your.pool.com Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/json X-memcachekv-Store-Client-Specification-Version: 0.1

レスポンス

HTTP/1.1 200 OK
      Content-Type: application/json
      Content-Length: nnn

{
      "name":"default",
      "nodes":[{


 "hostname":"10.0.1.20",


 "status":"healthy",
      "uptime":"14",
      "version":"1.6.0",
      "os":"i386-apple-darwin9.8.0",
      "memoryTotal":3584844000.0,
      "memoryFree":74972000,
      "mcdMemoryReserved":64,
      "mcdMemoryAllocated":48,
      "ports":{


 "proxy":11213,
      "direct":11212
      },
      "otpNode":"ns_1@node.in.your.pool.com",
      "otpCookie":"fsekryjfoeygvgcd",
      "clusterMembership":"active"
      }],
      "storageTotals":{


"ram":{
      "total":2032558080,
      "used":1641816064

},
      "hdd":{
      "total":239315349504.0,
      "used": 229742735523.0
}
      },
      "buckets":{

 "uri":"/pools/default/buckets"
      },
      "controllers":{
 "ejectNode":{
>

"uri":"/pools/default/controller/ejectNode"
      },
      "addNode":{


 "uri":"/controller/addNode"
      },
      "rebalance":{


 "uri":"/controller/rebalance"
      },
      "failover":{


 "uri":"/controller/failOver"
      },
      "reAddNode":{


 "uri":"/controller/reAddNode"
      },
      "stopRebalance":{


 "uri":"/controller/stopRebalance"
      }
      },
      "rebalanceProgress":{


 "uri":"/pools/default/rebalanceProgress"
      },
      "balanced": true,
      "etag":"asdas123",
      "initStatus":

 "stats":{
      "uri":"/pools/default/stats"
      }
      }

プールはクラスタの詳細情報を表示(前述の通り)。クラスタの属性を定義するさま表示な設定と、クラスタに対し特定のリクエストを送信できる"controllers"の情報を公開します。

バケットの名前が変更され、プールのデフォルトのバケットが何であるかを判別する方法がない可能性があるので、システムは非SASLで非プロキシの"default"という名前のバケットに接続を試みます。それが存在しない場合は、接続が切断されます。

クライアントは"サーバリスト"を作成するために、"default"が返すノードリストに頼ってはいけません。代わりに、ノードリストを取得するためには特定のバケットに対しHTTP GETリクエストを発行しなければなりません。

この"controllers"は、x-www-form-urlencoded パラメータを受け取り、次の表に示す機能を実行します:

表8.3 コントローラ機能

関数 内容
ejectNodeクラスタからノードを排出します。必須パラメータ:"otpNode"、排出されるノード。
addNodeこのクラスタにノードを追加します。必要なパラメータ:"hostname"、"user"(ノードの管理者ユーザー)、および"password"。
rebalance既存のクラスタのリバランス。 このコントローラは、"knownNodes"と"ejectedNodes"の両方が必要です。これにより、クライアントはこの単一の操作でクラスタに残すノードと、削除するノードを明示できます。また、クライアントが最後にノードのリストを取得してからクラスタの状態に変化がないことを確認するために、これらの値を設定する必要があります。リストがノードのセットと一致しない場合、リクエストは不一致を示すHTTP 400で失敗します。リバランスの進捗はrebalanceProgress URIで確認できます。
failover特定のノードを、そのvBucketのレプリカデータを持つノードへとフェイルオーバします。"otpNode"パラメータは必須で、フェールオーバーするノードを指定しています。
reAddNode"otpNode"パラメータは必須で、再度追加するノードを指定します。
stopRebalance現在実行中のリバランスを停止します。パラメータはありません。

"nodes"のリストは、クラスタ内の各ノードが一覧表示されます。さらに、ノードの属性が一覧表示されます。

表8.4 ノードの属性

属性 内容
memoryTotalCouchbaseに利用できるメモリの総容量、割り当て済と空き容量。システムに設定されているメモリの量と一致しないことがあります。
memoryFree割り当て可能なメモリの量。これは、memoryTotalから、ホストオペレーティングシステムによって割り当てられたすべてのメモリーを引いた容量に等しくなります。
mcdMemoryReservedこのノード上で、全てのバケットを含むCouchbaseの利用用に予約されたメモリの量。この値はノード内のアイテム管理やレプリケーション処理およびTAPストリームのオーバヘッドは含みません。
mcdMemoryAllocated実際にこのノード上のすべてのバケットが使用しているメモリの量。

バケット一覧とバケットの操作

システムへのクライアントは、プロキシパスまたはダイレクトパスのどちらを使用するかを選択できます。ダイレクトパスを使用する場合は、バケットの設定が変更た場合、ほとんどの場合接続を維持できません。これはバケットの設定が変化した際に、バケットのURIをポーリングしたり、ストリーミングURIへの接続が必要であることを意味します。これは例えば、ノードが追加、削除、あるいは不安定な状態に陥った場合に発生します。

リクエスト

GET /pools/default/buckets
Host: node.in.your.pool.com
Authorization: Basic xxxxxxxxxxxxxxxxxxx
Accept: application/json
X-memcachekv-Store-Client-Specification-Version: 0.1

レスポンス

HTTP/1.1 200 OK
Server: Couchbase Server 1.6.0
Pragma: no-cache
Date: Wed, 03 Nov 2010 18:12:19 GMT
Content-Type: application/json
Content-Length: nnn
Cache-Control: no-cache no-store max-age=0

[
    {
        "name": "default",
        "bucketType": "couchbase",
        "authType": "sasl",
        "saslPassword": "",
        "proxyPort": 0,
        "uri": "/pools/default/buckets/default",
        "streamingUri": "/pools/default/bucketsStreaming/default",
        "flushCacheUri": "/pools/default/buckets/default/controller/doFlush",
        "nodes": [
            {
                "uptime": "784657",
                "memoryTotal": 8453197824.0,
                "memoryFree": 1191157760,
                "mcdMemoryReserved": 6449,
                "mcdMemoryAllocated": 6449,
                "clusterMembership": "active",
                "status": "unhealthy",
                "hostname": "10.1.15.148:8091",
                "version": "1.6.0",
                "os": "windows",
                "ports": {
                    "proxy": 11211,
                    "direct": 11210
                }
            }
        ],
        "stats": {
            "uri": "/pools/default/buckets/default/stats"
        },
        "nodeLocator": "vbucket",
        "vBucketServerMap": {
            "hashAlgorithm": "CRC",
            "numReplicas": 1,
            "serverList": [
                "192.168.1.2:11210"
            ],
			"vBucketMap": [ [ 0, -1 ], [ 0, -1 ], [ 0, -1 ], [ 0, -1 ], [ 0, -1 ], [ 0, -1 ]]
		},
        "replicaNumber": 1,
        "quota": {
            "ram": 104857600,
            "rawRAM": 104857600
        },
        "basicStats": {
            "quotaPercentUsed": 24.360397338867188,
            "opsPerSec": 0,
            "diskFetches": 0,
            "itemCount": 0,
            "diskUsed": 0,
            "memUsed": 25543728
        }
    },
    {
        "name": "test-application",
        "bucketType": "memcached",
        "authType": "sasl",
        "saslPassword": "",
        "proxyPort": 0,
        "uri": "/pools/default/buckets/test-application",
        "streamingUri": "/pools/default/bucketsStreaming/test-application",
        "flushCacheUri": "/pools/default/buckets/test-application/controller/doFlush",
        "nodes": [
            {
                "uptime": "784657",
                "memoryTotal": 8453197824.0,
                "memoryFree": 1191157760,
                "mcdMemoryReserved": 6449,
                "mcdMemoryAllocated": 6449,
                "clusterMembership": "active",
                "status": "healthy",
                "hostname": "192.168.1.2:8091",
                "version": "1.6.0",
                "os": "windows",
                "ports": {
                    "proxy": 11211,
                    "direct": 11210
                }
            }
        ],
        "stats": {
            "uri": "/pools/default/buckets/test-application/stats"
        },
        "nodeLocator": "ketama",
        "replicaNumber": 0,
        "quota": {
            "ram": 67108864,
            "rawRAM": 67108864
        },
        "basicStats": {
            "quotaPercentUsed": 4.064150154590607,
            "opsPerSec": 0,
            "hitRatio": 0,
            "itemCount": 1385,
            "diskUsed": 0,
            "memUsed": 2727405
        }
    }
]

名前つきバケットとバケットストリーミングURI

ここのバケットリクエストは前述の全バケットリスト配列から得られる情報と全く同じものです。streamingUriはHTTPチャンクをチャンクしたエンコーディングを利用してストリーミングしています。"\n\n\n\n"がチャンクの区切りです。これは将来のリリースで"zero chunk"に置き換えられる予定があり、streamingUriは現在開発中であるものと考えるべきです。

リクエスト

GET /pools/default/buckets/default
Host: node.in.your.pool.com
Authorization: Basic xxxxxxxxxxxxxxxxxxx
Accept: application/json
X-memcachekv-Store-Client-Specification-Version: 0.1

レスポンス

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: nnn

{
  "name": "default",
  "bucketType": "couchbase",
  "authType": "sasl",
  "saslPassword": "",
  "proxyPort": 0,
  "uri": "/pools/default/buckets/default",
  "streamingUri": "/pools/default/bucketsStreaming/default",
  "flushCacheUri": "/pools/default/buckets/default/controller/doFlush",
  "nodes": [
    {
      "uptime": "308",
      "memoryTotal": 3940818944.0,
      "memoryFree": 1608724480,
      "mcdMemoryReserved": 3006,
      "mcdMemoryAllocated": 3006,
      "replication": 1.0,
      "clusterMembership": "active",
      "status": "healthy",
      "hostname": "172.25.0.2:8091",
      "clusterCompatibility": 1,
      "version": "1.6.4r_107_g49a149d",
      "os": "i486-pc-linux-gnu",
      "ports": {
        "proxy": 11211,
        "direct": 11210
      }
    },
    {
      "uptime": "308",
      "memoryTotal": 3940818944.0,
      "memoryFree": 1608724480,
      "mcdMemoryReserved": 3006,
      "mcdMemoryAllocated": 3006,
      "replication": 1.0,
      "clusterMembership": "active",
      "status": "healthy",
      "hostname": "172.25.0.3:8091",
      "clusterCompatibility": 1,
      "version": "1.6.4r_107_g49a149d",
      "os": "i486-pc-linux-gnu",
      "ports": {
        "proxy": 11211,
        "direct": 11210
      }
    },
    {
      "uptime": "308",
      "memoryTotal": 3940818944.0,
      "memoryFree": 1608597504,
      "mcdMemoryReserved": 3006,
      "mcdMemoryAllocated": 3006,
      "replication": 1.0,
      "clusterMembership": "active",
      "status": "healthy",
      "hostname": "172.25.0.4:8091",
      "clusterCompatibility": 1,
      "version": "1.6.4r_107_g49a149d",
      "os": "i486-pc-linux-gnu",
      "ports": {
        "proxy": 11211,
        "direct": 11210
      }
    }
  ],
  "stats": {
    "uri": "/pools/default/buckets/default/stats"
  },
  "nodeLocator": "vbucket",
  "vBucketServerMap": {
    "hashAlgorithm": "CRC",
    "numReplicas": 1,
    "serverList": [
      "172.25.0.2:11210",
      "172.25.0.3:11210",
      "172.25.0.4:11210"
    ],
    "vBucketMap": [
      [1,0],
      [2,0],
      [1,2],
      [2,1],
      [1,2],
      [0,2],
      [0,1],
      [0,1]
    ]
  },
  "replicaNumber": 1,
  "quota": {
    "ram": 1887436800,
    "rawRAM": 629145600
  },
  "basicStats": {
    "quotaPercentUsed": 14.706055058373344,
    "opsPerSec": 0,
    "diskFetches": 0,
    "itemCount": 65125,
    "diskUsed": 139132928,
    "memUsed": 277567495
  }
}

バケットのフラッシュ

警告

この操作は、バケット内の全てのアイテムを削除します。誤って使用すると、データを破壊することになります。 サービスはユーザ対して厳重なチェックを要求しません。 単純に実行するだけです。 これを利用するクライアントアプリケーションはエンドユーザと良く確認してから実行することをお勧めします。

注記

Couchbase 1.6の時点では、RESP API経由のフラッシュ操作はサポートされていません。memcachedプロトコルを利用すればフラッシュできます。

REST APIの返却するバケットの詳細情報には、フラッシュ操作のリクエストを送信するためのバケットURLが記載されています。

リクエスト

POST /pools/default/buckets/default/controller/doFlush Host: node.in.your.pool.com Authorization: Basic xxxxxxxxxxxxxxxxxxx X-memcachekv-Store-Client-Specification-Version: 0.1

任意のパラメータが受け入れられます。URIはバケット詳細情報で定義されており、このサービスの詳細な動作を制御するオプションはありません。システムが保護されている場合、POST時に適切なAuthorizationヘッダが必要です。

レスポンス

204 No Content - フラッシュ成功 404 Not Found - URIが不正かバケット用URIではない場合

バケットの削除

警告

この操作は、バケットを削除します。誤って使用すると、データを破壊することになります。 サービスはユーザ対して厳重なチェックを要求ません。 単純に実行するだけです。 これを利用するクライアントアプリケーションはエンドユーザと良く確認してから実行することをお勧めします。

リクエスト

DELETE /pools/default/buckets/default Host: node.in.your.pool.com Authorization: Basic xxxxxxxxxxxxxxxxxxx X-memcachekv-Store-Client-Specification-Version: 0.1

レスポンス

統計の取得

統計情報はバケットレベルのRESTインターフェースにより収集できます。統計情報のURLはバケット情報の応答内、stats.uri プロパティから取得してください。デフォルトでは直近1分のstatsサンプル値とホットキーを返します。クエリパラメータを設定し、別のズームレベルを要求することができます。

リクエストとレスポンス

GET /pools/default/stats Host: node.in.your.pool.com Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/json X-memcachekv-Store-Client-Specification-Version: 0.1
HTTP/1.1 200 OK Content-Type: application/json Content-Length: nnn
      {
      "op": {
      "samples": {
      "hit_ratio": [
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
      ],
      "ep_cache_miss_rate": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0 ],
      "ep_resident_items_rate": [ 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0 ],
      "ep_replica_resident_items_rate": [ 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0,
      100.0 ],
      "bytes_read": [ 151, 130, 72, 158, 120, 223, 103, 127, 127, 127,
      103, 130, 72, 158, 72, 220, 103, 175, 130, 127, 103, 127, 120,
      158, 72, 271, 103, 124, 130, 127, 103, 130, 72, 155, 72, 223, 103,
      124, 178, 127, 103, 130, 72, 206, 69, 223, 103, 175, 130, 127,
      103, 130, 72, 155, 72, 223, 103, 127, 130 ],
      "bytes_written": [ 36776, 40699, 15212, 41705, 15260, 41326,
      36728, 20360, 40658, 20388, 36728, 40699, 15212, 41705, 15212,
      41283, 36764, 20408, 40700, 20369, 36728, 40656, 15274, 41705,
      15212, 41374, 36728, 20338, 40700, 20388, 36728, 40699, 15212,
      41662, 15212, 41366, 36728, 20338, 40748, 20388, 36728, 40699,
      15212, 41753, 15195, 41326, 36728, 20408, 40739, 20369, 36728,
      40699, 15212, 41662, 15212, 41366, 36728, 20360, 40700 ],
      "cas_badval": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "cas_hits": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "cas_misses": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "cmd_get": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "cmd_set": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "curr_connections": [ 139, 139, 139, 139, 139, 139, 139, 139, 139,
      139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
      139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
      139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139,
      139, 139, 139, 139, 139, 139, 139, 139, 139, 139, 139 ],
      "curr_items": [ 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125 ],
      "curr_items_tot": [ 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250 ],
      "decr_hits": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "decr_misses": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "delete_hits": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "delete_misses": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "disk_writes": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "ep_bg_fetched": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "ep_flusher_todo": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
      ],
      "ep_io_num_read": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
      ],
      "ep_keys_size": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "ep_num_active_non_resident": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0 ],
      "ep_num_eject_replicas": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0 ],
      "ep_num_non_resident": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0 ],
      "ep_num_not_my_vbuckets": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0 ],
      "ep_num_value_ejects": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0 ],
      "ep_oom_errors": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "ep_overhead": [ 399200, 399200, 399200, 399200, 399200, 399200,
      399200, 399200, 399200, 399200, 399200, 399200, 399200, 399200,
      399200, 399200, 399200, 399200, 399200, 399200, 399200, 399200,
      399200, 399200, 399200, 399200, 399200, 399200, 399200, 399200,
      399200, 399200, 399200, 399200, 399200, 399200, 399200, 399200,
      399200, 399200, 399200, 399200, 399200, 399200, 399200, 399200,
      399200, 399200, 399200, 399200, 399200, 399200, 399200, 399200,
      399200, 399200, 399200, 399200, 399200 ],
      "ep_queue_size": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "ep_tap_bg_fetched": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0 ],
      "ep_tmp_oom_errors": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0 ],
      "ep_total_persisted": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0 ],
      "ep_values_size": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
      ],
      "evictions": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "get_hits": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "get_misses": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "incr_hits": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "incr_misses": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "mem_used": [ 275869950, 275869950, 275869950, 275869950,
      275869950, 275869950, 275869950, 275869950, 275869950, 275869950,
      275869950, 275869950, 275869950, 275869950, 275869950, 275869950,
      275869950, 275869950, 275869950, 275869950, 275869950, 275869950,
      275869950, 275869950, 275869950, 275869950, 275869950, 275869950,
      275869950, 275869950, 275869950, 275869950, 275869950, 275869950,
      275869950, 275869950, 275869950, 275869950, 275869950, 275869950,
      275869950, 275869950, 275869950, 275869950, 275869950, 275869950,
      275869950, 275869950, 275869950, 275869950, 275869950, 275869950,
      275869950, 275869950, 275869950, 275869950, 275869950, 275869950,
      275869950 ],
      "misses": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "ops": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
      "replica_resident_items_tot": [ 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250, 130250,
      130250, 130250, 130250, 130250, 130250, 130250, 130250 ],
      "resident_items_tot": [ 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125,
      65125, 65125, 65125, 65125, 65125, 65125, 65125, 65125 ],
      "timestamp": [ 1292513719166.0, 1292513720166.0, 1292513721166.0,
      1292513722166.0, 1292513723166.0, 1292513724166.0,
      1292513725166.0, 1292513726166.0, 1292513727167.0,
      1292513728166.0, 1292513729166.0, 1292513730166.0,
      1292513731166.0, 1292513732166.0, 1292513733166.0,
      1292513734167.0, 1292513735166.0, 1292513736166.0,
      1292513737166.0, 1292513738166.0, 1292513739166.0,
      1292513740167.0, 1292513741166.0, 1292513742166.0,
      1292513743166.0, 1292513744166.0, 1292513745166.0,
      1292513746167.0, 1292513747167.0, 1292513748166.0,
      1292513749166.0, 1292513750166.0, 1292513751166.0,
      1292513752167.0, 1292513753167.0, 1292513754166.0,
      1292513755166.0, 1292513756167.0, 1292513757167.0,
      1292513758166.0, 1292513759166.0, 1292513760166.0,
      1292513761166.0, 1292513762166.0, 1292513763167.0,
      1292513764167.0, 1292513765167.0, 1292513766167.0,
      1292513767166.0, 1292513768166.0, 1292513769166.0,
      1292513770166.0, 1292513771166.0, 1292513772167.0,
      1292513773167.0, 1292513774166.0, 1292513775166.0,
      1292513776166.0, 1292513777166.0 ],
      "updates": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
      },
      "samplesCount": 60,
      "isPersistent": true,
      "lastTStamp": 1292513777166.0,
      "interval": 1000
      },
      "hot_keys": [
      {
      "name": "48697",
      "ops": 0.0009276437847866419
      },
      {
      "name": "8487",
      "ops": 0.0009276437847866419
      },
      {
      "name": "77262",
      "ops": 0.0009276437847866419
      },
      {
      "name": "58495",
      "ops": 0.0009276437847866419
      },
      {
      "name": "21003",
      "ops": 0.0009276437847866419
      },
      {
      "name": "26850",
      "ops": 0.0009276437847866419
      },
      {
      "name": "73717",
      "ops": 0.0009276437847866419
      },
      {
      "name": "86218",
      "ops": 0.0009276437847866419
      },
      {
      "name": "80344",
      "ops": 0.0009276437847866419
      },
      {
      "name": "83457",
      "ops": 0.0009276437847866419 } ] }

バケットリソースの管理

poolのURIに対してPOSTリクエストを送信することで、新規バケットを作成できます。これは、couchbaseまたはmemcachedタイプのバケットを作成するために使用することができます。バケット名は、先頭にアンダースコアを設定できません。

バケットを作成するときは、authTypeパラメータを指定する必要があります。

ramQuotaMB属性は、ユーザーが各ノード上でバケットに割り当てられるメモリー量(MB単位)を指定することができます。

memcachedバケットを作成する

リクエスト

POST /pools/default/buckets HTTP/1.1 Host: node.in.your.cluster:8091 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Authorization: Basic YWRtaW46YWRtaW4= Content-Length: xx name=newcachebucket&ramQuotaMB=128&authType=none&proxyPort=11216&bucketType=memcached

レスポンス

202: locationヘッダが返却され、バケットは非同期に作成されます。

この操作の完了をチェックするURIはありませんが、ほとんどのバケット作成は数秒で完了します。

curl -d name=newcachebucket -d ramQuotaMB=128 -d authType=none -d proxyPort=11216 -d bucketType=memcached http://localhost:8080/pools/default/buckets

Couchbaseバケットを作成する

前述のパラメータに加えて、replicaNumberのパラメータは、レプリカ数を指定します。

リクエスト

POST /pools/default/buckets HTTP/1.1 Host: node.in.your.cluster:8080 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Authorization: Basic YWRtaW46YWRtaW4= Content-Length: xx name=newbucket&ramQuotaMB=20&authType=none&replicaNumber=2&proxyPort=11215

レスポンス

202: バケットは非同期に作成されます。
curl -d name=newbucket -d ramQuotaMB=20 -d authType=none -d replicaNumber=2 -d proxyPort=11215 http://localhost:8080/pools/default/buckets

バケットを取得するGETリクエスト

GET /pools/default/buckets/Another bucket

レスポンス

HTTP/1.1 200 OK Content-Type: application/com.couchbase.store+json Content-Length: nnn { "name" : "Another bucket" "bucketRules" : { "cacheRange" : { "min" : 1, "max" : 599 }, "replicationFactor" : 2 } "nodes" : [ { "hostname" : "10.0.1.20", "uri" : "/addresses/10.0.1.20", "status" : "healthy", "ports" : { "routing" : 11211, "kvcache" : 11311 } }, { "hostname" : "10.0.1.21", "uri" : "/addresses/10.0.1.21", "status" : "healthy", "ports" : { "routing" : 11211, "kvcache" : 11311 } } ] }

クライアントは正しいノードに接続するために、pool内ではなく、bucket内のノードリストを利用しなければいけません。

バケットのプロパティ変更

バケットはバケット作成時と同様のパラメータをバケットのURIにPOSTすることで変更できます。パラメータを省略すると、空で設定することを意味するため、クライアントは既存のパラメータを取得し、必要な変更を施してから、URIに対してPOSTするようにしてください。バケット名は変更できません。

バケットのメモリ割り当ての増加

バケットのramQuotaMBを増やすことができます。couchbaseバケットタイプの場合ramQuotaMBを減らすことはできません、memcachedバケットタイプの場合ramQuotaMBを変更するとフラッシュされます。

警告

1.6.0時点では、memcachedバケットタイプのramQuotaMBの変更に関わるいくつかの既知のバグがあります。

リクエスト(curl)

curl -d ramQuotaMB=25 -d authType=none -d proxyPort=11215 http://localhost:8080/pools/default/buckets/newbucket

レスポンス

結果コードは202になります。これはクラスタ内の各サーバの割り当て量が非同期に変更されたことを示します。

HTTP/1.1 202 OK Server: Couchbase Server 1.6.0 Pragma: no-cache Date: Wed, 29 Sep 2010 20:01:37 GMT Content-Length: 0 Cache-Control: no-cache no-store max-age=0

バケットの認証を変更する

バケットの認証方法をポートベースの認証からSASL認証に変更するには以下のリクエストを送信します:

curl -d ramQuotaMB=130 -d authType=sasl -d saslPassword=letmein http://localhost:8080/pools/default/buckets/acache

クラスタおよびプールの操作

新しいプールの作成は、現在サポートされていません。新しいプールは、将来のリリースでサポートされる可能性があります。その場合、/pools のURIにPOSTすることで新規のプールを作成します。

リクエスト

POST /pools/mynewpool name=mynewpool

レスポンス

201:プールが作成されました。作成されたプールを参照するためのURIが返却されます。 403:ユーザはこの操作を許可されていません(もしくは全てのユーザがこの操作を許可されない設定となっています)

警告

現在のリリースではこのメソッドは許可されておらず、常に405が返されます。

クラスタに参加する

複数のノードで構成されている複数のクラスタ(別名:プール)はマージできません。単一ノードはクラスタに参加することを要求できます。クラスタへの参加プロセスにはいくつかのパラメータが必要になります。

リクエスト

POST /node/controller/doJoinCluster Host: target.node.to.do.join.from:8091 Authorization: Basic xxxxxxxxxxxx Accept: */* Content-Length: xxxxxxxxxx Content-Type: application/x-www-form-urlencoded clusterMemberHostIp=192.168.0.1&clusterMemberPort=8091&user=admin&password=admin123

次の引数が必要です:

表8.5 クラスタ参加時の引数:

引数 内容
clusterMemberHostIpこのRESTリクエストを受信するサーバが参加する、参加先のクラスタ内サーバのホスト名かIPアドレス。
clusterMemberPortシステムへのRESTfulインターフェース用ポート番号

Couchbase Webコンソールからサーバが「保護」されている場合、次の引数も必要です:

表8.6 追加の引数

引数 内容
ユーザー管理ユーザー
パスワード管理ユーザーのパスワード

レスポンス

200:OK - 正常に参加しました。参加したプール詳細へのlocationヘッダが返却されます。 400:Bad Request - パラメータが不足している等。 401:Unauthorized - 認証情報が必要ですが、指定されませんでした。 403:Forbidden bad credentials - 不正な認証情報です。

例(curl)

curl -d clusterMemberHostIp=192.168.0.1 -d clusterMemberPort=8091 -d user=admin -d password=admin123 http://localhost:8091/node/controller/doJoinCluster

クラスタからノードを排出

ノードが一時的または恒久的にダウンしている状況では、そのノードをクラスタから排出する必要があることがあります。同一のクラスタに参加している他のノードからノード情報を除去することも重要です。

リクエスト

POST /controller/ejectNode Host: altnernate.node.in.cluster:8091 Authorization: Basic xxxxxxxxxxxx Accept: */* Content-Length: xxxxxxxxxx Content-Type: application/x-www-form-urlencoded otpNode=ns_1@192.168.0.1

レスポンス

200:OK - ノードを排出しました。 400:Error - 対象のノードが存在しません。401:Unauthorized - 必要な認証情報が不足しています。403 Forbidden - 認証情報は指定されましたが、不正です。

例(curl)

curl -d otpNode=ns_1@192.168.0.107 http://192.168.0.106:8091/controller/ejectNode

システムログ

システムモジュールは、このインタフェースを介して、利用可能な様々なメッセージをログに記録します。これらのログメッセージは、モジュールによって分類することができます。一般的な最新のログリストと、特定のカテゴリの最新のリストが利用できます。特定のカテゴリを指定せずGETすると、全てのカテゴリが返却されます。

返却されるタイプには"info"、"crit"、"warn"があります。システムが保護されている場合、ログにアクセスするには管理者の認証情報が必要です。

リクエスト

GET /pools/default/logs?cat=crit Host: node.in.your.pool.com Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/json X-memcachekv-Store-Client-Specification-Version: 0.1

レスポンス

201: bucket was created and valid URIs returned HTTP/1.1 200 OK Content-Type: application/json Content-Length: nnn [{"cat":"info", "date": "", "code": "302", "message": "Some information for you."}, {"cat":"warn", "date": "", "code": "502", "message": "Something needs attention."}]

クライアントログ記録インタフェース

クライアントがサービスのログにエントリを追加したい場合があります。これらのエントリは、サーバのレスポンスを処理するのが困難な場合など、例外的な情報を記録するのが典型的です。例えばWeb UIはクライアントのエラー情報を記録するためにこの機能を利用しています。

リクエスト

POST /logClientError Host: node.in.your.pool.com Authorization: Basic xxxxxxxxxxxxxxxxxxx Accept: application/json X-memcachekv-Store-Client-Specification-Version: 0.1

レスポンス

200 - OK