我正在使用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”);
这些数据也与图表上的数据不匹配。 请告诉我你如何获得准确的数据。
由于
答案 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()