容量

IBM Cloudant を使用すると、現行およびターゲットのプロビジョン済みスループット能力の設定を表示したり、ターゲットのプロビジョン済みスループット能力を設定したり、使用されたプロビジョン済みスループット能力の現在の消費量を表示したりできます。

詳しくは、IBM Cloudant が容量を割り振って使用する方法、および UI で容量を表示して変更する方法について、プロビジョン済みスループット能力 を参照してください。

Capacity API を使用するには、この API のエンドポイントにアクセスするために、IBM Cloudant レガシー認証の管理者役割または IAM の管理者役割のどちらかが必要です。 簡単にするために、以下の curl の例では、認証という側面について省略しています。 両方のタイプの認証を使用する方法について詳しくは、認証の概要のセクションを参照してください。

現行およびターゲットのプロビジョン済みスループット能力設定の表示

/_api/v2/user/capacity/throughput エンドポイントに対して GET を使用すると、IBM Cloudant インスタンスに割り振られているプロビジョン済みスループット能力の量と、ターゲットのプロビジョン済みスループット能力を確認できます。 ターゲット能力を変更すると、そのターゲット能力を満たすために、現行能力が非同期で変更されます。 現行能力がターゲット能力に一致するまでにかかる時間は、能力の変更サイズと IBM Cloudant インスタンスに保管されているデータ量によって決まります。 現行能力がターゲット能力と同じになると、能力の変更は完了します。

メソッド
GET
パス
/_api/v2/user/capacity/throughput
応答
現在の容量設定と目標の容量設定の両方。 それぞれに、能力ブロックの数と、スループット能力の合計読み取り数/秒、書き込み数/秒、およびグローバル照会数/秒が含まれます。

HTTP を使用して現行能力およびターゲット能力を取得するための要求の例を以下に示します。

GET /_api/v2/user/capacity/throughput

現行能力とターゲット能力を取得するための要求の例を以下に示します。

