 Resource: AlertPolicy
 Documentation
 Condition
 MetricThreshold
 Aggregation
 Aligner
 Reducer
 ComparisonType
 Trigger
 MetricAbsence
 ConditionCombinerType
 Status
 MutationRecord
 Methods
Resource: AlertPolicy
A description of the conditions under which some aspect of your system is considered to be "unhealthy" and the ways to notify people or services about this state. For an overview of alert policies, see Introduction to Alerting.
JSON representation  

{ "name": string, "displayName": string, "documentation": { object ( 
Fields  

name 
Required if the policy exists. The resource name for this policy. The format is:

displayName 
A short name or phrase used to identify the policy in dashboards, notifications, and incidents. To avoid confusion, don't use the same display name for multiple policies in the same project. The name is limited to 512 Unicode characters. 
documentation 
Documentation that is included with notifications and incidents related to this policy. Best practice is for the documentation to include information to help responders understand, mitigate, escalate, and correct the underlying problems detected by the alerting policy. Notification channels that have limited capacity might not show this documentation. 
userLabels 
Usersupplied key/value data to be used for organizing and identifying the The field can contain up to 64 entries. Each key and value is limited to 63 Unicode characters or 128 bytes, whichever is smaller. Labels and values can contain only lowercase letters, numerals, underscores, and dashes. Keys must begin with a letter. An object containing a list of 
conditions[] 
A list of conditions for the policy. The conditions are combined by AND or OR according to the 
combiner 
How to combine the results of multiple conditions to determine if an incident should be opened. If 
enabled 
Whether or not the policy is enabled. On write, the default interpretation if unset is that the policy is enabled. On read, clients should not make any assumption about the state if it has not been populated. The field should always be populated on List and Get operations, unless a field projection has been specified that strips it out. 
validity 
Readonly description of how the alert policy is invalid. OK if the alert policy is valid. If not OK, the alert policy will not generate incidents. 
notificationChannels[] 
Identifies the notification channels to which notifications should be sent when incidents are opened or closed or when new violations occur on an already opened incident. Each element of this array corresponds to the

creationRecord 
A readonly record of the creation of the alerting policy. If provided in a call to create or update, this field will be ignored. 
mutationRecord 
A readonly record of the most recent change to the alerting policy. If provided in a call to create or update, this field will be ignored. 
Documentation
A content string and a MIME type that describes the content string's format.
JSON representation  

{ "content": string, "mimeType": string } 
Fields  

content 
The text of the documentation, interpreted according to 
mimeType 
The format of the 
Condition
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.
JSON representation  

{ "name": string, "displayName": string, // Union field 
Fields  

name 
Required if the condition exists. The unique resource name for this condition. Its format is:
When calling the When calling the Best practice is to preserve 

displayName 
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. 

Union field condition . Only one of the following condition types will be specified. condition can be only one of the following: 

conditionThreshold 
A condition that compares a time series against a threshold. 

conditionAbsent 
A condition that checks that a time series continues to receive new data points. 
MetricThreshold
A condition type that compares a collection of time series against a threshold.
JSON representation  

{ "filter": string, "aggregations": [ { object ( 
Fields  

filter 
A filter that identifies which time series should be compared with the threshold. The filter is similar to the one that is specified in the 
aggregations[] 
Specifies the alignment of data points in individual time series as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resrouces). Multiple aggregations are applied in the order specified. This field is similar to the one in the 
denominatorFilter 
A filter that identifies a time series that should be used as the denominator of a ratio that will be compared with the threshold. If a The filter must specify the metric type and optionally may contain restrictions on resource type, resource labels, and metric labels. This field may not exceed 2048 Unicode characters in length. 
denominatorAggregations[] 
Specifies the alignment of data points in individual time series selected by When computing ratios, the 
comparison 
The comparison to apply between the time series (indicated by Only 
thresholdValue 
A value against which to compare the time series. 
duration 
The amount of time that a time series must violate the threshold to be considered failing. Currently, only values that are a multiple of a minutee.g., 0, 60, 120, or 300 secondsare supported. If an invalid value is given, an error will be returned. When choosing a duration, it is useful to keep in mind the frequency of the underlying time series data (which may also be affected by any alignments specified in the 
trigger 
The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by 
Aggregation
Describes how to combine multiple time series to provide a different view of the data. Aggregation of time series is done in two steps. First, each time series in the set is aligned to the same time interval boundaries, then the set of time series is optionally reduced in number.
Alignment consists of applying the perSeriesAligner
operation to each time series after its data has been divided into regular alignmentPeriod
time intervals. This process takes all of the data points in an alignment period, applies a mathematical transformation such as averaging, minimum, maximum, delta, etc., and converts them into a single data point per period.
Reduction is when the aligned and transformed time series can optionally be combined, reducing the number of time series through similar mathematical transformations. Reduction involves applying a crossSeriesReducer
to all the time series, optionally sorting the time series into subsets with groupByFields
, and applying the reducer to each subset.
The raw time series data can contain a huge amount of information from multiple sources. Alignment and reduction transforms this mass of data into a more manageable and representative collection of data, for example "the 95% latency across the average of all tasks in a cluster". This representative data can be more easily graphed and comprehended, and the individual time series data is still available for later drilldown. For more details, see Filtering and aggregation.
JSON representation  

{ "alignmentPeriod": string, "perSeriesAligner": enum ( 
Fields  

alignmentPeriod 
The The value must be at least 60 seconds. If a perseries aligner other than 
perSeriesAligner 
An Not all alignment operations may be applied to all time series. The valid choices depend on the Time series data must be aligned in order to perform crosstime series reduction. If 
crossSeriesReducer 
The reduction operation to be used to combine time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series. Not all reducer operations can be applied to all time series. The valid choices depend on the Time series data must first be aligned (see 
groupByFields[] 
The set of fields to preserve when 
Aligner
The Aligner
specifies the operation that will be applied to the data points in each alignment period in a time series. Except for ALIGN_NONE
, which specifies that no operation be applied, each alignment operation replaces the set of data values in each alignment period with a single value: the result of applying the operation to the data values. An aligned time series has a single data value at the end of each alignmentPeriod
.
An alignment operation can change the data type of the values, too. For example, if you apply a counting operation to boolean values, the data valueType
in the original time series is BOOLEAN
, but the valueType
in the aligned result is INT64
.
Enums  

ALIGN_NONE 
No alignment. Raw data is returned. Not valid if crossseries reduction is requested. The valueType of the result is the same as the valueType of the input. 
ALIGN_DELTA 
Align and convert to This alignment is valid for 
ALIGN_RATE 
Align and convert to a rate. The result is computed as This aligner is valid for If, by "rate", you mean "percentage change", see the 
ALIGN_INTERPOLATE 
Align by interpolating between adjacent points around the alignment period boundary. This aligner is valid for GAUGE metrics with numeric values. The valueType of the aligned result is the same as the valueType of the input. 
ALIGN_NEXT_OLDER 
Align by moving the most recent data point before the end of the alignment period to the boundary at the end of the alignment period. This aligner is valid for GAUGE metrics. The valueType of the aligned result is the same as the valueType of the input. 
ALIGN_MIN 
Align the time series by returning the minimum value in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric values. The valueType of the aligned result is the same as the valueType of the input. 
ALIGN_MAX 
Align the time series by returning the maximum value in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric values. The valueType of the aligned result is the same as the valueType of the input. 
ALIGN_MEAN 
Align the time series by returning the mean value in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric values. The valueType of the aligned result is DOUBLE . 
ALIGN_COUNT 
Align the time series by returning the number of values in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric or Boolean values. The valueType of the aligned result is INT64 . 
ALIGN_SUM 
Align the time series by returning the sum of the values in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric and distribution values. The valueType of the aligned result is the same as the valueType of the input. 
ALIGN_STDDEV 
Align the time series by returning the standard deviation of the values in each alignment period. This aligner is valid for GAUGE and DELTA metrics with numeric values. The valueType of the output is DOUBLE . 
ALIGN_COUNT_TRUE 
Align the time series by returning the number of True values in each alignment period. This aligner is valid for GAUGE metrics with Boolean values. The valueType of the output is INT64 . 
ALIGN_COUNT_FALSE 
Align the time series by returning the number of False values in each alignment period. This aligner is valid for GAUGE metrics with Boolean values. The valueType of the output is INT64 . 
ALIGN_FRACTION_TRUE 
Align the time series by returning the ratio of the number of True values to the total number of values in each alignment period. This aligner is valid for GAUGE metrics with Boolean values. The output value is in the range [0.0, 1.0] and has valueType DOUBLE . 
ALIGN_PERCENTILE_99 
Align the time series by using percentile aggregation. The resulting data point in each alignment period is the 99th percentile of all data points in the period. This aligner is valid for GAUGE and DELTA metrics with distribution values. The output is a GAUGE metric with valueType DOUBLE . 
ALIGN_PERCENTILE_95 
Align the time series by using percentile aggregation. The resulting data point in each alignment period is the 95th percentile of all data points in the period. This aligner is valid for GAUGE and DELTA metrics with distribution values. The output is a GAUGE metric with valueType DOUBLE . 
ALIGN_PERCENTILE_50 
Align the time series by using percentile aggregation. The resulting data point in each alignment period is the 50th percentile of all data points in the period. This aligner is valid for GAUGE and DELTA metrics with distribution values. The output is a GAUGE metric with valueType DOUBLE . 
ALIGN_PERCENTILE_05 
Align the time series by using percentile aggregation. The resulting data point in each alignment period is the 5th percentile of all data points in the period. This aligner is valid for GAUGE and DELTA metrics with distribution values. The output is a GAUGE metric with valueType DOUBLE . 
ALIGN_PERCENT_CHANGE 
Align and convert to a percentage change. This aligner is valid for If the values of A 10minute moving mean is computed at each point of the alignment period prior to the above calculation to smooth the metric and prevent false positives from very shortlived spikes. The moving mean is only applicable for data whose values are 
Reducer
A Reducer operation describes how to aggregate data points from multiple time series into a single time series, where the value of each data point in the resulting series is a function of all the already aligned values in the input time series.
Enums  

REDUCE_NONE 
No crosstime series reduction. The output of the Aligner is returned. 
REDUCE_MEAN 
Reduce by computing the mean value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric or distribution values. The valueType of the output is DOUBLE . 
REDUCE_MIN 
Reduce by computing the minimum value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric values. The valueType of the output is the same as the valueType of the input. 
REDUCE_MAX 
Reduce by computing the maximum value across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric values. The valueType of the output is the same as the valueType of the input. 
REDUCE_SUM 
Reduce by computing the sum across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric and distribution values. The valueType of the output is the same as the valueType of the input. 
REDUCE_STDDEV 
Reduce by computing the standard deviation across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics with numeric or distribution values. The valueType of the output is DOUBLE . 
REDUCE_COUNT 
Reduce by computing the number of data points across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics of numeric, Boolean, distribution, and string valueType . The valueType of the output is INT64 . 
REDUCE_COUNT_TRUE 
Reduce by computing the number of True valued data points across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics of Boolean valueType . The valueType of the output is INT64 . 
REDUCE_COUNT_FALSE 
Reduce by computing the number of False valued data points across time series for each alignment period. This reducer is valid for DELTA and GAUGE metrics of Boolean valueType . The valueType of the output is INT64 . 
REDUCE_FRACTION_TRUE 
Reduce by computing the ratio of the number of True valued data points to the total number of data points for each alignment period. This reducer is valid for DELTA and GAUGE metrics of Boolean valueType . The output value is in the range [0.0, 1.0] and has valueType DOUBLE . 
REDUCE_PERCENTILE_99 
Reduce by computing the 99th percentile of data points across time series for each alignment period. This reducer is valid for GAUGE and DELTA metrics of numeric and distribution type. The value of the output is DOUBLE . 
REDUCE_PERCENTILE_95 
Reduce by computing the 95th percentile of data points across time series for each alignment period. This reducer is valid for GAUGE and DELTA metrics of numeric and distribution type. The value of the output is DOUBLE . 
REDUCE_PERCENTILE_50 
Reduce by computing the 50th percentile of data points across time series for each alignment period. This reducer is valid for GAUGE and DELTA metrics of numeric and distribution type. The value of the output is DOUBLE . 
REDUCE_PERCENTILE_05 
Reduce by computing the 5th percentile of data points across time series for each alignment period. This reducer is valid for GAUGE and DELTA metrics of numeric and distribution type. The value of the output is DOUBLE . 
ComparisonType
Specifies an ordering relationship on two arguments, called left
and right
.
Enums  

COMPARISON_UNSPECIFIED 
No ordering relationship is specified. 
COMPARISON_GT 
True if the left argument is greater than the right argument. 
COMPARISON_GE 
True if the left argument is greater than or equal to the right argument. 
COMPARISON_LT 
True if the left argument is less than the right argument. 
COMPARISON_LE 
True if the left argument is less than or equal to the right argument. 
COMPARISON_EQ 
True if the left argument is equal to the right argument. 
COMPARISON_NE 
True if the left argument is not equal to the right argument. 
Trigger
Specifies how many time series must fail a predicate to trigger a condition. If not specified, then a {count: 1}
trigger is used.
JSON representation  

{ // Union field 
Fields  

Union field type . A type of trigger. type can be only one of the following: 

count 
The absolute number of time series that must fail the predicate for the condition to be triggered. 

percent 
The percentage of time series that must fail the predicate for the condition to be triggered. 
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
.
JSON representation  

{ "filter": string, "aggregations": [ { object ( 
Fields  

filter 
A filter that identifies which time series should be compared with the threshold. The filter is similar to the one that is specified in the 
aggregations[] 
Specifies the alignment of data points in individual time series as well as how to combine the retrieved time series together (such as when aggregating multiple streams on each resource to a single stream for each resource or when aggregating streams across all members of a group of resrouces). Multiple aggregations are applied in the order specified. This field is similar to the one in the 
duration 
The amount of time that a time series must fail to report new data to be considered failing. Currently, only values that are a multiple of a minutee.g. 60, 120, or 300 secondsare supported. If an invalid value is given, an error will be returned. The 
trigger 
The number/percent of time series for which the comparison must hold in order for the condition to trigger. If unspecified, then the condition will trigger if the comparison is true for any of the time series that have been identified by 
ConditionCombinerType
Operators for combining conditions.
Enums  

COMBINE_UNSPECIFIED 
An unspecified combiner. 
AND 
Combine conditions using the logical AND operator. An incident is created only if all the conditions are met simultaneously. This combiner is satisfied if all conditions are met, even if they are met on completely different resources. 
OR 
Combine conditions using the logical OR operator. An incident is created if any of the listed conditions is met. 
AND_WITH_MATCHING_RESOURCE 
Combine conditions using logical AND operator, but unlike the regular AND option, an incident is created only if all conditions are met simultaneously on at least one resource. 
Status
The Status
type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC. Each Status
message contains three pieces of data: error code, error message, and error details.
You can find out more about this error model and how to work with it in the API Design Guide.
JSON representation  

{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } 
Fields  

code 
The status code, which should be an enum value of 
message 
A developerfacing error message, which should be in English. Any userfacing error message should be localized and sent in the 
details[] 
A list of messages that carry the error details. There is a common set of message types for APIs to use. An object containing fields of an arbitrary type. An additional field 
MutationRecord
Describes a change made to a configuration.
JSON representation  

{ "mutateTime": string, "mutatedBy": string } 
Fields  

mutateTime 
When the change occurred. A timestamp in RFC3339 UTC "Zulu" format, accurate to nanoseconds. Example: 
mutatedBy 
The email address of the user making the change. 
Methods 



Creates a new alerting policy. 

Deletes an alerting policy. 

Gets a single alerting policy. 

Lists the existing alerting policies for the project. 

Updates an alerting policy. 