每台服务器的带宽摘要
Bandwidth summary per server
我正在尝试获取我帐户下所有软层服务器的带宽数据。
感谢 account_servers.rb
我能够获得所有服务器的服务器 ID。现在我想获取服务器在特定时间范围内使用的带宽。我感兴趣的数据是
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Metric_Tracking_Object_Bandwidth_Summary
.
我尝试使用 softlayer_client.service_named("Metric_Tracking_Object_Bandwidth_Summary")
获取信息。很遗憾,我无法获得详细信息。
我确实找到了 java 代码,但我对 ruby 代码感兴趣。有人可以指导我获取服务器带宽摘要吗?
免责声明:我创建了自己的 Ruby SoftLayer 客户端,您可以在 http://github.com/zertico/softlayer 查看它,特别是在您想要访问某些特定数据的这种情况下(我不是 SoftLayer工作人员 ;) )
如果您想尝试一下,解决您问题的代码是
ps:我认为你在操纵一个SoftLayer_Hardware_Server,对吧?
hardware = Softlayer::Hardware::Server.find(123)
hardware.get_current_bandwidth_summary
mask = 'mask[currentBandwidthSummary]'
hardware = Softlayer::Hardware::Server.mask(mask).find(123)
hardware.current_bandwidth_summary
您将访问这样一个 ruby 对象:
=> #<Softlayer::Metric::Tracking::Object::Bandwidth::Summary:0x007ff74b683540
@allocation_amount="1234",
@allocation_id=111111,
@amount_out="12.34567",
@average_daily_usage="1.23",
@currently_over_allocation_flag=0,
@id=1111111,
@outbound_bandwidth_amount="123.45678",
@projected_bandwidth_usage="123.45",
@projected_over_allocation_flag=0>
希望对你有帮助ps,如果对客户端使用有任何疑问,请评论
请尝试以下 Ruby
示例:
require 'rubygems'
require 'softlayer_api'
server_id = 11498369
# Your SoftLayer API username.
SL_API_USERNAME = 'set me'
# Your SoftLayer API key.
SL_API_KEY = 'set me'
softlayer_client = SoftLayer::Client.new(:username => SL_API_USERNAME,
:api_key => SL_API_KEY)
vsi_service = softlayer_client.service_named('SoftLayer_Virtual_Guest')
metric_tracking_object_id = vsi_service.object_with_id(server_id).getMetricTrackingObjectId
metric_service = softlayer_client.service_named('SoftLayer_Metric_Tracking_Object')
service_ref = metric_service.object_with_id(metric_tracking_object_id)
begin
object_template = [{
'keyName' => 'PUBLICOUT',
'summaryType' => 'sum'
}]
result = service_ref.getSummaryData('2016-03-29T00:00:00','2016-03-30T00:00:00',object_template,600)
puts result.inspect
rescue => e
puts 'Error when executing the script...'
$stdout.print(e.inspect)
end
参考文献:
SoftLayer_Metric_Tracking_Object::getSummaryData
SoftLayer_Virtual_Guest::getMetricTrackingObjectId
使用 SoftLayer_Virtual_Gues::getBandwidthDataByDate
的第二个示例:
require 'rubygems'
require 'softlayer_api'
require 'pp'
require 'date'
# Set the server id that you wish to get Bandwidth information.
server_id = 11498369
softlayer_client = SoftLayer::Client.new(:username => 'set me',
:api_key => 'set me')
server = SoftLayer::VirtualServer.server_with_id(server_id, :client => softlayer_client)
get_bandwidth_data_by_date = server.service.getBandwidthDataByDate('2016-03-29T00:00:00','2016-03-30T00:00:00','public')
pp('getBandwidthDataByDate: ', get_bandwidth_data_by_date)
参考文献:
我正在尝试获取我帐户下所有软层服务器的带宽数据。
感谢 account_servers.rb
我能够获得所有服务器的服务器 ID。现在我想获取服务器在特定时间范围内使用的带宽。我感兴趣的数据是
http://sldn.softlayer.com/reference/datatypes/SoftLayer_Metric_Tracking_Object_Bandwidth_Summary .
我尝试使用 softlayer_client.service_named("Metric_Tracking_Object_Bandwidth_Summary")
获取信息。很遗憾,我无法获得详细信息。
我确实找到了 java 代码,但我对 ruby 代码感兴趣。有人可以指导我获取服务器带宽摘要吗?
免责声明:我创建了自己的 Ruby SoftLayer 客户端,您可以在 http://github.com/zertico/softlayer 查看它,特别是在您想要访问某些特定数据的这种情况下(我不是 SoftLayer工作人员 ;) )
如果您想尝试一下,解决您问题的代码是
ps:我认为你在操纵一个SoftLayer_Hardware_Server,对吧?
hardware = Softlayer::Hardware::Server.find(123)
hardware.get_current_bandwidth_summary
mask = 'mask[currentBandwidthSummary]'
hardware = Softlayer::Hardware::Server.mask(mask).find(123)
hardware.current_bandwidth_summary
您将访问这样一个 ruby 对象:
=> #<Softlayer::Metric::Tracking::Object::Bandwidth::Summary:0x007ff74b683540
@allocation_amount="1234",
@allocation_id=111111,
@amount_out="12.34567",
@average_daily_usage="1.23",
@currently_over_allocation_flag=0,
@id=1111111,
@outbound_bandwidth_amount="123.45678",
@projected_bandwidth_usage="123.45",
@projected_over_allocation_flag=0>
希望对你有帮助ps,如果对客户端使用有任何疑问,请评论
请尝试以下 Ruby
示例:
require 'rubygems'
require 'softlayer_api'
server_id = 11498369
# Your SoftLayer API username.
SL_API_USERNAME = 'set me'
# Your SoftLayer API key.
SL_API_KEY = 'set me'
softlayer_client = SoftLayer::Client.new(:username => SL_API_USERNAME,
:api_key => SL_API_KEY)
vsi_service = softlayer_client.service_named('SoftLayer_Virtual_Guest')
metric_tracking_object_id = vsi_service.object_with_id(server_id).getMetricTrackingObjectId
metric_service = softlayer_client.service_named('SoftLayer_Metric_Tracking_Object')
service_ref = metric_service.object_with_id(metric_tracking_object_id)
begin
object_template = [{
'keyName' => 'PUBLICOUT',
'summaryType' => 'sum'
}]
result = service_ref.getSummaryData('2016-03-29T00:00:00','2016-03-30T00:00:00',object_template,600)
puts result.inspect
rescue => e
puts 'Error when executing the script...'
$stdout.print(e.inspect)
end
参考文献:
SoftLayer_Metric_Tracking_Object::getSummaryData
SoftLayer_Virtual_Guest::getMetricTrackingObjectId
使用 SoftLayer_Virtual_Gues::getBandwidthDataByDate
的第二个示例:
require 'rubygems'
require 'softlayer_api'
require 'pp'
require 'date'
# Set the server id that you wish to get Bandwidth information.
server_id = 11498369
softlayer_client = SoftLayer::Client.new(:username => 'set me',
:api_key => 'set me')
server = SoftLayer::VirtualServer.server_with_id(server_id, :client => softlayer_client)
get_bandwidth_data_by_date = server.service.getBandwidthDataByDate('2016-03-29T00:00:00','2016-03-30T00:00:00','public')
pp('getBandwidthDataByDate: ', get_bandwidth_data_by_date)
参考文献: