1

远程检查 CPU、内存和磁盘空间 IBM Bluemix PHP 实例。

我有一个在 IBM Bluemix 中运行的 php 实例。

现在我想通过调用 php 网页从外部程序检查 CPU、内存和磁盘空间。

对于 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)

对于磁盘空间,我使用以下功能:

disk_free_space("/") 

但是当我将这些结果与 IBM Bluemix Console 提供的结果进行比较时,它们是不同的。

是否有正确的方法来外部监控这些值?

4

3 回答 3

2

您在正在运行的应用程序中看到的值应该与正在运行的执行 PHP 运行时的虚拟进程相关,因此,结果可能与您在应用程序仪表板中的 IBM Bluemix 控制台中看到的不同,因为您看到的数字没有t 考虑整个运行时使用的资源。

此外,您无法确定检索到的值是否在两个测试之间同时引用。

如果您需要更强大的性能监控工具,可以使用IBM Bluemix 上的Monitoring and Analytics服务。不幸的是,监控和分析服务不提供 API 来检索其收集的指标。我们意识到支持编程接口会很有帮助,并且在我们的待办事项中添加该功能。

于 2016-04-12T10:57:51.890 回答
2

您可以使用 CF API REST 调用检索该信息。您可以在此处找到 CF API 文档:

在这种特定情况下,您可以从您的 php 应用程序执行 curl 调用并解析 JSON 响应以获取 CPU、内存和磁盘空间信息。

curl " https://api.ng.bluemix.net/v2/apps/YOURAPP_GUID/summary " -X GET -H "Authorization: bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoidWFhLWlkLTQyNCIsImVtYWlsIjoiZW1haWwtMjkzQHNvbWVkb21haW4uY29tIiwic2NvcGUiOlsiY2xvdWRfY29udHJvbGxlci5hZG1pbiJdLCJhdWQiOlsiY2xvdWRfY29udHJvbGxlciJdLCJleHAiOjE0NjA1MDY2NjF9.iUpeFnPKDWf3sxvDB0RF2_nSLAkqLZP7iN6Nx0bWE-Q"

您可以使用以下方法检索授权标头:

cf oauth-token

登录 IBM Bluemix 后(cf login)

如果您想从应用程序中检索身份验证令牌,您应该在运行第一个 curl get 之前使用另一个 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/令牌

于 2016-04-12T15:53:24.173 回答
0

尝试:

bx cf app <app-name>
于 2018-07-03T14:49:02.577 回答