Class: Azure::Armrest::Insights::MetricsService

Inherits:
ArmrestService show all
Defined in:
lib/azure/armrest/insights/metrics_service.rb

Instance Attribute Summary

Attributes inherited from ArmrestService

#api_version, #armrest_configuration, #base_url, #provider, #service_name

Instance Method Summary collapse

Methods inherited from ArmrestService

configure, #get_provider, #get_subscription, #list_locations, #list_resource_groups, #list_resources, #list_subscriptions, #locations, #poll, #tags, #tenants, #wait

Constructor Details

#initialize(armrest_configuration, options = {}) ⇒ MetricsService

Creates and returns a new MetricsService object.



7
8
9
# File 'lib/azure/armrest/insights/metrics_service.rb', line 7

def initialize(armrest_configuration, options = {})
  super(armrest_configuration, 'metrics', 'Microsoft.Insights', options)
end

Instance Method Details

#list(provider, resource_type, resource_name, resource_group = nil, options = {}) ⇒ Object

Return the metric definitions for the given provider, resource_type, and resource_name for resource_group. You may pass a :filter option as well.

NOTE: This uses the older REST API. If you want the newer API, use the list_definitions method below.

Example:

metrics = Azure::Armrest::Insights::MetricsService.new(conf)

metrics.list('Microsoft.SQL', 'servers', 'myServer/databases/myDB', 'mygroup')
metrics.list('Microsoft.Compute', 'virtualMachines', 'myVm', 'mygroup')

Raises:

  • (ArgumentError)


24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/azure/armrest/insights/metrics_service.rb', line 24

def list(provider, resource_type, resource_name, resource_group = nil, options = {})
  resource_group ||= configuration.resource_group

  raise ArgumentError, "no resource group provided" unless resource_group

  url = build_url(provider, resource_type, resource_name, resource_group, options)

  response = rest_get(url)

  Azure::Armrest::ArmrestCollection.create_from_response(
    response,
    Azure::Armrest::Insights::MetricDefinition
  )
end

#list_definitions(resource, filter = nil) ⇒ Object

Get a list of metrics definitions for resource_id, which can be either a resource object or a plain resource string. You may also provide a filter to limit the results.

Note that the output for this method is different than the list method, which uses an older api-version.

Example:

vms = Azure::Armrest::VirtualMachineService.new(conf)
mts = Azure::Armrest::Insights::MetricService.new(conf)

vm = vms.get('your_vm', 'your_resource_group')

# With or without filter
definitions = mts.list_definitions(vm.id)
definitions = mts.list_definitions(vm.id, "name.value eq 'Percentage CPU'")


92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/azure/armrest/insights/metrics_service.rb', line 92

def list_definitions(resource, filter = nil)
  resource_id = resource.respond_to?(:id) ? resource.id : resource
  version = configuration.provider_default_api_version(provider, 'metricDefinitions')

  url = File.join(
    configuration.environment.resource_url,
    resource_id,
    'providers/microsoft.insights/metricdefinitions'
  )

  url << "?api-version=#{version}"
  url << "&$filter=#{filter}" if filter

  response = rest_get(url)

  Azure::Armrest::ArmrestCollection.create_from_response(
    response,
    Azure::Armrest::Insights::MetricDefinition
  )
end

#list_metrics(resource, filter = nil) ⇒ Object

Returns a list metrics for resource_id, which can be either a resource object or a plain resource string. You may also provide a filter to limit the results.

If no filter expression is defined, the first metric defined for that resource will be returned using the primary aggregation type in the metric defintion over a time period of the last hour.

vms = Azure::Armrest::VirtualMachineService.new(conf)
mts = Azure::Armrest::Insights::MetricService.new(conf)

vm = vms.get('your_vm', 'your_resource_group')

filter = "name.value eq 'Percentage CPU' and startTime "
filter << "eq 2017-01-03 and endTime eq 2017-01-04"

definitions = mts.list_metrics(vm.id)


57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/azure/armrest/insights/metrics_service.rb', line 57

def list_metrics(resource, filter = nil)
  resource_id = resource.respond_to?(:id) ? resource.id : resource

  url = File.join(
    configuration.environment.resource_url,
    resource_id,
    'providers/microsoft.insights/metrics'
  )

  url << "?api-version=#{api_version}"
  url << "&$filter=#{filter}" if filter

  response = rest_get(url)

  Azure::Armrest::ArmrestCollection.create_from_response(response, Azure::Armrest::Insights::Metric)
end