class Fog::Google::Monitoring::Real

Lists metric descriptors that match a filter.

@see cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors/list

Describes the schema of a MonitoredResource (a resource object that can be used for monitoring, logging, billing, or other purposes) using a type name and a set of labels.

@see cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.monitoredResourceDescriptors/list

List the data points of the time series that match the metric and labels values and that have data points in the interval

@see cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/list

Attributes

monitoring[R]

Public Class Methods

new(options) click to toggle source
# File lib/fog/google/monitoring/real.rb, line 9
def initialize(options)
  shared_initialize(options[:google_project], GOOGLE_MONITORING_API_VERSION, GOOGLE_MONITORING_BASE_URL)
  options[:google_api_scope_url] = GOOGLE_MONITORING_API_SCOPE_URLS.join(" ")

  initialize_google_client(options)
  @monitoring = ::Google::Apis::MonitoringV3::MonitoringService.new
  apply_client_options(@monitoring, options)
end

Public Instance Methods

create_metric_descriptor(metric_type: nil, unit: nil, value_type: nil, description: nil, display_name: nil, labels: [], metric_kind: nil) click to toggle source

Create a metric descriptor. User-created metric descriptors define custom metrics. @param metric_type [String] Required - the metric type. User-created metric descriptors should start

with custom.googleapis.com.

@param unit [String] The unit in which the metric value is reported.

It is only applicable if the valueType is INT64, DOUBLE, or DISTRIBUTION.

@param value_type [String] Whether the measurement is an integer, a floating-point number, etc.

Some combinations of metricKind and valueType might not be supported.

@param description [String] A detailed description of the metric, which can be used in documentation. @param display_name [String] A concise name for the metric, which can be displayed in user interfaces.

Use sentence casing without an ending period, for example "Request count".

@param labels [Array<Hash>] A list of label hash objects that can be used to describe a specific

instance of this metric type.

@option labels [String] key The label key. @option labels [String] value_type The type of data that can be assigned to the label. @option labels [String] description A human-readable description for the label. @param metric_kind [String] The pagination token, which is used to page through large result sets.

@return [::Google::Apis::MonitoringV3::MetricDescriptor] created metric descriptor @see cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.metricDescriptors/create

# File lib/fog/google/requests/monitoring/create_metric_descriptor.rb, line 25
def create_metric_descriptor(metric_type: nil, unit: nil, value_type: nil,
                             description: nil, display_name: nil, labels: [], metric_kind: nil)
  metric_descriptor = ::Google::Apis::MonitoringV3::MetricDescriptor.new(
    name: "projects/#{@project}/metricDescriptors/#{metric_type}",
    type: metric_type,
    unit: unit,
    value_type: value_type,
    description: description,
    display_name: display_name,
    labels: labels.map { |l| ::Google::Apis::MonitoringV3::LabelDescriptor.new(**l) },
    metric_kind: metric_kind
  )

  @monitoring.create_project_metric_descriptor("projects/#{@project}", metric_descriptor)
end
create_timeseries(timeseries: []) click to toggle source

Create a timeseries. User-created time series should only be used with custom metrics.

@param timeseries [Array<Hash>] Timeseries to create/update.

@see https://cloud.google.com/monitoring/api/ref_v3/rest/v3/TimeSeries for expected format.

@see cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.timeSeries/create

# File lib/fog/google/requests/monitoring/create_timeseries.rb, line 12
def create_timeseries(timeseries: [])
  request = ::Google::Apis::MonitoringV3::CreateTimeSeriesRequest.new(
    time_series: timeseries
  )
  @monitoring.create_project_time_series("projects/#{@project}", request)
end
delete_metric_descriptor(metric_type) click to toggle source
# File lib/fog/google/requests/monitoring/delete_metric_descriptor.rb, line 5
def delete_metric_descriptor(metric_type)
  @monitoring.delete_project_metric_descriptor("projects/#{@project}/metricDescriptors/#{metric_type}")
end
get_metric_descriptor(metric_type) click to toggle source
# File lib/fog/google/requests/monitoring/get_metric_descriptor.rb, line 5
def get_metric_descriptor(metric_type)
  @monitoring.get_project_metric_descriptor("projects/#{@project}/metricDescriptors/#{metric_type}")
end
get_monitored_resource_descriptor(resource_type) click to toggle source
# File lib/fog/google/requests/monitoring/get_monitored_resource_descriptor.rb, line 5
def get_monitored_resource_descriptor(resource_type)
  @monitoring.get_project_monitored_resource_descriptor(
    "projects/#{@project}/monitoredResourceDescriptors/#{resource_type}"
  )
end
list_metric_descriptors(filter: nil, page_size: nil, page_token: nil) click to toggle source
# File lib/fog/google/requests/monitoring/list_metric_descriptors.rb, line 9
def list_metric_descriptors(filter: nil, page_size: nil, page_token: nil)
  @monitoring.list_project_metric_descriptors(
    "projects/#{@project}",
    :filter => filter,
    :page_size => page_size,
    :page_token => page_token
  )
end
list_monitored_resource_descriptors(filter: nil, page_size: nil, page_token: nil) click to toggle source
# File lib/fog/google/requests/monitoring/list_monitored_resource_descriptors.rb, line 10
def list_monitored_resource_descriptors(filter: nil, page_size: nil, page_token: nil)
  @monitoring.list_project_monitored_resource_descriptors(
    "projects/#{@project}",
    :filter => filter,
    :page_size => page_size,
    :page_token => page_token
  )
end
list_timeseries(filter: nil, interval: nil, aggregation: nil, order_by: nil, page_size: nil, page_token: nil, view: nil) click to toggle source
# File lib/fog/google/requests/monitoring/list_timeseries.rb, line 10
def list_timeseries(filter: nil, interval: nil, aggregation: nil, order_by: nil, page_size: nil, page_token: nil, view: nil)
  if filter.nil?
    raise ArgumentError.new("filter is required")
  end

  if interval.nil?
    raise ArgumentError.new("interval is required")
  end

  options = {
    :filter => filter,
    :interval_end_time => interval[:end_time],
    :interval_start_time => interval[:start_time],
    :order_by => order_by,
    :page_size => page_size,
    :page_token => page_token,
    :view => view
  }
  if options.key?(:interval)
    interval = options[:interval]
    parameters["interval.endTime"] = interval[:end_time] if interval.key?(:end_time)
    parameters["interval.startTime"] = interval[:start_time] if interval.key?(:start_time)
  end

  unless aggregation.nil?
    %i(alignment_period cross_series_reducer group_by_fields per_series_aligner).each do |k|
      if aggregation.key?(k)
        options["aggregation_#{k}".to_sym] = aggregation[k]
      end
    end
  end

  @monitoring.list_project_time_series("projects/#{@project}", **options)
end