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
Public Class Methods
# 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 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 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
# 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
# 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
# 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
# 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
# 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
# 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