SoftLayer 中的资源数据

Resource Data In SoftLayer

我正在使用 SL java 客户端在详细设备中开发资源图,例如带宽、使用情况、内存和 cpu。从 api 检索到的数据与控制门户上的图表不同。

这些是来自 control.softlayer.com

图表的数据
Date                        CPU Value
2016-03-03T10:00:00-06:00   0.67
2016-03-03T10:30:00-06:00   0.86
2016-03-03T11:00:00-06:00   0.84
2016-03-03T11:30:00-06:00    1
2016-03-03T12:00:00-06:00   0.82

这些是来自 SL API 的数据。 getCount() 是 CPU 值。 获取类型():cpu0

getCounter() : 0.26266666666667
getDateTime() : 03 03 2016 10:00:00-0600
dt.hashCode() : 1396398841
****************************************
getType() : cpu0
getCounter() : 0.42433333333333
getDateTime() : 03 03 2016 10:30:00-0600
dt.hashCode() : 1574026271
****************************************
getType() : cpu0
getCounter() : 0.591
getDateTime() : 03 03 2016 11:00:00-0600
dt.hashCode() : 1955972951
****************************************
getType() : cpu0
getCounter() : 0.57966666666667
getDateTime() : 03 03 2016 11:30:00-0600
dt.hashCode() : 357719181
****************************************
getType() : cpu0
getCounter() : 0.55033333333333
getDateTime() : 03 03 2016 12:00:00-0600
dt.hashCode() : 1379547114
****************************************

我已使用此 api 获取 CPU 数据。 列表 dataList = Guest.service(client, deviceID).getCpuMetricDataByDate(startDate, endDate, null);

内存数据API 列表 dataList = Guest.service(client, deviceID).getMemoryMetricDataByDate(startDate, endDate);

带宽数据API 列表 dataList = Guest.service(client, deviceID).getBandwidthDataByDate(startDate, endDate, "public");

这些数据也与图表上的数据不匹配。 请给我你的评论,我如何才能得到精确的数据。

谢谢

我建议你使用 http://sldn.softlayer.com/reference/services/SoftLayer_Metric_Tracking_Object/getSummaryData 方法,请参阅下面的示例,使用 Softlayer Python 客户端获取带宽。为了获得 CPU 用此值替换类型变量。

[
{
"keyName": "CPU0",
"summaryType": "max"
}
]

例子:

import SoftLayer
import pprint


def main():
    hardware_id = 120065

    start_date = "2015-10-03"
    end_date = "2015-10-12"

    # []SoftLayer_Container_Metric_Data_Type
    types = [
        {
            "keyName": "PUBLICIN",
            "name": "publicIn",
            "summaryType": "sum"
        },
        {
            "keyName": "PUBLICOUT",
            "name": "publicOut",
            "summaryType": "sum"
        }
    ]

    client = SoftLayer.create_client_from_env()
    hw_object = client.call('SoftLayer_Hardware_Server',
                            'getObject',
                            mask="mask[metricTrackingObjectId]",
                            id=hardware_id)
    result = client.call('SoftLayer_Metric_Tracking_Object',
                         'getSummaryData',
                         start_date,
                         end_date,
                         types,
                         3600,
                         id=hw_object['metricTrackingObjectId'])
    pprint.pprint(result)


if __name__ == '__main__':
    main()