Demande d'extension de l'API de PlanetHoster pour récupérer des données serveur par compte World

Imed ZHIR

New Member
#2
Bonjour Mina et à toute l'équipe de PlanetHoster.

Je tiens à vous remercier sincèrement pour votre suite favorable au sujet et pour le développement de l'extension de l'API permettant de récupérer les données de consommation en CPU, RAM et E/S. Je suis vraiment reconnaissant de votre réactivité et de votre soutien dans cette démarche.

Mon objectif est d'affiché un widget des métriques de performance par compte World individuel et par client connecté.

Voici la capture d'écran du widget :

widget.jpg


D'après ce qui a été expliqué dans le sujet, j'aimerais confirmer si les variables JSON de consommation sont correctes.

Notre cher collègue Normand, que je salue, m'a suggéré de calculer la moyenne des variables "aCPU" en les divisant par le nombre d'entrées, puis en multipliant le tout par 100.

Après avoir minutieusement étudié le comportement des variables "aCPU" et "mCPU" sur une période de 7 jours, je constate que la somme des valeurs moyennes de consommation, SUM(aCPU), ne donne pas le résultat attendu.

Voici un extrait du fichier JSON qui représente une période de 7 jours :

JSON:
string(2349) "{"reseller_id":"XXXX","success":true,"data":[{"From":"05-30 16:46","To":"05-31 16:46","aCPU":1,"mCPU":56,"lCPU":100,"aEP":0,"mEP":1,"lEP":20,"aVMem":0,"mVMem":0,"lVMem":0,"VMemF":0,"EPf":0,"aPMem":78732177,"mPMem":213041152,"lPMem":1073741824,"aNproc":2,"mNproc":4,"lNproc":100,"PMemF":0,"NprocF":0,"aIO":2.592,"mIO":5120,"lIO":5120,"aIOPS":0,"mIOPS":40,"lIOPS":1024},{"From":"05-31 16:46","To":"06-01 16:46","aCPU":1,"mCPU":42,"lCPU":100,"aEP":0,"mEP":2,"lEP":20,"aVMem":0,"mVMem":0,"lVMem":0,"VMemF":0,"EPf":0,"aPMem":117783761,"mPMem":255787008,"lPMem":1073741824,"aNproc":2,"mNproc":5,"lNproc":100,"PMemF":0,"NprocF":0,"aIO":0.876,"mIO":5120,"lIO":5120,"aIOPS":0,"mIOPS":3,"lIOPS":1024},{"From":"06-01 16:46","To":"06-02 16:46","aCPU":1,"mCPU":27,"lCPU":100,"aEP":0,"mEP":0,"lEP":20,"aVMem":0,"mVMem":0,"lVMem":0,"VMemF":0,"EPf":0,"aPMem":120242254,"mPMem":175403008,"lPMem":1073741824,"aNproc":2,"mNproc":4,"lNproc":100,"PMemF":0,"NprocF":0,"aIO":0.209,"mIO":104.615,"lIO":5120,"aIOPS":0,"mIOPS":5,"lIOPS":1024},{"From":"06-02 16:46","To":"06-03 16:46","aCPU":2,"mCPU":100,"lCPU":100,"aEP":0,"mEP":1,"lEP":20,"aVMem":0,"mVMem":0,"lVMem":0,"VMemF":0,"EPf":0,"aPMem":112614793,"mPMem":215252992,"lPMem":1073741824,"aNproc":2,"mNproc":5,"lNproc":100,"PMemF":0,"NprocF":0,"aIO":0.122,"mIO":15.163,"lIO":5120,"aIOPS":0,"mIOPS":1,"lIOPS":1024},{"From":"06-03 16:46","To":"06-04 16:46","aCPU":1,"mCPU":35,"lCPU":100,"aEP":0,"mEP":2,"lEP":20,"aVMem":0,"mVMem":0,"lVMem":0,"VMemF":0,"EPf":0,"aPMem":110016762,"mPMem":261550080,"lPMem":1073741824,"aNproc":2,"mNproc":6,"lNproc":100,"PMemF":0,"NprocF":0,"aIO":0.234,"mIO":151.578,"lIO":5120,"aIOPS":0,"mIOPS":7,"lIOPS":1024},{"From":"06-04 16:46","To":"06-05 16:46","aCPU":1,"mCPU":36,"lCPU":100,"aEP":0,"mEP":0,"lEP":20,"aVMem":0,"mVMem":0,"lVMem":0,"VMemF":0,"EPf":0,"aPMem":113645298,"mPMem":164380672,"lPMem":1073741824,"aNproc":3,"mNproc":13,"lNproc":100,"PMemF":0,"NprocF":0,"aIO":0.139,"mIO":44.45,"lIO":5120,"aIOPS":0,"mIOPS":4,"lIOPS":1024},{"From":"06-05 16:46","To":"06-06 16:46","aCPU":1,"mCPU":23,"lCPU":200,"aEP":0,"mEP":2,"lEP":20,"aVMem":0,"mVMem":0,"lVMem":0,"VMemF":0,"EPf":0,"aPMem":117140603,"mPMem":253558784,"lPMem":2147483648,"aNproc":2,"mNproc":11,"lNproc":100,"PMemF":0,"NprocF":0,"aIO":0.271,"mIO":81.386,"lIO":5120,"aIOPS":0,"mIOPS":6,"lIOPS":1024}]}"
Il est évident que les valeurs de "aCPU" ne dépassent pas 1 ou 2. La somme de ces valeurs nous donne 8%, ce qui ne correspond pas à la courbe rouge de performance dans l'espace NOC.

