远程检查 CPU、内存和磁盘 space IBM Bluemix PHP 实例
Remotely check CPU, memory and disk space IBM Bluemix PHP instance
远程检查 CPU、内存和磁盘 space IBM Bluemix PHP 实例。
我在 IBM Bluemix 中有一个 php 实例 运行。
现在我想通过调用 php 网页从外部程序检查 CPU、内存和磁盘 Space。
对于CPU,我尝试了以下功能:
function get_server_cpu_usage(){
$load = sys_getloadavg();
$cores = shell_exec("grep 'model name' /proc/cpuinfo | wc -l");
$load[2] = ($load[2] / $cores) * 100;
return $load[2];
}
对于内存,我使用以下函数:
memory_get_usage(true)
对于磁盘 Space 我使用以下函数:
disk_free_space("/")
但是当我将这些结果与 IBM Bluemix 控制台提供的结果进行比较时,它们是不同的。
是否有正确的方法从外部监控这些值?
您在 运行 应用程序中看到的值应该与执行 PHP 运行时的 运行 虚拟进程相关,因此结果可能与您看到的不同来自应用程序仪表板中的 IBM Bluemix 控制台,因为您看到的数字没有考虑整个运行时使用的资源。
此外,您无法确定检索到的值是在两次测试之间的同一时刻引用的。
如果您需要更强大的性能监控工具,可以使用 IBM Bluemix 上的 Monitoring and Analytics 服务。不幸的是,监控和分析服务不提供 API 来检索其收集的指标。我们意识到支持编程接口会很有帮助,并且在我们的待办事项列表中添加该功能。
您可以使用 CF API REST 调用检索该信息。您可以在此处找到 CF APIs 文档:
- 申请摘要:
https://apidocs.cloudfoundry.org/234/apps/get_app_summary.html
- 详细的申请统计:https://apidocs.cloudfoundry.org/234/apps/get_detailed_stats_for_a_started_app.html
在这种特定情况下,您可以从 php 应用程序执行 curl 调用,并解析 JSON 响应以获得 CPU、内存和磁盘 Space 信息。
curl "https://api.ng.bluemix.net/v2/apps/YOURAPP_GUID/summary" -X
GET -H "Authorization: bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoidWFhLWlkLTQyNCIsImVtYWlsIjoiZW1haWwtMjkzQHNvbWVkb21haW4uY29tIiwic2NvcGUiOlsiY2xvdWRfY29udHJvbGxlci5hZG1pbiJdLCJhdWQiOlsiY2xvdWRfY29udHJvbGxlciJdLCJleHAiOjE0NjA1MDY2NjF9.iUpeFnPKDWf3sxvDB0RF2_nSLAkqLZP7iN6Nx0bWE-Q"
您可以通过以下方式检索授权 header:
cf oauth-token
登录 IBM Bluemix 后(cf 登录)
如果您想从您的应用程序中检索 auth-token,您应该在 运行 第一次 curl 获取之前使用另一个 REST API。
curl -s -X POST -H "Accept-Encoding: application/json" -d
"grant_type=password&password=YOURPASSWORD&scope=&username=YOURUSERNAME"
-u "cf:" https://login.ng.bluemix.net/UAALoginServerWAR/oauth/token
尝试:
bx cf app <app-name>
远程检查 CPU、内存和磁盘 space IBM Bluemix PHP 实例。
我在 IBM Bluemix 中有一个 php 实例 运行。
现在我想通过调用 php 网页从外部程序检查 CPU、内存和磁盘 Space。
对于CPU,我尝试了以下功能:
function get_server_cpu_usage(){
$load = sys_getloadavg();
$cores = shell_exec("grep 'model name' /proc/cpuinfo | wc -l");
$load[2] = ($load[2] / $cores) * 100;
return $load[2];
}
对于内存,我使用以下函数:
memory_get_usage(true)
对于磁盘 Space 我使用以下函数:
disk_free_space("/")
但是当我将这些结果与 IBM Bluemix 控制台提供的结果进行比较时,它们是不同的。
是否有正确的方法从外部监控这些值?
您在 运行 应用程序中看到的值应该与执行 PHP 运行时的 运行 虚拟进程相关,因此结果可能与您看到的不同来自应用程序仪表板中的 IBM Bluemix 控制台,因为您看到的数字没有考虑整个运行时使用的资源。
此外,您无法确定检索到的值是在两次测试之间的同一时刻引用的。
如果您需要更强大的性能监控工具,可以使用 IBM Bluemix 上的 Monitoring and Analytics 服务。不幸的是,监控和分析服务不提供 API 来检索其收集的指标。我们意识到支持编程接口会很有帮助,并且在我们的待办事项列表中添加该功能。
您可以使用 CF API REST 调用检索该信息。您可以在此处找到 CF APIs 文档:
- 申请摘要: https://apidocs.cloudfoundry.org/234/apps/get_app_summary.html
- 详细的申请统计:https://apidocs.cloudfoundry.org/234/apps/get_detailed_stats_for_a_started_app.html
在这种特定情况下,您可以从 php 应用程序执行 curl 调用,并解析 JSON 响应以获得 CPU、内存和磁盘 Space 信息。
curl "https://api.ng.bluemix.net/v2/apps/YOURAPP_GUID/summary" -X GET -H "Authorization: bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoidWFhLWlkLTQyNCIsImVtYWlsIjoiZW1haWwtMjkzQHNvbWVkb21haW4uY29tIiwic2NvcGUiOlsiY2xvdWRfY29udHJvbGxlci5hZG1pbiJdLCJhdWQiOlsiY2xvdWRfY29udHJvbGxlciJdLCJleHAiOjE0NjA1MDY2NjF9.iUpeFnPKDWf3sxvDB0RF2_nSLAkqLZP7iN6Nx0bWE-Q"
您可以通过以下方式检索授权 header:
cf oauth-token
登录 IBM Bluemix 后(cf 登录)
如果您想从您的应用程序中检索 auth-token,您应该在 运行 第一次 curl 获取之前使用另一个 REST API。
curl -s -X POST -H "Accept-Encoding: application/json" -d "grant_type=password&password=YOURPASSWORD&scope=&username=YOURUSERNAME" -u "cf:" https://login.ng.bluemix.net/UAALoginServerWAR/oauth/token
尝试:
bx cf app <app-name>