Capacité
IBM Cloudant vous permet de visualiser le paramètre de capacité de débit provisionné en cours et cible, de définir le paramètre de capacité de débit cible, et de visualiser la consommation actuelle de capacité de débit mise à disposition utilisée.
Pour plus d'informations, voir Capacité de débit mise à disposition sur la façon dont IBM Cloudant alloue et utilise la capacité, et comment afficher et modifier la capacité dans l'interface utilisateur.
L'API de capacité requiert le rôle d'administrateur des authentifications d'IBM Cloudant existant ou le rôle de gestionnaire IAM pour pouvoir accéder aux noeuds finaux d'API. Les exemples curl ci-après omettent l'aspect authentification pour plus
de clarté. Reportez-vous à la section de présentation de l'authentification pour plus de détails sur l'utilisation des deux types d'authentification.
Affichage du paramètre de capacité de débit mise à disposition en cours et cible
Utilisez une équipe GET sur le nœud final /_api/v2/user/capacity/throughput pour voir quelle quantité de capacité de débit allouée est allouée à l'instance IBM Cloudant et quelle est la capacité de débit mise à disposition de la
cible. Lorsque vous changez la capacité cible, la capacité en cours change de manière asynchrone pour correspondre à la capacité cible. La taille du changement de capacité et la quantité de données qui est stockée dans l'instance IBM Cloudant
déterminent le temps nécessaire pour que la capacité en cours et la capacité cible correspondent. Le changement de capacité est terminé lorsque la capacité en cours et la capacité cible sont identiques.
- Méthode
GET- Voie
/_api/v2/user/capacity/throughput- Réponse
- Aussi bien le paramètre de capacité en cours que le paramètre de capacité cible. Chaque paramètre inclut le nombre de blocs de capacité et le nombre total de lectures par seconde, d'écritures par seconde et de requêtes globales par seconde pour la capacité de débit.
Voici un exemple de demande permettant d'extraire la capacité en cours et la capacité cible via HTTP :
GET /_api/v2/user/capacity/throughput
Voir l'exemple de demande suivant pour extraire la capacité actuelle et cible :
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))
L'exemple précédent de Go requiert le bloc d'importation suivant :
import (
"encoding/json"
"fmt"
"github.com/IBM/cloudant-go-sdk/cloudantv1"
)
Tous les exemples de Go nécessitent l'initialisation de l'objet service. Pour plus d'informations, reportez-vous à la documentation de l'API Section Authentification pour avoir des exemples.
La structure renvoyée inclut les zones suivantes :
current- Détaille la capacité actuelle qui est allouée et indique le nombre de blocs de capacité et la répartition des classes de demande de débit.
target- Détaille la capacité cible allouée et indique le nombre de blocs de capacité et la répartition des classes de demande de débit.
blocks- Nombre de blocs de capacité de débit mis à disposition, où un bloc est de 100 lectures / sec, 50 écritures / sec et 5 requêtes globales / sec.
throughput- Répartition du nombre spécifique de lectures / sec, d'écritures / sec et de requêtes globales / sec.
Voici un exemple de réponse JSON avec la capacité en cours et la capacité cible :
{
"current": {
"throughput": {
"read": 500,
"write": 250,
"blocks": 5,
"query": 25
}
},
"target": {
"throughput": {
"read": 1000,
"write": 500,
"blocks": 10,
"query": 50
}
}
}
Définition du paramètre de capacité de débit mise à disposition cible
Utilisez un PUT sur le noeud final /_api/v2/user/capacity/throughput pour définir la capacité de débit cible pour une instance IBM Cloudant. Lorsque vous changez la capacité cible, la capacité en cours change de manière asynchrone
pour correspondre à la capacité cible.
- Méthode
PUT- Voie
/_api/v2/user/capacity/throughput- Réponse
- Le paramètre de capacité en cours et le paramètre de capacité cible, y compris le nombre de blocs de capacité et de lectures totales / sec, les écritures / s et les requêtes globales / sec.
Voici un exemple de demande permettant de définir la capacité cible via HTTP :
PUT $SERVICE_URL/_api/v2/user/capacity/throughput
Content-Type: application/json
Voici un exemple d'objet JSON permettant de définir la capacité cible :
{
"blocks": $NUMBER_OF_BLOCKS
}
Ici, un bloc se compose de 100 lectures par seconde, 50 écritures par seconde et 5 requêtes globales de capacité de débit mise à disposition. La zone $NUMBER_OF_BLOCKS doit être un entier compris entre 1 et 100. Vous pouvez obtenir des tailles de capacité plus grande en contactant le support d'IBM Cloudant.
Voir l'exemple de demande suivant pour définir la capacité cible :
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))
L'exemple précédent de Go requiert le bloc d'importation suivant :
import (
"encoding/json"
"fmt"
"github.com/IBM/cloudant-go-sdk/cloudantv1"
)
La structure renvoyée inclut les zones suivantes :
current- Détaille la capacité actuelle qui est allouée et indique le nombre de blocs de capacité et la répartition des classes de demandes de débit.
target- Détaille l'ensemble de la capacité cible et affiche à la fois le nombre de blocs de capacité et la répartition des classes de demandes de débit.
blocks- Nombre de blocs de capacité de débit mis à disposition, où le bloc est de 100 lectures / sec, 50 écritures / sec, et 5 requêtes globales / sec.
throughput- Une décomposition du nombre spécifique de lectures / sec, d'écritures / sec et de requêtes globales / sec.
Voici un exemple de réponse JSON avec la capacité cible définie :
{
"current": {
"throughput": {
"read": 500,
"write": 250,
"blocks": 5,
"query": 25
}
},
"target": {
"throughput": {
"read": 1000,
"write": 500,
"blocks": 10,
"query": 50
}
}
}
Affichage de la consommation en cours de la capacité de débit mise à disposition utilisée
Utilisez une méthode GET pour le noeud final /_api/v2/user/current/throughput pour afficher la consommation actuelle de capacité de débit mise à disposition pour une instance IBM Cloudant. La consommation en cours affiche le nombre
de lectures, d'écritures et de requêtes globales effectuées pour l'instance par seconde. Lorsque vous utilisez ce point de terminaison, il est recommandé d'agréger ces données en continu au fil du temps afin d'obtenir une vue d'ensemble plus
complète des modèles de consommation de débit d'une instance d' IBM Cloudant.
- Méthode
GET- Voie
/_api/v2/user/current/throughput- Réponse
- Consommation actuelle de la capacité de débit provisionnée, ventilée par nombre de lectures, d'écritures et de requêtes globales.
Voici un exemple de demande permettant d'extraire la consommation en cours de la capacité via HTTP :
GET $SERVICE_URL/_api/v2/user/current/throughput
Voir l'exemple de demande suivant pour extraire la consommation actuelle de capacité :
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))
L'exemple précédent de Go requiert le bloc d'importation suivant :
import (
"encoding/json"
"fmt"
"github.com/IBM/cloudant-go-sdk/cloudantv1"
)
La structure renvoyée inclut les zones suivantes :
throughput- Répartition du nombre actuel de lectures, d'écritures et de requêtes globales utilisées.
Voici un exemple de réponse JSON pour la consommation en cours de la capacité :
{
"throughput": {
"read": 133,
"write": 42,
"query": 13
}
}