Class: Google::Apis::MonitoringV3::Condition

Inherits:
Object
  • Object
show all
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 condition is a true/false test that determines when an alerting policy should open an incident. If a condition evaluates to true, it signifies that something is wrong.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ Condition

Returns a new instance of Condition.



911
912
913
# File 'lib/google/apis/monitoring_v3/classes.rb', line 911

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

Instance Attribute Details

#condition_absentGoogle::Apis::MonitoringV3::MetricAbsence

A condition type that checks that monitored resources are reporting data. The configuration defines a metric and a set of monitored resources. The predicate is considered in violation when a time series for the specified metric of a monitored resource does not include any data in the specified duration. Corresponds to the JSON property conditionAbsent



833
834
835
# File 'lib/google/apis/monitoring_v3/classes.rb', line 833

def condition_absent
  @condition_absent
end

#condition_matched_logGoogle::Apis::MonitoringV3::LogMatch

A condition type that checks whether a log message in the scoping project ( https://cloud.google.com/monitoring/api/v3#project_name) satisfies the given filter. Logs from other projects in the metrics scope are not evaluated. Corresponds to the JSON property conditionMatchedLog



840
841
842
# File 'lib/google/apis/monitoring_v3/classes.rb', line 840

def condition_matched_log
  @condition_matched_log
end

#condition_monitoring_query_languageGoogle::Apis::MonitoringV3::MonitoringQueryLanguageCondition

A condition type that allows alerting policies to be defined using Monitoring Query Language (https://cloud.google.com/monitoring/mql). Corresponds to the JSON property conditionMonitoringQueryLanguage



846
847
848
# File 'lib/google/apis/monitoring_v3/classes.rb', line 846

def condition_monitoring_query_language
  @condition_monitoring_query_language
end

#condition_prometheus_query_languageGoogle::Apis::MonitoringV3::PrometheusQueryLanguageCondition

A condition type that allows alerting policies to be defined using Prometheus Query Language (PromQL) (https://prometheus.io/docs/prometheus/latest/querying/ basics/).The PrometheusQueryLanguageCondition message contains information from a Prometheus alerting rule and its associated rule group.A Prometheus alerting rule is described here (https://prometheus.io/docs/prometheus/latest/ configuration/alerting_rules/). The semantics of a Prometheus alerting rule is described here (https://prometheus.io/docs/prometheus/latest/configuration/ recording_rules/#rule).A Prometheus rule group is described here (https:// prometheus.io/docs/prometheus/latest/configuration/recording_rules/). The semantics of a Prometheus rule group is described here (https://prometheus.io/ docs/prometheus/latest/configuration/recording_rules/#rule_group).Because Cloud Alerting has no representation of a Prometheus rule group resource, we must embed the information of the parent rule group inside each of the conditions that refer to it. We must also update the contents of all Prometheus alerts in case the information of their rule group changes.The PrometheusQueryLanguageCondition protocol buffer combines the information of the corresponding rule group and alerting rule. The structure of the PrometheusQueryLanguageCondition protocol buffer does NOT mimic the structure of the Prometheus rule group and alerting rule YAML declarations. The PrometheusQueryLanguageCondition protocol buffer may change in the future to support future rule group and/or alerting rule features. There are no new such features at the present time (2023-06-26). Corresponds to the JSON property conditionPrometheusQueryLanguage



872
873
874
# File 'lib/google/apis/monitoring_v3/classes.rb', line 872

def condition_prometheus_query_language
  @condition_prometheus_query_language
end

#condition_sqlGoogle::Apis::MonitoringV3::SqlCondition

A condition that allows alerting policies to be defined using GoogleSQL. SQL conditions examine a sliding window of logs using GoogleSQL. Alert policies with SQL conditions may incur additional billing. Corresponds to the JSON property conditionSql



879
880
881
# File 'lib/google/apis/monitoring_v3/classes.rb', line 879

def condition_sql
  @condition_sql
end

#condition_thresholdGoogle::Apis::MonitoringV3::MetricThreshold

A condition type that compares a collection of time series against a threshold. Corresponds to the JSON property conditionThreshold



884
885
886
# File 'lib/google/apis/monitoring_v3/classes.rb', line 884

def condition_threshold
  @condition_threshold
end

#display_nameString

A short name or phrase used to identify the condition in dashboards, notifications, and incidents. To avoid confusion, don't use the same display name for multiple conditions in the same policy. Corresponds to the JSON property displayName

Returns:

  • (String)


891
892
893
# File 'lib/google/apis/monitoring_v3/classes.rb', line 891

def display_name
  @display_name
end

#nameString

Required if the condition exists. The unique resource name for this condition. Its format is: projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]/ conditions/[CONDITION_ID] [CONDITION_ID] is assigned by Cloud Monitoring when the condition is created as part of a new or updated alerting policy.When calling the alertPolicies.create method, do not include the name field in the conditions of the requested alerting policy. Cloud Monitoring creates the condition identifiers and includes them in the new policy.When calling the alertPolicies.update method to update a policy, including a condition name causes the existing condition to be updated. Conditions without names are added to the updated policy. Existing conditions are deleted if they are not updated.Best practice is to preserve [CONDITION_ID] if you make only small changes, such as those to condition thresholds, durations, or trigger values. Otherwise, treat the change as a new condition and let the existing condition be deleted. Corresponds to the JSON property name

Returns:

  • (String)


909
910
911
# File 'lib/google/apis/monitoring_v3/classes.rb', line 909

def name
  @name
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



916
917
918
919
920
921
922
923
924
925
# File 'lib/google/apis/monitoring_v3/classes.rb', line 916

def update!(**args)
  @condition_absent = args[:condition_absent] if args.key?(:condition_absent)
  @condition_matched_log = args[:condition_matched_log] if args.key?(:condition_matched_log)
  @condition_monitoring_query_language = args[:condition_monitoring_query_language] if args.key?(:condition_monitoring_query_language)
  @condition_prometheus_query_language = args[:condition_prometheus_query_language] if args.key?(:condition_prometheus_query_language)
  @condition_sql = args[:condition_sql] if args.key?(:condition_sql)
  @condition_threshold = args[:condition_threshold] if args.key?(:condition_threshold)
  @display_name = args[:display_name] if args.key?(:display_name)
  @name = args[:name] if args.key?(:name)
end