curl "$SERVICE_URL/_api/v2/user/capacity/throughput"
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.CapacityThroughputInformation;
Cloudant service = Cloudant.newInstance();
CapacityThroughputInformation response =
service.getCapacityThroughputInformation().execute().getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.getCapacityThroughputInformation().then(response => {
  console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_capacity_throughput_information().get_result()
print(response)
getCapacityThroughputInformationOptions := service.NewGetCapacityThroughputInformationOptions()
capacityThroughputInformation, response, err := service.GetCapacityThroughputInformation(getCapacityThroughputInformationOptions)
if err != nil {
panic(err)
}
b, _ := json.MarshalIndent(capacityThroughputInformation, "", "  ")
fmt.Println(string(b))

前の Go の例では、以下のインポート・ブロックが必要です。

import (
   "encoding/json"
   "fmt"
   "github.com/IBM/cloudant-go-sdk/cloudantv1"
)

すべての Go の例では、serviceオブジェクトを初期化する必要があります。 詳しくは、API 資料の認証セクションで例を参照してください。

返される構造体には、以下のフィールドが含まれています。

current
割り振られている現在の容量の詳細を示し、容量ブロックの数とスループット要求クラスの明細の両方を示します。
target
割り振られているターゲット容量の詳細を示し、容量ブロックの数とスループット要求クラスの明細の両方を表示します。
blocks
プロビジョン済みスループット能力ブロックの数。ブロックは 100 読み取り / 秒、 50 書き込み / 秒、および 5 グローバル照会 / 秒です。
throughput
特定の読み取り数 / 秒、書き込み数 / 秒、およびグローバル照会数 / 秒の明細。

現行能力およびターゲット能力を含む JSON 応答の例を以下に示します。

{
  "current": {
    "throughput": {
      "read": 500,
      "write": 250,
      "blocks": 5,
      "query": 25
    }
  },
  "target": {
    "throughput": {
      "read": 1000,
      "write": 500,
      "blocks": 10,
      "query": 50
    }
  }
}

ターゲットのプロビジョン済みスループット能力設定の設定

/_api/v2/user/capacity/throughput エンドポイントに対して PUT を使用すると、IBM Cloudant インスタンスのターゲットのプロビジョン済みスループット能力を設定できます。 ターゲット能力を変更すると、そのターゲット能力を満たすために、現行能力が非同期で変更されます。

メソッド
PUT
パス
/_api/v2/user/capacity/throughput
応答
容量ブロックの数と合計読み取り数/秒、書き込み数 / 秒、およびグローバル照会数/秒を含む、現在の容量設定とターゲットの容量設定の両方。

HTTP を使用してターゲット能力を設定するための要求の例を以下に示します。

PUT $SERVICE_URL/_api/v2/user/capacity/throughput
Content-Type: application/json

ターゲット能力を設定するための JSON オブジェクトの例を以下に示します。

{
  "blocks": $NUMBER_OF_BLOCKS
}

ここでは、1 つのブロックが、読み取り 100 回/秒、書き込み 50 回/秒、およびグローバル照会 5 回/秒のプロビジョン済みスループット能力に相当します。 $NUMBER_OF_BLOCKS フィールドは、1 から 100 までの範囲内の整数である必要があります。 能力サイズを大きくするには、IBM Cloudant サポートにお問い合わせください。

ターゲット能力を設定するための要求の例を以下に示します。

curl -X PUT "$SERVICE_URL/_api/v2/user/capacity/throughput" -H "Content-Type: application/json" --data '{"blocks": 1}'
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.CapacityThroughputInformation;
import com.ibm.cloud.cloudant.v1.model.PutCapacityThroughputConfigurationOptions;
Cloudant service = Cloudant.newInstance();
PutCapacityThroughputConfigurationOptions options =
    new PutCapacityThroughputConfigurationOptions.Builder()
        .blocks(1)
        .build();
CapacityThroughputInformation response =
service.putCapacityThroughputConfiguration(options).execute().getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.putCapacityThroughputConfiguration({
  blocks: 1,
}).then(response => {
  console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.put_capacity_throughput_configuration(
  blocks=1
).get_result()
print(response)
putCapacityThroughputConfigurationOptions := service.NewPutCapacityThroughputConfigurationOptions(
  1,
)
capacityThroughputConfiguration, response, err := service.PutCapacityThroughputConfiguration(putCapacityThroughputConfigurationOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(capacityThroughputConfiguration, "", "  ")
fmt.Println(string(b))

前の Go の例では、以下のインポート・ブロックが必要です。

import (
   "encoding/json"
   "fmt"
   "github.com/IBM/cloudant-go-sdk/cloudantv1"
)

返される構造体には、以下のフィールドが含まれています。

current
割り振られている現在の容量の詳細を示し、容量ブロックの数とスループット要求クラスの明細の両方を示します。
target
ターゲット容量セットの詳細を示し、容量ブロックの数とスループット要求クラスの明細の両方を表示します。
blocks
プロビジョン済みスループット能力ブロックの数。ブロックは 100 読み取り / 秒、 50 書き込み / 秒、および 5 グローバル照会 / 秒です。
throughput
特定の読み取り数 / 秒、書き込み数 / 秒、およびグローバル照会数 / 秒の明細。

ターゲット能力設定を含む JSON 応答の例を以下に示します。

{
  "current": {
    "throughput": {
      "read": 500,
      "write": 250,
      "blocks": 5,
      "query": 25
    }
  },
  "target": {
    "throughput": {
      "read": 1000,
      "write": 500,
      "blocks": 10,
      "query": 50
    }
  }
}

使用されたプロビジョン済みスループット能力の現在の消費量の表示

/_api/v2/user/current/throughput エンドポイントに対して GET メソッドを使用すると、IBM Cloudant インスタンスのプロビジョン済みスループット能力の現在の消費量を確認できます。 現在の消費量は、特定の秒数の間にインスタンスに対して実行された読み取り数、書き込み数、およびグローバル照会数を示しています。 このエンドポイントを使用する際は、 IBM Cloudant インスタンスのスループット消費パターンをより包括的に把握するために、このデータを継続的に集計することが推奨されます。

メソッド
GET
パス
/_api/v2/user/current/throughput
応答
プロビジョニングされたスループット容量の使用状況(読み取り、書き込み、グローバルクエリの数別に内訳)。

HTTP を使用して現在の能力の消費量を取得するための要求の例を以下に示します。

GET $SERVICE_URL/_api/v2/user/current/throughput

現行能力の消費量を取得するための要求の例を以下に示します。

curl "$SERVICE_URL/_api/v2/user/current/throughput"
import com.ibm.cloud.cloudant.v1.Cloudant;
import com.ibm.cloud.cloudant.v1.model.CurrentThroughputInformation;
Cloudant service = Cloudant.newInstance();
CurrentThroughputInformation response =
service.getCurrentThroughputInformation().execute().getResult();
System.out.println(response);
const { CloudantV1 } = require('@ibm-cloud/cloudant');
const service = CloudantV1.newInstance({});
service.getCurrentThroughputInformation().then(response => {
  console.log(response.result);
});
from ibmcloudant.cloudant_v1 import CloudantV1
service = CloudantV1.new_instance()
response = service.get_current_throughput_information().get_result()
print(response)
getCurrentThroughputInformationOptions := service.NewGetCurrentThroughputInformationOptions()
currentThroughputInformation, response, err := service.GetCurrentThroughputInformation(getCurrentThroughputInformationOptions)
if err != nil {
  panic(err)
}
b, _ := json.MarshalIndent(currentThroughputInformation, "", "  ")
fmt.Println(string(b))

前の Go の例では、以下のインポート・ブロックが必要です。

import (
   "encoding/json"
   "fmt"
   "github.com/IBM/cloudant-go-sdk/cloudantv1"
)

返される構造体には、以下のフィールドが含まれています。

  • throughput- 現在の読み取り回数、書き込み回数、およびグローバルクエリの使用状況の内訳。

現在の能力の消費量の JSON 応答の例を以下に示します。

{
  "throughput": {
    "read": 133,
    "write": 42,
    "query": 13
  }
}