Class: Google::Apis::MonitoringV3::ServiceLevelObjective

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
generated/google/apis/monitoring_v3/classes.rb,
generated/google/apis/monitoring_v3/representations.rb,
generated/google/apis/monitoring_v3/representations.rb

Overview

A Service-Level Objective (SLO) describes a level of desired good service. It consists of a service-level indicator (SLI), a performance goal, and a period over which the objective is to be evaluated against that goal. The SLO can use SLIs defined in a number of different manners. Typical SLOs might include "99% of requests in each rolling week have latency below 200 milliseconds" or "99.5% of requests in each calendar month return successfully."

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Core::JsonObjectSupport

#to_json

Methods included from Core::Hashable

process_value, #to_h

Constructor Details

#initialize(**args) ⇒ ServiceLevelObjective

Returns a new instance of ServiceLevelObjective.


3164
3165
3166
# File 'generated/google/apis/monitoring_v3/classes.rb', line 3164

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#calendar_periodString

A calendar period, semantically "since the start of the current < calendar_period>". At this time, only DAY, WEEK, FORTNIGHT, and MONTH are supported. Corresponds to the JSON property calendarPeriod

Returns:

  • (String)

3121
3122
3123
# File 'generated/google/apis/monitoring_v3/classes.rb', line 3121

def calendar_period
  @calendar_period
end

#display_nameString

Name used for UI elements listing this SLO. Corresponds to the JSON property displayName

Returns:

  • (String)

3126
3127
3128
# File 'generated/google/apis/monitoring_v3/classes.rb', line 3126

def display_name
  @display_name
end

#goalFloat

The fraction of service that must be good in order for this objective to be met. 0 < goal <= 0.999. Corresponds to the JSON property goal

Returns:

  • (Float)

3132
3133
3134
# File 'generated/google/apis/monitoring_v3/classes.rb', line 3132

def goal
  @goal
end

#nameString

Resource name for this ServiceLevelObjective. The format is: projects/[PROJECT_ID_OR_NUMBER]/services/[SERVICE_ID]/serviceLevelObjectives/[ SLO_NAME] Corresponds to the JSON property name

Returns:

  • (String)

3139
3140
3141
# File 'generated/google/apis/monitoring_v3/classes.rb', line 3139

def name
  @name
end

#rolling_periodString

A rolling time period, semantically "in the past ". Must be an integer multiple of 1 day no larger than 30 days. Corresponds to the JSON property rollingPeriod

Returns:

  • (String)

3145
3146
3147
# File 'generated/google/apis/monitoring_v3/classes.rb', line 3145

def rolling_period
  @rolling_period
end

#service_level_indicatorGoogle::Apis::MonitoringV3::ServiceLevelIndicator

A Service-Level Indicator (SLI) describes the "performance" of a service. For some services, the SLI is well-defined. In such cases, the SLI can be described easily by referencing the well-known SLI and providing the needed parameters. Alternatively, a "custom" SLI can be defined with a query to the underlying metric store. An SLI is defined to be good_service / total_service over any queried time interval. The value of performance always falls into the range 0 <= performance <= 1. A custom SLI describes how to compute this ratio, whether this is by dividing values from a pair of time series, cutting a Distribution into good and bad counts, or counting time windows in which the service complies with a criterion. For separation of concerns, a single Service-Level Indicator measures performance for only one aspect of service quality, such as fraction of successful queries or fast- enough queries. Corresponds to the JSON property serviceLevelIndicator


3162
3163
3164
# File 'generated/google/apis/monitoring_v3/classes.rb', line 3162

def service_level_indicator
  @service_level_indicator
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object


3169
3170
3171
3172
3173
3174
3175
3176
# File 'generated/google/apis/monitoring_v3/classes.rb', line 3169

def update!(**args)
  @calendar_period = args[:calendar_period] if args.key?(:calendar_period)
  @display_name = args[:display_name] if args.key?(:display_name)
  @goal = args[:goal] if args.key?(:goal)
  @name = args[:name] if args.key?(:name)
  @rolling_period = args[:rolling_period] if args.key?(:rolling_period)
  @service_level_indicator = args[:service_level_indicator] if args.key?(:service_level_indicator)
end