SoftLayer中的资源数据

时间:2016-03-14 12:40:01

标签: ibm-cloud-infrastructure

我正在使用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值。 getType():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数据。 List dataList = Guest.service(client,deviceID).getCpuMetricDataByDate(startDate,endDate,null);

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

带宽数据API List dataList = Guest.service(client,deviceID).getBandwidthDataByDate(startDate,endDate,“public”);

这些数据也与图表上的数据不匹配。 请告诉我你如何获得准确的数据。

由于

1 个答案:

答案 0 :(得分:0)

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

[
{
"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()