Class: Google::Apis::MonitoringV3::ServiceLevelObjective
- Inherits:
-
Object
- Object
- Google::Apis::MonitoringV3::ServiceLevelObjective
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- lib/google/apis/monitoring_v3/classes.rb,
lib/google/apis/monitoring_v3/representations.rb,
lib/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
-
#calendar_period ⇒ String
A calendar period, semantically "since the start of the current ".
-
#display_name ⇒ String
Name used for UI elements listing this SLO.
-
#goal ⇒ Float
The fraction of service that must be good in order for this objective to be met.
-
#name ⇒ String
Identifier.
-
#rolling_period ⇒ String
A rolling time period, semantically "in the past ".
-
#service_level_indicator ⇒ Google::Apis::MonitoringV3::ServiceLevelIndicator
A Service-Level Indicator (SLI) describes the "performance" of a service.
-
#user_labels ⇒ Hash<String,String>
Labels which have been used to annotate the service-level objective.
Instance Method Summary collapse
-
#initialize(**args) ⇒ ServiceLevelObjective
constructor
A new instance of ServiceLevelObjective.
-
#update!(**args) ⇒ Object
Update properties of this object.
Constructor Details
#initialize(**args) ⇒ ServiceLevelObjective
Returns a new instance of ServiceLevelObjective.
4521 4522 4523 |
# File 'lib/google/apis/monitoring_v3/classes.rb', line 4521 def initialize(**args) update!(**args) end |
Instance Attribute Details
#calendar_period ⇒ String
A calendar period, semantically "since the start of the current ". At this
time, only DAY, WEEK, FORTNIGHT, and MONTH are supported.
Corresponds to the JSON property calendarPeriod
4469 4470 4471 |
# File 'lib/google/apis/monitoring_v3/classes.rb', line 4469 def calendar_period @calendar_period end |
#display_name ⇒ String
Name used for UI elements listing this SLO.
Corresponds to the JSON property displayName
4474 4475 4476 |
# File 'lib/google/apis/monitoring_v3/classes.rb', line 4474 def display_name @display_name end |
#goal ⇒ Float
The fraction of service that must be good in order for this objective to be
met. 0 < goal <= 0.9999.
Corresponds to the JSON property goal
4480 4481 4482 |
# File 'lib/google/apis/monitoring_v3/classes.rb', line 4480 def goal @goal end |
#name ⇒ String
Identifier. 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
4487 4488 4489 |
# File 'lib/google/apis/monitoring_v3/classes.rb', line 4487 def name @name end |
#rolling_period ⇒ String
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
4493 4494 4495 |
# File 'lib/google/apis/monitoring_v3/classes.rb', line 4493 def rolling_period @rolling_period end |
#service_level_indicator ⇒ Google::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
4509 4510 4511 |
# File 'lib/google/apis/monitoring_v3/classes.rb', line 4509 def service_level_indicator @service_level_indicator end |
#user_labels ⇒ Hash<String,String>
Labels which have been used to annotate the service-level objective. Label
keys must start with a letter. Label keys and values may contain lowercase
letters, numbers, underscores, and dashes. Label keys and values have a
maximum length of 63 characters, and must be less than 128 bytes in size. Up
to 64 label entries may be stored. For labels which do not have a semantic
value, the empty string may be supplied for the label value.
Corresponds to the JSON property userLabels
4519 4520 4521 |
# File 'lib/google/apis/monitoring_v3/classes.rb', line 4519 def user_labels @user_labels end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
4526 4527 4528 4529 4530 4531 4532 4533 4534 |
# File 'lib/google/apis/monitoring_v3/classes.rb', line 4526 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) @user_labels = args[:user_labels] if args.key?(:user_labels) end |