Class AlertPolicy.Condition.PrometheusQueryLanguageCondition

  • All Implemented Interfaces:
    AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder, com.google.protobuf.Message, com.google.protobuf.MessageLite, com.google.protobuf.MessageLiteOrBuilder, com.google.protobuf.MessageOrBuilder, Serializable
    Enclosing class:
    AlertPolicy.Condition

    public static final class AlertPolicy.Condition.PrometheusQueryLanguageCondition
    extends com.google.protobuf.GeneratedMessageV3
    implements AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
     A condition type that allows alert 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).
     
    Protobuf type google.monitoring.v3.AlertPolicy.Condition.PrometheusQueryLanguageCondition
    See Also:
    Serialized Form
    • Method Detail

      • newInstance

        protected Object newInstance​(com.google.protobuf.GeneratedMessageV3.UnusedPrivateParameter unused)
        Overrides:
        newInstance in class com.google.protobuf.GeneratedMessageV3
      • getDescriptor

        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor()
      • internalGetMapField

        protected com.google.protobuf.MapField internalGetMapField​(int number)
        Overrides:
        internalGetMapField in class com.google.protobuf.GeneratedMessageV3
      • internalGetFieldAccessorTable

        protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable()
        Specified by:
        internalGetFieldAccessorTable in class com.google.protobuf.GeneratedMessageV3
      • getQuery

        public String getQuery()
         Required. The PromQL expression to evaluate. Every evaluation cycle
         this expression is evaluated at the current time, and all resultant
         time series become pending/firing alerts. This field must not be empty.
         
        string query = 1 [(.google.api.field_behavior) = REQUIRED];
        Specified by:
        getQuery in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
        Returns:
        The query.
      • getQueryBytes

        public com.google.protobuf.ByteString getQueryBytes()
         Required. The PromQL expression to evaluate. Every evaluation cycle
         this expression is evaluated at the current time, and all resultant
         time series become pending/firing alerts. This field must not be empty.
         
        string query = 1 [(.google.api.field_behavior) = REQUIRED];
        Specified by:
        getQueryBytes in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
        Returns:
        The bytes for query.
      • hasDuration

        public boolean hasDuration()
         Optional. Alerts are considered firing once their PromQL expression was
         evaluated to be "true" for this long.
         Alerts whose PromQL expression was not evaluated to be "true" for
         long enough are considered pending.
         Must be a non-negative duration or missing.
         This field is optional. Its default value is zero.
         
        .google.protobuf.Duration duration = 2 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        hasDuration in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
        Returns:
        Whether the duration field is set.
      • getDuration

        public com.google.protobuf.Duration getDuration()
         Optional. Alerts are considered firing once their PromQL expression was
         evaluated to be "true" for this long.
         Alerts whose PromQL expression was not evaluated to be "true" for
         long enough are considered pending.
         Must be a non-negative duration or missing.
         This field is optional. Its default value is zero.
         
        .google.protobuf.Duration duration = 2 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getDuration in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
        Returns:
        The duration.
      • getDurationOrBuilder

        public com.google.protobuf.DurationOrBuilder getDurationOrBuilder()
         Optional. Alerts are considered firing once their PromQL expression was
         evaluated to be "true" for this long.
         Alerts whose PromQL expression was not evaluated to be "true" for
         long enough are considered pending.
         Must be a non-negative duration or missing.
         This field is optional. Its default value is zero.
         
        .google.protobuf.Duration duration = 2 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getDurationOrBuilder in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
      • hasEvaluationInterval

        public boolean hasEvaluationInterval()
         Optional. How often this rule should be evaluated.
         Must be a positive multiple of 30 seconds or missing.
         This field is optional. Its default value is 30 seconds.
         If this PrometheusQueryLanguageCondition was generated from a
         Prometheus alerting rule, then this value should be taken from the
         enclosing rule group.
         
        .google.protobuf.Duration evaluation_interval = 3 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        hasEvaluationInterval in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
        Returns:
        Whether the evaluationInterval field is set.
      • getEvaluationInterval

        public com.google.protobuf.Duration getEvaluationInterval()
         Optional. How often this rule should be evaluated.
         Must be a positive multiple of 30 seconds or missing.
         This field is optional. Its default value is 30 seconds.
         If this PrometheusQueryLanguageCondition was generated from a
         Prometheus alerting rule, then this value should be taken from the
         enclosing rule group.
         
        .google.protobuf.Duration evaluation_interval = 3 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getEvaluationInterval in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
        Returns:
        The evaluationInterval.
      • getEvaluationIntervalOrBuilder

        public com.google.protobuf.DurationOrBuilder getEvaluationIntervalOrBuilder()
         Optional. How often this rule should be evaluated.
         Must be a positive multiple of 30 seconds or missing.
         This field is optional. Its default value is 30 seconds.
         If this PrometheusQueryLanguageCondition was generated from a
         Prometheus alerting rule, then this value should be taken from the
         enclosing rule group.
         
        .google.protobuf.Duration evaluation_interval = 3 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getEvaluationIntervalOrBuilder in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
      • getLabelsCount

        public int getLabelsCount()
         Optional. Labels to add to or overwrite in the PromQL query result.
         Label names [must be
         valid](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
         Label values can be [templatized by using
         variables](https://cloud.google.com/monitoring/alerts/doc-variables).
         The only available variable names are the names of the labels in the
         PromQL result, including "__name__" and "value". "labels" may be empty.
         
        map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getLabelsCount in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
      • containsLabels

        public boolean containsLabels​(String key)
         Optional. Labels to add to or overwrite in the PromQL query result.
         Label names [must be
         valid](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
         Label values can be [templatized by using
         variables](https://cloud.google.com/monitoring/alerts/doc-variables).
         The only available variable names are the names of the labels in the
         PromQL result, including "__name__" and "value". "labels" may be empty.
         
        map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        containsLabels in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
      • getLabelsMap

        public Map<String,​String> getLabelsMap()
         Optional. Labels to add to or overwrite in the PromQL query result.
         Label names [must be
         valid](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
         Label values can be [templatized by using
         variables](https://cloud.google.com/monitoring/alerts/doc-variables).
         The only available variable names are the names of the labels in the
         PromQL result, including "__name__" and "value". "labels" may be empty.
         
        map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getLabelsMap in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
      • getLabelsOrDefault

        public String getLabelsOrDefault​(String key,
                                         String defaultValue)
         Optional. Labels to add to or overwrite in the PromQL query result.
         Label names [must be
         valid](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
         Label values can be [templatized by using
         variables](https://cloud.google.com/monitoring/alerts/doc-variables).
         The only available variable names are the names of the labels in the
         PromQL result, including "__name__" and "value". "labels" may be empty.
         
        map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getLabelsOrDefault in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
      • getLabelsOrThrow

        public String getLabelsOrThrow​(String key)
         Optional. Labels to add to or overwrite in the PromQL query result.
         Label names [must be
         valid](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
         Label values can be [templatized by using
         variables](https://cloud.google.com/monitoring/alerts/doc-variables).
         The only available variable names are the names of the labels in the
         PromQL result, including "__name__" and "value". "labels" may be empty.
         
        map<string, string> labels = 4 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getLabelsOrThrow in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
      • getRuleGroup

        public String getRuleGroup()
         Optional. The rule group name of this alert in the corresponding
         Prometheus configuration file.
        
         Some external tools may require this field to be populated correctly
         in order to refer to the original Prometheus configuration file.
         The rule group name and the alert name are necessary to update the
         relevant AlertPolicies in case the definition of the rule group changes
         in the future.
        
         This field is optional. If this field is not empty, then it must
         contain a valid UTF-8 string.
         This field may not exceed 2048 Unicode characters in length.
         
        string rule_group = 5 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getRuleGroup in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
        Returns:
        The ruleGroup.
      • getRuleGroupBytes

        public com.google.protobuf.ByteString getRuleGroupBytes()
         Optional. The rule group name of this alert in the corresponding
         Prometheus configuration file.
        
         Some external tools may require this field to be populated correctly
         in order to refer to the original Prometheus configuration file.
         The rule group name and the alert name are necessary to update the
         relevant AlertPolicies in case the definition of the rule group changes
         in the future.
        
         This field is optional. If this field is not empty, then it must
         contain a valid UTF-8 string.
         This field may not exceed 2048 Unicode characters in length.
         
        string rule_group = 5 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getRuleGroupBytes in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
        Returns:
        The bytes for ruleGroup.
      • getAlertRule

        public String getAlertRule()
         Optional. The alerting rule name of this alert in the corresponding
         Prometheus configuration file.
        
         Some external tools may require this field to be populated correctly
         in order to refer to the original Prometheus configuration file.
         The rule group name and the alert name are necessary to update the
         relevant AlertPolicies in case the definition of the rule group changes
         in the future.
        
         This field is optional. If this field is not empty, then it must be a
         [valid Prometheus label
         name](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
         This field may not exceed 2048 Unicode characters in length.
         
        string alert_rule = 6 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getAlertRule in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
        Returns:
        The alertRule.
      • getAlertRuleBytes

        public com.google.protobuf.ByteString getAlertRuleBytes()
         Optional. The alerting rule name of this alert in the corresponding
         Prometheus configuration file.
        
         Some external tools may require this field to be populated correctly
         in order to refer to the original Prometheus configuration file.
         The rule group name and the alert name are necessary to update the
         relevant AlertPolicies in case the definition of the rule group changes
         in the future.
        
         This field is optional. If this field is not empty, then it must be a
         [valid Prometheus label
         name](https://prometheus.io/docs/concepts/data_model/#metric-names-and-labels).
         This field may not exceed 2048 Unicode characters in length.
         
        string alert_rule = 6 [(.google.api.field_behavior) = OPTIONAL];
        Specified by:
        getAlertRuleBytes in interface AlertPolicy.Condition.PrometheusQueryLanguageConditionOrBuilder
        Returns:
        The bytes for alertRule.
      • isInitialized

        public final boolean isInitialized()
        Specified by:
        isInitialized in interface com.google.protobuf.MessageLiteOrBuilder
        Overrides:
        isInitialized in class com.google.protobuf.GeneratedMessageV3
      • writeTo

        public void writeTo​(com.google.protobuf.CodedOutputStream output)
                     throws IOException
        Specified by:
        writeTo in interface com.google.protobuf.MessageLite
        Overrides:
        writeTo in class com.google.protobuf.GeneratedMessageV3
        Throws:
        IOException
      • getSerializedSize

        public int getSerializedSize()
        Specified by:
        getSerializedSize in interface com.google.protobuf.MessageLite
        Overrides:
        getSerializedSize in class com.google.protobuf.GeneratedMessageV3
      • equals

        public boolean equals​(Object obj)
        Specified by:
        equals in interface com.google.protobuf.Message
        Overrides:
        equals in class com.google.protobuf.AbstractMessage
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface com.google.protobuf.Message
        Overrides:
        hashCode in class com.google.protobuf.AbstractMessage
      • parseFrom

        public static AlertPolicy.Condition.PrometheusQueryLanguageCondition parseFrom​(com.google.protobuf.ByteString data,
                                                                                       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                                                throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • parseFrom

        public static AlertPolicy.Condition.PrometheusQueryLanguageCondition parseFrom​(byte[] data,
                                                                                       com.google.protobuf.ExtensionRegistryLite extensionRegistry)
                                                                                throws com.google.protobuf.InvalidProtocolBufferException
        Throws:
        com.google.protobuf.InvalidProtocolBufferException
      • getParserForType

        public com.google.protobuf.Parser<AlertPolicy.Condition.PrometheusQueryLanguageCondition> getParserForType()
        Specified by:
        getParserForType in interface com.google.protobuf.Message
        Specified by:
        getParserForType in interface com.google.protobuf.MessageLite
        Overrides:
        getParserForType in class com.google.protobuf.GeneratedMessageV3
      • getDefaultInstanceForType

        public AlertPolicy.Condition.PrometheusQueryLanguageCondition getDefaultInstanceForType()
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageLiteOrBuilder
        Specified by:
        getDefaultInstanceForType in interface com.google.protobuf.MessageOrBuilder