En revanche, la variable "mCPU" est la bonne valeur représentant la consommation maximale par jour en pourcentage, mais cette valeur est par rapport au nombre de cœurs CPU multiplié par 100.

Car d'après la documentation des statistiques de performance sur NOC, nous avons la règle suivante :

Si 1 core a été assigné à un hébergement donné, le maximum que vous pouvez solliciter sera de 100%.
Si davantage de cores sont assignés, le pourcentage sera en proportion.
Ainsi, 400% et 800% signifient respectivement que 4 cores et 8 cores sont sollicités au maximum selon vos ressources attribuées.

Par exemple, supposons que vous avez assigné 2 cores sur un de vos hébergements et que le pourcentage indique 227% : cela signifie que vous avez excédé de 27% la limite que vous avez définie."
Par conséquent, la formule correcte est la suivante :

$cpuUsagePercentage = (SUM($mCPU) / ($nombreCoresCPU * 100)) * 100;
OU
$cpuUsagePercentage = SUM($mCPU) / $nombreCoresCPU;

Je souhaite souligner un point supplémentaire : J'ai observé que la variable "lCPU" représente la limite maximale atteinte, indépendamment de la période considérée. Cela a été confirmé par mes tests, où j'ai augmenté le nombre de CPU à 2 puis l'ai réduit à 1, et j'ai constaté que la valeur de lCPU reste toujours à 200.

Que pensez-vous de ce raisonnement ?

Et merci pour votre coopération.
Mes sincères salutations.
 

PH-Mina

Administrator
Membre du personnel
#3
Bonjour Imed,

Tout d'abord, bravo pour votre bonne idée.

L'intégration d'un plugin Wordpress permettant aux client(e)s de régler les ressources CPU, RAM et I/O depuis leur wp-admin offrira une plus grande autonomie.

Voici, quelques suggestions :
  1. Il serait intéressant d'ajouter un mode standard et un mode pro (semi-dédié) à votre interface. Nous travaillons à rendre possible la migration automatisée possible entre ces deux types d'infrastructure. À l'avenir, vous pourrez offrir à vos clients la possibilité de passer facilement d'un N0C standard à un N0CLS (Pro) selon leurs besoins et vice versa. Nous étudierons la faisabilité d'une migration automatisée vers un environnement dédié HybridCloud N0C utilisant l'API PlanetHoster après le lancement de cette offre.

  2. À mon humble avis, je pense qu'afficher les "Faults" est plus pertinent que les moyennes. Ainsi, le client prendra la décision d'ajuster les ressources CPU, RAM et I/O ou faire vous faire intervenir pour analyser la cause des charges anormales.
Pour votre information, notre API se base sur les données transmisses par les LVE de CloudLinux. Voici, une documentation à ce sujet :

https://docs.cloudlinux.com/shared/command-line_tools/#lveinfo

J'espère que ma réponse vous sera utile. Je vous souhaite beaucoup de succès et j'encourage les autres client(e)s utilisant notre API à partager leurs suggestions pour Imed ou notre équipe.

Cordialement,
 

Imed ZHIR

New Member
#4
Bonjour Mina

Je vous remercie pour votre proposition intéressante. Je prends en compte ces suggestions dans mon modèle économique afin de bénéficier d'une plus grande flexibilité en matière d'hébergement.

Je suis ravi de savoir qu'il y a tant de possibilités pour une collaboration future. En tant que propriétaire d'une startup ciblant les PME francophones, je suis convaincu que les fonctionnalités supplémentaires que vous proposez auront une grande valeur pour mes clients.

Vos suggestions et votre expertise seront inestimables pour développer mes services et répondre aux besoins spécifiques de ce marché.

Je vous remercie encore une fois pour votre soutien et je suis impatient de travailler ensemble dans un proche avenir.

Cordialement
Imed ZHIR
 
Haut