MCP Tools Reference: monitoring.googleapis.com

工具:get_alert_policy

使用此方法作为获取特定提醒政策相关信息的主要工具。提醒政策定义了您希望在哪些条件下收到有关服务问题的通知。这有助于了解特定提醒配置的详细信息。

以下示例演示了如何使用 curl 调用 get_alert_policy MCP 工具。

Curl 请求
                  
curl --location 'https://monitoring.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "get_alert_policy",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

输入架构

GetAlertPolicy 请求的协议。

GetAlertPolicyRequest

JSON 表示法
{
  "name": string
}
字段
name

string

必需。要检索的提醒政策。格式为:

projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]

输出架构

说明系统在哪些条件下会被视为“不健康”,以及如何将此状态通知给人员或服务。如需大致了解提醒政策,请参阅提醒简介

AlertPolicy

JSON 表示法
{
  "name": string,
  "displayName": string,
  "documentation": {
    object (Documentation)
  },
  "userLabels": {
    string: string,
    ...
  },
  "conditions": [
    {
      object (Condition)
    }
  ],
  "combiner": enum (ConditionCombinerType),
  "enabled": boolean,
  "validity": {
    object (Status)
  },
  "notificationChannels": [
    string
  ],
  "creationRecord": {
    object (MutationRecord)
  },
  "mutationRecord": {
    object (MutationRecord)
  },
  "alertStrategy": {
    object (AlertStrategy)
  },
  "severity": enum (Severity)
}
字段
name

string

标识符。如果政策存在,则此字段为必填字段。相应政策的资源名称。格式为:

projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]

[ALERT_POLICY_ID] 是 Cloud Monitoring 在创建政策时分配的。调用 alertPolicies.create 方法时,请勿在作为请求的一部分传递的提醒政策中添加 name 字段。

displayName

string

用于在信息中心、通知和突发事件中标识政策的简称或短语。为避免混淆,请勿在同一项目中为多个政策使用相同的显示名称。名称的长度不得超过 512 个 Unicode 字符。

PrometheusQueryLanguageCondition 的 display_name 的惯例是“{规则组名称}/{提醒名称}”,其中 {规则组名称} 和 {提醒名称} 应取自相应的 Prometheus 配置文件。此惯例不会强制执行。在任何情况下,display_name 都不是 AlertPolicy 的唯一键。

documentation

object (Documentation)

与相应政策相关的通知和突发事件中附带的文档。最佳实践是,文档应包含相关信息,以帮助响应人员了解、缓解、上报和纠正提醒政策检测到的潜在问题。容量有限的通知渠道可能不会显示此文档。

userLabels

map (key: string, value: string)

用户提供的键/值数据,用于整理和标识 AlertPolicy 对象。

该字段最多可包含 64 个条目。每个键和值不得超过 63 个 Unicode 字符或 128 个字节,以较小者为准。标签和值只能包含小写字母、数字、下划线和短划线。键必须以字母开头。

请注意,Prometheus {alert name} 是有效的 Prometheus 标签名称,而 Prometheus {rule group} 是不受限制的 UTF-8 字符串。这意味着,它们无法按原样存储在用户标签中,因为它们可能包含用户标签值中不允许使用的字符。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

conditions[]

object (Condition)

政策的条件列表。系统会根据 combiner 字段通过 AND 或 OR 组合条件。如果合并后的条件的评估结果为 true,则会创建突发事件。一项政策中可包含 1 到 6 个条件。如果存在 condition_time_series_query_language,则它必须是唯一的 condition。如果存在 condition_monitoring_query_language,则它必须是唯一的 condition

combiner

enum (ConditionCombinerType)

如何组合多个条件的结果,以确定是否应开启突发事件。如果存在 condition_time_series_query_language,则此值必须为 COMBINE_UNSPECIFIED

enabled

boolean

相应政策是否已启用。在写入时,如果未设置,默认解释是已启用相应政策。在读取时,如果状态未填充,客户端不应做出任何假设。在 List 和 Get 操作中,该字段应始终填充,除非已指定会剥离该字段的字段投影。

validity

object (Status)

对提醒政策无效原因的只读说明。仅当提醒政策无效时,系统才会设置此字段。无效的提醒政策不会生成突发事件。

notificationChannels[]

string

用于标识在开启或关闭突发事件时,或者在已开启的突发事件中出现新的违规情况时,应向哪些通知渠道发送通知。此数组的每个元素都对应于通过 ListNotificationChannels 方法返回的每个 NotificationChannel 对象中的 name 字段。此字段中条目的格式为:

projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]
creationRecord

object (MutationRecord)

提醒政策创建的只读记录。如果在创建或更新调用中提供此字段,系统会忽略它。

mutationRecord

object (MutationRecord)

提醒政策的最新更改的只读记录。如果在创建或更新调用中提供此字段,系统会忽略它。

alertStrategy

object (AlertStrategy)

控制此提醒政策的通知渠道的通知方式。

severity

enum (Severity)

可选。提醒政策的严重程度表示相应政策生成的突发事件有多重要。严重程度级别将显示在“突发事件”详情页面和通知中。

文档

JSON 表示法
{
  "content": string,
  "mimeType": string,
  "subject": string,
  "links": [
    {
      object (Link)
    }
  ]
}
字段
content

string

文档的正文,根据 mime_type 进行解读。内容不得超过 8,192 个 Unicode 字符,并且在以 UTF-8 格式编码时不得超过 10,240 字节,以较小者为准。您可以使用变量为此文本创建模板

mimeType

string

content 字段的格式。目前,仅支持值 "text/markdown"。如需了解详情,请参阅 Markdown

subject

string

可选。通知的主题行。主题行不得超过 10,240 字节。在此政策生成的通知中,主题行在变量扩展后的内容将被截断为 255 字节或更短,截断位置位于最新的 UTF-8 字符边界。此帖子建议将限制设为 255 字节。这既是某些第三方票务产品施加的限制,也是在数据库中将文本字段定义为 VARCHAR(255) 的常见做法。

可以使用变量将主题行的内容设为模板。如果此字段缺失或为空,系统将生成默认的主题行。

links[]

object (Link)

可选。指向 playbook、代码库和其他资源等内容的链接。此字段最多可包含 3 个条目。

JSON 表示法
{
  "displayName": string,
  "url": string
}
字段
displayName

string

链接的简短显示名。显示名称不得为空,且不得超过 63 个字符。示例:“playbook”。

url

string

网页的网址。您可以在路径或查询参数中使用变量,从而将网址设为模板。网址的总长度在变量扩展前后均不得超过 2083 个字符。示例:“https://my_domain.com/playbook?name=${resource.name}”

UserLabelsEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

条件

JSON 表示法
{
  "name": string,
  "displayName": string,

  // Union field condition can be only one of the following:
  "conditionThreshold": {
    object (MetricThreshold)
  },
  "conditionAbsent": {
    object (MetricAbsence)
  },
  "conditionMatchedLog": {
    object (LogMatch)
  },
  "conditionMonitoringQueryLanguage": {
    object (MonitoringQueryLanguageCondition)
  },
  "conditionPrometheusQueryLanguage": {
    object (PrometheusQueryLanguageCondition)
  },
  "conditionSql": {
    object (SqlCondition)
  }
  // End of list of possible types for union field condition.
}
字段
name

string

如果存在相应条件,则必须提供此值。相应条件的唯一资源名称。其格式为:

projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[POLICY_ID]/conditions/[CONDITION_ID]

当条件作为新的或更新的提醒政策的一部分创建时,Cloud Monitoring 会分配 [CONDITION_ID]

调用 alertPolicies.create 方法时,请勿在所请求的提醒政策的条件中包含 name 字段。Cloud Monitoring 会创建条件标识符,并将其纳入新政策中。

调用 alertPolicies.update 方法来更新政策时,如果包含条件 name,则会导致现有条件被更新。没有名称的条件会添加到更新后的政策中。如果未更新现有条件,则会将其删除。

最佳做法是,如果您只进行小幅更改(例如更改条件阈值、时长或触发值),则保留 [CONDITION_ID]。否则,将更改视为新条件,并允许删除现有条件。

displayName

string

用于在信息中心、通知和突发事件中标识条件的简称或短语。为避免混淆,请勿在同一政策中为多个条件使用相同的显示名称。

联合字段 condition。只会指定以下条件类型之一。condition 只能是下列其中一项:
conditionThreshold

object (MetricThreshold)

将时序与阈值进行比较的条件。

conditionAbsent

object (MetricAbsence)

一种用于检查时序是否持续接收新数据点的条件。

conditionMatchedLog

object (LogMatch)

一种用于检查是否存在符合给定限制条件的日志消息的条件。如果设置了此值,则不得存在任何其他条件。

conditionMonitoringQueryLanguage

object (MonitoringQueryLanguageCondition)

使用 Monitoring Query Language 定义提醒的条件。

conditionPrometheusQueryLanguage

object (PrometheusQueryLanguageCondition)

使用 Prometheus 查询语言定义提醒的条件。

conditionSql

object (SqlCondition)

一种定期评估 SQL 查询结果的条件。

MetricThreshold

JSON 表示法
{
  "filter": string,
  "aggregations": [
    {
      object (Aggregation)
    }
  ],
  "denominatorFilter": string,
  "denominatorAggregations": [
    {
      object (Aggregation)
    }
  ],
  "forecastOptions": {
    object (ForecastOptions)
  },
  "comparison": enum (ComparisonType),
  "thresholdValue": number,
  "duration": string,
  "trigger": {
    object (Trigger)
  },
  "evaluationMissingData": enum (EvaluationMissingData)
}
字段
filter

string

必需。用于标识应与阈值进行比较的时序的过滤条件

此过滤条件与 ListTimeSeries 请求中指定的过滤条件类似(该调用有助于验证将检索 / 处理的时序)。过滤条件必须指定指标类型和资源类型。还可以选择指定资源标签和指标标签。此字段的长度不得超过 2048 个 Unicode 字符。

aggregations[]

object (Aggregation)

指定各个时序中数据点的对齐方式,以及如何将检索到的时序合并在一起(例如,将每个资源上的多个数据流聚合为每个资源的单个数据流,或者将资源组中所有成员的数据流聚合在一起)。系统会按指定的顺序应用多个聚合。

此字段类似于 ListTimeSeries 请求中的相应字段。建议在调试此字段时使用 ListTimeSeries 方法。

denominatorFilter

string

用于标识应作为比率分母的时序的过滤条件,该比率将与阈值进行比较。如果指定了 denominator_filter,则由 filter 字段指定的时序将用作分子。

过滤条件必须指定指标类型,并且可以选择性地包含对资源类型、资源标签和指标标签的限制。此字段的长度不得超过 2048 个 Unicode 字符。

denominatorAggregations[]

object (Aggregation)

指定由 denominatorFilter 选择的各个时序中数据点的对齐方式,以及如何将检索到的时序合并在一起(例如,将每个资源上的多个数据流聚合为每个资源的单个数据流,或者将资源组的所有成员的数据流聚合在一起)。

计算比率时,aggregationsdenominator_aggregations 字段必须使用相同的对齐周期,并生成具有相同周期性和标签的时序。

forecastOptions

object (ForecastOptions)

如果存在此字段,MetricThreshold 条件会预测时序是否预计会在 forecast_horizon 内违反阈值。如果未设置此字段,MetricThreshold 会将时间序列的当前值与阈值进行比较。

comparison

enum (ComparisonType)

要在时序(由 filteraggregation 指示)与阈值(由 threshold_value 指示)之间应用的比较。该比较会应用于每个时序,其中时序位于左侧,阈值位于右侧。

目前仅支持 COMPARISON_LTCOMPARISON_GT

thresholdValue

number

用于与时序进行比较的值。

duration

string (Duration format)

必需。时序必须违反阈值多长时间才能被视为失败。目前,仅支持分钟的倍数值,例如 0、60、120 或 300 秒。如果提供的值无效,则会返回错误。选择时长时,请务必考虑基础时序数据的频率(也可能会受到 aggregations 字段中指定的任何对齐方式的影响);理想的时长应足够长,以避免单个离群值生成虚假提醒,但也要足够短,以便快速检测到不健康的状态并发出提醒。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

trigger

object (Trigger)

比较结果必须成立的时序数量/百分比,才能触发相应条件。如果未指定,则当 filteraggregations 所标识的任何时序或比率(如果指定了 denominator_filterdenominator_aggregations)的比较结果为 true 时,系统将触发相应条件。

evaluationMissingData

enum (EvaluationMissingData)

一种条件控制,用于确定在数据停止到达时如何评估指标阈值条件。如需使用此控制变量,duration 字段的值必须大于或等于 60 秒。

聚合

JSON 表示法
{
  "alignmentPeriod": string,
  "perSeriesAligner": enum (Aligner),
  "crossSeriesReducer": enum (Reducer),
  "groupByFields": [
    string
  ]
}
字段
alignmentPeriod

string (Duration format)

alignment_period 指定了一个时间间隔(以秒为单位),用于将所有 time series 中的数据划分为一致的时间块。此操作将在对数据应用序列对齐器之前完成。

该值必须至少为 60 秒。如果指定了除 ALIGN_NONE 之外的每个序列对齐器,则此字段为必需字段,否则系统会返回错误。如果未指定任何按序列对齐器,或者指定了对齐器 ALIGN_NONE,则系统会忽略此字段。

对于图表,alignment_period 的最大值为 104 周(2 年);对于提醒政策,最大值为 90,000 秒(25 小时)。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

perSeriesAligner

enum (Aligner)

Aligner 用于描述如何使单个时序中的数据点在时间上保持一致。除了 ALIGN_NONE 之外,所有对齐方式都会将 alignment_period 中的所有数据点以数学方式分组在一起,从而为每个 alignment_period 生成一个数据点,其结束时间戳位于相应时间段的末尾。

并非所有对齐操作都可应用于所有时序。有效选项取决于原始时序的 metric_kindvalue_type。对齐可以更改时序的 metric_kindvalue_type

时序数据必须经过校准,才能执行跨时序缩减。如果指定了 cross_series_reducer,则必须指定 per_series_alignerper_series_aligner 不得等于 ALIGN_NONE,并且必须指定 alignment_period;否则,系统会返回错误。

crossSeriesReducer

enum (Reducer)

用于将多个时序合并为单个时序的缩减操作,其中结果时序中每个数据点的值是输入时序中所有已对齐的值的函数。

并非所有归纳器操作都可应用于所有时序。有效选项取决于原始时序的 metric_kindvalue_type。缩减可能会生成 metric_kindvalue_type 与输入时序不同的时序。

时序数据必须先进行校准(请参阅 per_series_aligner),然后才能执行跨时序缩减。如果指定了 cross_series_reducer,则必须指定 per_series_aligner,且 per_series_aligner 不得为 ALIGN_NONE。还必须指定 alignment_period;否则,系统会返回错误。

groupByFields[]

string

指定 cross_series_reducer 时要保留的字段集。group_by_fields 用于确定在应用聚合操作之前如何将时序划分为子集。每个子集中都包含在每个分组字段中具有相同值的时序。每个单独的时序都属于一个子集。cross_series_reducer 会应用于每个时序子集。无法跨不同资源类型进行缩减,因此此字段隐式包含 resource.type。未在 group_by_fields 中指定的字段会被聚合掉。如果未指定 group_by_fields 且所有时序都具有相同的资源类型,则这些时序会聚合为单个输出时序。如果未定义 cross_series_reducer,则忽略此字段。

时长

JSON 表示法
{
  "seconds": string,
  "nanos": integer
}
字段
seconds

string (int64 format)

时间段的带符号秒数。必须介于 -315,576,000,000 到 +315,576,000,000 之间(含边界值)。注意:这些界限的计算依据是:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年

nanos

integer

时间跨度的有符号秒数小数部分(以纳秒为单位)。小于 1 秒的时长用 0 seconds 字段和正或负 nanos 字段表示。对于时长为 1 秒或更长时间的情况,nanos 字段的非零值必须与 seconds 字段的符号相同。必须介于 -999,999,999 到 +999,999,999 之间(含边界值)。

ForecastOptions

JSON 表示法
{
  "forecastHorizon": string
}
字段
forecastHorizon

string (Duration format)

必需。预测时序是否会违反阈值的未来时间长度。如果发现预测值违反了阈值,并且在为配置的 duration 进行的所有预测中都观察到了违规情况,则系统会认为相应时序失败。预测范围可介于 1 小时到 60 小时之间。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

触发器

JSON 表示法
{

  // Union field type can be only one of the following:
  "count": integer,
  "percent": number
  // End of list of possible types for union field type.
}
字段
联合字段 type。一种触发器类型。type 只能是下列其中一项:
count

integer

必须未能通过谓词的时序的绝对数量,才能触发相应条件。

percent

number

必须有多少百分比的时序未能通过谓词,才能触发相应条件。

MetricAbsence

JSON 表示法
{
  "filter": string,
  "aggregations": [
    {
      object (Aggregation)
    }
  ],
  "duration": string,
  "trigger": {
    object (Trigger)
  }
}
字段
filter

string

必需。用于标识应与阈值进行比较的时序的过滤条件

此过滤条件与 ListTimeSeries 请求中指定的过滤条件类似(该调用有助于验证将检索 / 处理的时序)。过滤条件必须指定指标类型和资源类型。还可以选择指定资源标签和指标标签。此字段的长度不得超过 2048 个 Unicode 字符。

aggregations[]

object (Aggregation)

指定各个时序中数据点的对齐方式,以及如何将检索到的时序合并在一起(例如,将每个资源上的多个数据流聚合为每个资源的单个数据流,或者将资源组中所有成员的数据流聚合在一起)。系统会按指定的顺序应用多个聚合。

此字段类似于 ListTimeSeries 请求中的相应字段。建议在调试此字段时使用 ListTimeSeries 方法。

duration

string (Duration format)

必需。时序必须在多长时间内未能报告新数据,才会被视为失败。此字段的最小值为 120 秒。系统支持更大的值(分钟的倍数),例如 240 秒或 300 秒。如果提供的值无效,则会返回错误。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

trigger

object (Trigger)

比较结果必须成立的时序数量/百分比,才能触发相应条件。如果未指定,则当 filteraggregations 所标识的任何时序的比较结果为 true 时,系统都会触发相应条件。

LogMatch

JSON 表示法
{
  "filter": string,
  "labelExtractors": {
    string: string,
    ...
  }
}
字段
filter

string

必需。基于日志的过滤条件。如需了解如何构建此过滤条件,请参阅高级日志查询

labelExtractors

map (key: string, value: string)

可选。从标签键到提取器表达式的映射,用于提取相应标签键的值。此映射中的每个条目都是一个规范,用于说明应如何从与 filter 匹配的日志条目中提取数据。为了触发通知,每个提取的值组合都被视为单独的规则。标签键和相应的值可用于此条件生成的通知。

如需了解语法和示例,请参阅有关基于日志的指标 valueExtractor 的文档

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

LabelExtractorsEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

MonitoringQueryLanguageCondition

JSON 表示法
{
  "query": string,
  "duration": string,
  "trigger": {
    object (Trigger)
  },
  "evaluationMissingData": enum (EvaluationMissingData)
}
字段
query

string

输出布尔值流的 Monitoring Query Language 查询。

duration

string (Duration format)

可选。时序必须违反阈值多长时间才能被视为失败。目前,仅支持分钟的倍数值,例如 0、60、120 或 300 秒。如果提供的值无效,则会返回错误。选择时长时,请务必考虑基础时序数据的频率(也可能会受到 aggregations 字段中指定的任何对齐方式的影响);理想的时长应足够长,以避免单个离群值生成虚假提醒,但又足够短,以便快速检测到不健康的状态并发出提醒。默认值为零。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

trigger

object (Trigger)

比较结果必须成立的时序数量/百分比,才能触发相应条件。如果未指定,则当 filteraggregations 所标识的任何时序或比率(如果指定了 denominator_filterdenominator_aggregations)的比较结果为 true 时,系统将触发相应条件。

evaluationMissingData

enum (EvaluationMissingData)

一种条件控制,用于确定在数据停止到达时如何评估指标阈值条件。

PrometheusQueryLanguageCondition

JSON 表示法
{
  "query": string,
  "duration": string,
  "evaluationInterval": string,
  "labels": {
    string: string,
    ...
  },
  "ruleGroup": string,
  "alertRule": string,
  "disableMetricValidation": boolean
}
字段
query

string

必需。要求值的 PromQL 表达式。在每个评估周期中,系统都会在当前时间评估此表达式,并且所有生成的时序都会成为待处理/触发的提醒。请设置此字段。

duration

string (Duration format)

可选。当提醒的 PromQL 表达式求值为“true”的时长达到以下时间后,提醒会被视为触发。如果提醒的 PromQL 表达式求值为“true”的时长不够长,则该提醒会被视为待处理。必须为非负时长或缺失。此字段是可选字段。其默认值为零。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

evaluationInterval

string (Duration format)

可选。应评估此规则的频率。必须是 30 秒的正倍数,也可以不设置。此字段是可选字段。其默认值为 30 秒。如果此 PrometheusQueryLanguageCondition 是从 Prometheus 提醒规则生成的,则此值应取自封闭的规则组。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

labels

map (key: string, value: string)

可选。要添加到 PromQL 查询结果中或在其中覆盖的标签。标签名称必须有效。可以使用变量为标签值创建模板。唯一可用的变量名称是 PromQL 结果中标签的名称,包括“__name__”和“value”。“labels”可能为空。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

ruleGroup

string

可选。相应 Prometheus 配置文件中相应提醒的规则组名称。

某些外部工具可能需要正确填充此字段,才能引用原始 Prometheus 配置文件。如果规则组的定义将来发生变化,则需要规则组名称和提醒名称来更新相关的 AlertPolicies。

此字段是可选字段。如果此字段不为空,则必须包含有效的 UTF-8 字符串。此字段的长度不得超过 2048 个 Unicode 字符。

alertRule

string

可选。相应 Prometheus 配置文件中相应提醒的提醒规则名称。

某些外部工具可能需要正确填充此字段,才能引用原始 Prometheus 配置文件。如果规则组的定义将来发生变化,则需要规则组名称和提醒名称来更新相关的 AlertPolicies。

此字段是可选字段。如果此字段不为空,则必须是有效的 Prometheus 标签名称。此字段的长度不得超过 2048 个 Unicode 字符。

disableMetricValidation

boolean

可选。是否为此条件停用指标存在性验证。

这样一来,用户就可以针对尚不存在的指标定义提醒政策,从而改进高级客户工作流,例如使用 Terraform 配置提醒政策。

拥有 monitoring.alertPolicyViewer 角色的用户能够在提醒政策条件中看到不存在的指标的名称。

LabelsEntry

JSON 表示法
{
  "key": string,
  "value": string
}
字段
key

string

value

string

SqlCondition

JSON 表示法
{
  "query": string,

  // Union field schedule can be only one of the following:
  "minutes": {
    object (Minutes)
  },
  "hourly": {
    object (Hourly)
  },
  "daily": {
    object (Daily)
  }
  // End of list of possible types for union field schedule.

  // Union field evaluate can be only one of the following:
  "rowCountTest": {
    object (RowCountTest)
  },
  "booleanTest": {
    object (BooleanTest)
  }
  // End of list of possible types for union field evaluate.
}
字段
query

string

必需。要运行的 Log Analytics SQL 查询(以字符串形式表示)。查询必须符合所需的形状。具体而言,查询不得尝试按时间过滤输入。系统会自动应用过滤条件来过滤输入,以便查询接收自上次运行查询以来接收到的所有行。

例如,以下查询会提取包含 HTTP 请求的所有日志条目:

SELECT
  timestamp, log_name, severity, http_request, resource, labels
FROM
  my-project.global._Default._AllLogs
WHERE
  http_request IS NOT NULL
联合字段 schedule。该计划表示查询的运行频率。schedule 只能是下列其中一项:
minutes

object (Minutes)

安排查询每隔一定分钟数执行一次。

hourly

object (Hourly)

安排每隔若干小时执行一次查询。

daily

object (Daily)

安排查询每隔几天执行一次。

联合字段 evaluate。要针对 SQL 结果集运行的测试。evaluate 只能是下列其中一项:
rowCountTest

object (RowCountTest)

根据阈值测试行数。

booleanTest

object (BooleanTest)

测试指定列中的布尔值。

分钟

JSON 表示法
{
  "periodicity": integer
}
字段
periodicity

integer

必需。运行之间的分钟数。间隔必须大于或等于 5 分钟,且小于或等于 1440 分钟。

每小时

JSON 表示法
{
  "periodicity": integer,

  // Union field _minute_offset can be only one of the following:
  "minuteOffset": integer
  // End of list of possible types for union field _minute_offset.
}
字段
periodicity

integer

必需。运行之间的小时数。必须大于或等于 1 小时,且小于或等于 48 小时。

联合字段 _minute_offset

_minute_offset 只能是下列其中一项:

minuteOffset

integer

可选。在小时(世界协调时间)之后的多少分钟运行查询。必须大于或等于 0 分钟,且小于或等于 59 分钟。如果未指定,则使用任意偏移量。

每天

JSON 表示法
{
  "periodicity": integer,
  "executionTime": {
    object (TimeOfDay)
  }
}
字段
periodicity

integer

必需。运行之间的天数。必须大于或等于 1 天,且小于或等于 31 天。

executionTime

object (TimeOfDay)

可选。查询应运行的时间(采用世界协调时间)。如果未指定,服务器会任意选择一天中的某个时间,并在每天的同一时间运行查询。

TimeOfDay

JSON 表示法
{
  "hours": integer,
  "minutes": integer,
  "seconds": integer,
  "nanos": integer
}
字段
hours

integer

一天中的小时(采用 24 小时制)。必须大于或等于 0,且通常必须小于或等于 23。对于业务结束时间等场景,API 可以选择允许“24:00:00”一值。

minutes

integer

一小时中的分钟数。必须大于或等于 0,且小于或等于 59。

seconds

integer

一分钟中的秒数。必须大于或等于 0,通常必须小于或等于 59。如果 API 允许闰秒,则 API 可以允许 60 一值。

nanos

integer

秒数的小数部分(以纳秒为单位)。必须大于或等于 0,且小于或等于 999,999,999。

RowCountTest

JSON 表示法
{
  "comparison": enum (ComparisonType),
  "threshold": string
}
字段
comparison

enum (ComparisonType)

必需。要应用在查询返回的行数与阈值之间的比较。

threshold

string (int64 format)

必需。用于与行数进行比较的值。

BooleanTest

JSON 表示法
{
  "column": string
}
字段
column

string

必需。包含布尔值的列的名称。如果某行中的值为 NULL,则忽略该行。

BoolValue

JSON 表示法
{
  "value": boolean
}
字段
value

boolean

布尔值。

状态

JSON 表示法
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
字段
code

integer

状态代码,应为 google.rpc.Code 的枚举值。

message

string

面向开发者的错误消息(应采用英语)。任何向用户显示的错误消息都应进行本地化并通过 google.rpc.Status.details 字段发送,或者由客户端进行本地化。

details[]

object

包含错误详细信息的消息列表。有一组通用的消息类型可供 API 使用。

可以包含任意类型字段的对象。附加字段 "@type" 包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }

不限

JSON 表示法
{
  "typeUrl": string,
  "value": string
}
字段
typeUrl

string

通过 URI 引用(包含以斜杠结尾的前缀和完全限定的类型名称)来标识序列化 Protobuf 消息的类型。

示例:type.googleapis.com/google.protobuf.StringValue

此字符串必须包含至少一个 / 字符,并且最后一个 / 之后的内容必须是规范形式的完全限定名,不含前导点。请勿在这些 URI 引用中写入方案,以免客户端尝试联系它们。

前缀是任意的,Protobuf 实现应仅剥离最后一个 / 之前(包括最后一个 /)的所有内容,以识别类型。type.googleapis.com/ 是某些旧版实现所需的常见默认前缀。此前缀并不表示类型的来源,包含该前缀的 URI 不应响应任何请求。

所有类型网址字符串都必须是合法的 URI 引用,并且(对于文本格式)还必须满足以下额外限制:引用的内容只能包含字母数字字符、百分号编码的转义字符以及以下集合中的字符(不包括外侧的反引号):/-.~_!$&()*+,;=。尽管我们允许使用百分比编码,但实现不应将其转义,以免与现有解析器混淆。例如,应拒绝 type.googleapis.com%2FFoo

Any 的原始设计中,考虑了在这些类型网址上启动类型解析服务的可能性,但 Protobuf 从未实现过此类服务,并且认为联系这些网址存在问题,可能会导致安全问题。不尝试联系人类型网址。

value

string (bytes format)

包含由 type_url 描述的类型的 Protobuf 序列化。

使用 base64 编码的字符串。

MutationRecord

JSON 表示法
{
  "mutateTime": string,
  "mutatedBy": string
}
字段
mutateTime

string (Timestamp format)

相应更改发生的时间。

采用 RFC 3339 标准,生成的输出将始终进行 Z 规范化(即转换为 UTC 零时区格式并在末尾附加 Z),并使用 0、3、6 或 9 个小数位。不带“Z”的偏差时间也是可以接受的。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z""2014-10-02T15:01:23+05:30"

mutatedBy

string

进行更改的用户的电子邮件地址。

时间戳

JSON 表示法
{
  "seconds": string,
  "nanos": integer
}
字段
seconds

string (int64 format)

表示世界协调时间 (UTC) 的秒数(从 Unix 纪元 1970-01-01T00:00:00Z 开始算起)。必须介于 -62135596800 到 253402300799 之间(含边界值),对应于 0001-01-01T00:00:00Z 到 9999-12-31T23:59:59Z。

nanos

integer

秒数的非负小数部分(以纳秒为单位)。此字段是时长的纳秒部分,而不是秒的替代项。对于含小数部分的负秒数,仍必须包含按时间递升的非负纳秒值。必须在 0 到 999,999,999 之间(含边界值)。

AlertStrategy

JSON 表示法
{
  "notificationRateLimit": {
    object (NotificationRateLimit)
  },
  "notificationPrompts": [
    enum (NotificationPrompt)
  ],
  "autoClose": string,
  "notificationChannelStrategy": [
    {
      object (NotificationChannelStrategy)
    }
  ]
}
字段
notificationRateLimit

object (NotificationRateLimit)

对于基于日志的提醒政策(即具有 LogMatch 条件的政策),此权限是必需的。

对于不含 LogMatch 条件的提醒政策,此限制未实现。

notificationPrompts[]

enum (NotificationPrompt)

对于基于日志的提醒政策,通知提示始终为 [OPENED]。对于非基于日志的提醒政策,通知提示可以是 [OPENED] 或 [OPENED, CLOSED]。

autoClose

string (Duration format)

如果某个活跃的提醒政策在这么长时间内没有数据,则所有未结突发事件都将关闭

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

notificationChannelStrategy[]

object (NotificationChannelStrategy)

控制通知的发送方式(按渠道)。

NotificationRateLimit

JSON 表示法
{
  "period": string
}
字段
period

string (Duration format)

period 不超过 1 条通知。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

NotificationChannelStrategy

JSON 表示法
{
  "notificationChannelNames": [
    string
  ],
  "renotifyInterval": string
}
字段
notificationChannelNames[]

string

这些设置所适用的通知渠道的完整 REST 资源名称。这些值中的每一个都对应于此 AlertPolicy 的 notification_channels 字段中引用的某个 NotificationChannel 对象的名称字段。格式为:

projects/[PROJECT_ID_OR_NUMBER]/notificationChannels/[CHANNEL_ID]
renotifyInterval

string (Duration format)

针对未结突发事件发送提醒通知的频率。该值必须介于 30 分钟到 24 小时之间。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

校准器

Aligner 用于指定将应用于时序中每个校准时间段内的数据点的操作。除了 ALIGN_NONE(指定不应用任何操作)之外,每种对齐操作都会将每个对齐时间段内的一组数据值替换为一个值:将相应操作应用于数据值的结果。校准后的时序在每个 alignment_period 结束时都有一个数据值。

对齐操作也可以更改值的数据类型。例如,如果您对布尔值应用计数操作,则原始时序中的数据 value_typeBOOLEAN,但对齐结果中的 value_typeINT64

枚举
ALIGN_NONE 不对齐。返回原始数据。如果请求了跨序列缩减,则无效。结果的 value_type 与输入的 value_type 相同。
ALIGN_DELTA

对齐并转换为 DELTA。输出为 delta = y1 - y0

此对齐方式适用于 CUMULATIVEDELTA 指标。如果所选的对齐周期导致某些周期没有数据,则通过插值创建相应周期的对齐值。对齐后结果的 value_type 与输入的 value_type 相同。

ALIGN_RATE

对齐并转换为速率。结果计算为 rate = (y1 - y0)/(t1 - t0),即“随时间的变化量”。可以将此对齐器视为提供通过 alignment_period 开头和结尾处的值的直线的斜率。

此校准器适用于具有数值的 CUMULATIVEDELTA 指标。如果所选的对齐周期导致某些周期没有数据,则通过插值创建相应周期的对齐值。输出是一个 GAUGE 指标,其值为 value_type DOUBLE

如果您所说的“比率”是指“百分比变化”,请改用 ALIGN_PERCENT_CHANGE 对齐器。

ALIGN_INTERPOLATE 通过在校准时间段边界周围的相邻点之间插值来进行对齐。此校准器适用于具有数值的 GAUGE 指标。对齐后结果的 value_type 与输入的 value_type 相同。
ALIGN_NEXT_OLDER 通过将校准时间段结束前的最近的数据点移动到校准时间段结束时的边界来校准数据点。此对齐器适用于 GAUGE 个指标。对齐后结果的 value_type 与输入的 value_type 相同。
ALIGN_MIN 通过返回每个校准时间段中的最小值来校准时序。此校准器适用于具有数值的 GAUGEDELTA 指标。对齐后结果的 value_type 与输入的 value_type 相同。
ALIGN_MAX 通过返回每个校准时间段中的最大值来校准时序。此校准器适用于具有数值的 GAUGEDELTA 指标。对齐后结果的 value_type 与输入的 value_type 相同。
ALIGN_MEAN 通过返回每个校准时间段中的平均值来校准时序。此校准器适用于具有数值的 GAUGEDELTA 指标。校准后结果的 value_typeDOUBLE
ALIGN_COUNT 通过返回每个校准时间段中的值的数量来校准时序。此校准器适用于具有数值或布尔值的 GAUGEDELTA 指标。校准后结果的 value_typeINT64
ALIGN_SUM 通过返回每个校准时间段中的值之和来校准时序。此校准器适用于具有数值和分布值的 GAUGEDELTA 指标。对齐后结果的 value_type 与输入的 value_type 相同。
ALIGN_STDDEV 通过返回每个校准时间段中的值的标准差来校准时序。此校准器适用于具有数值的 GAUGEDELTA 指标。输出的 value_typeDOUBLE
ALIGN_COUNT_TRUE 通过返回每个校准时间段中的 True 值数量来校准时序。此校准器适用于具有布尔值的 GAUGE 指标。输出的 value_typeINT64
ALIGN_COUNT_FALSE 通过返回每个校准时间段中的 False 值数量来校准时序。此校准器适用于具有布尔值的 GAUGE 指标。输出的 value_typeINT64
ALIGN_FRACTION_TRUE 通过返回每个校准时间段中 True 值的数量与值总数的比率来校准时序。此校准器适用于具有布尔值的 GAUGE 指标。输出值在 [0.0, 1.0] 范围内,且具有 value_type DOUBLE
ALIGN_PERCENTILE_99 使用百分位聚合校准时序。每个校准时间段内生成的数据点是该时间段内所有数据点的第 99 个百分位。此校准器适用于具有分布值的 GAUGEDELTA 指标。输出是一个 GAUGE 指标,其值为 value_type DOUBLE
ALIGN_PERCENTILE_95 使用百分位聚合校准时序。每个校准时间段内生成的数据点是该时间段内所有数据点的第 95 个百分位。此校准器适用于具有分布值的 GAUGEDELTA 指标。输出是一个 GAUGE 指标,其值为 value_type DOUBLE
ALIGN_PERCENTILE_50 使用百分位聚合校准时序。每个校准时间段内生成的数据点是该时间段内所有数据点的第 50 个百分位。此校准器适用于具有分布值的 GAUGEDELTA 指标。输出是一个 GAUGE 指标,其值为 value_type DOUBLE
ALIGN_PERCENTILE_05 使用百分位聚合校准时序。每个校准时间段内生成的数据点是该时间段内所有数据点的第 5 个百分位。此校准器适用于具有分布值的 GAUGEDELTA 指标。输出是一个 GAUGE 指标,其值为 value_type DOUBLE
ALIGN_PERCENT_CHANGE

对齐并转换为百分比变化。此校准器适用于具有数值的 GAUGEDELTA 指标。此对齐方式会返回 ((current - previous)/previous) * 100,其中 previous 的值是根据 alignment_period 确定的。

如果 currentprevious 的值均为 0,则返回的值为 0。如果只有 previous 为 0,则返回值为无穷大。

在进行上述计算之前,系统会在对齐周期的每个时间点计算 10 分钟的移动平均值,以平滑指标并防止出现因短暂的峰值而导致的误报。移动平均值仅适用于值为 >= 0 的数据。任何 < 0 值都被视为缺失的数据点,并会被忽略。虽然此对齐方式接受 DELTA 指标,但应特别注意,该指标的值始终为正值。输出是一个 GAUGE 指标,其值为 value_type DOUBLE

缩减器

Reducer 操作描述了如何将多个时序中的数据点聚合为单个时序,其中结果序列中每个数据点的值是输入时序中所有已对齐的值的函数。

枚举
REDUCE_NONE 无跨时序缩减。返回 Aligner 的输出。
REDUCE_MEAN 通过计算每个校准时间段内时序的平均值进行缩减。此精简器适用于具有数值或分布值的 DELTAGAUGE 指标。输出的 value_typeDOUBLE
REDUCE_MIN 通过计算每个校准时间段内时序的最小值进行缩减。此精简器适用于具有数值的 DELTAGAUGE 指标。输出的 value_type 与输入的 value_type 相同。
REDUCE_MAX 通过计算每个校准时间段内时序的最大值进行缩减。此精简器适用于具有数值的 DELTAGAUGE 指标。输出的 value_type 与输入的 value_type 相同。
REDUCE_SUM 通过计算每个校准时间段的时序的总和进行缩减。此归约器适用于具有数值和分布值的 DELTAGAUGE 指标。输出的 value_type 与输入的 value_type 相同。
REDUCE_STDDEV 通过计算每个校准时间段的时序的标准差进行缩减。此精简器适用于具有数值或分布值的 DELTAGAUGE 指标。输出的 value_typeDOUBLE
REDUCE_COUNT 通过计算每个校准时间段内各个时序的数据点数量进行缩减。此缩减器适用于数值、布尔值、分布和字符串 value_typeDELTAGAUGE 指标。输出的 value_typeINT64
REDUCE_COUNT_TRUE 通过计算每个校准时间段内时序中 True 值数据点的数量进行缩减。此归约器适用于布尔值 value_typeDELTAGAUGE 指标。输出的 value_typeINT64
REDUCE_COUNT_FALSE 通过计算每个校准时间段内时序中 False 值数据点的数量进行缩减。此归约器适用于布尔值 value_typeDELTAGAUGE 指标。输出的 value_typeINT64
REDUCE_FRACTION_TRUE 通过计算每个校准时间段内值为 True 的数据点数量与数据点总数的比率进行缩减。此归约器适用于布尔值 value_typeDELTAGAUGE 指标。输出值在 [0.0, 1.0] 范围内,且具有 value_type DOUBLE
REDUCE_PERCENTILE_99 通过计算每个校准时间段内各个时序的数据点的第 99 百分位进行缩减。此缩减器适用于数值型和分布型 GAUGEDELTA 指标。输出的值为 DOUBLE
REDUCE_PERCENTILE_95 通过计算每个校准时间段内各时序的数据点的第 95 百分位进行缩减。此缩减器适用于数值型和分布型 GAUGEDELTA 指标。输出的值为 DOUBLE
REDUCE_PERCENTILE_50 通过计算每个校准时间段内各个时序的数据点的第 50 个百分位进行缩减。此缩减器适用于数值型和分布型 GAUGEDELTA 指标。输出的值为 DOUBLE
REDUCE_PERCENTILE_05 通过计算每个校准时间段内各个时序的数据点的第 5 个百分位进行缩减。此缩减器适用于数值型和分布型 GAUGEDELTA 指标。输出的值为 DOUBLE

ComparisonType

指定两个实参(称为 leftright)的排序关系。

枚举
COMPARISON_UNSPECIFIED 未指定任何排序关系。
COMPARISON_GT 如果左侧实参大于右侧实参,则为 True。
COMPARISON_GE 如果左侧实参大于或等于右侧实参,则返回 True。
COMPARISON_LT 如果左侧实参小于右侧实参,则为 True。
COMPARISON_LE 如果左侧实参小于或等于右侧实参,则为 True。
COMPARISON_EQ 如果左侧实参等于右侧实参,则为 True。
COMPARISON_NE 如果左侧实参不等于右侧实参,则为 True。

EvaluationMissingData

一种条件控制,用于确定在数据停止到达时如何评估指标阈值条件。此控制选项不会影响指标缺失政策。

枚举
EVALUATION_MISSING_DATA_UNSPECIFIED 未指定评估的缺失数据选项。相当于 EVALUATION_MISSING_DATA_NO_OP。
EVALUATION_MISSING_DATA_INACTIVE 如果没有可用于评估条件的数据,则将条件评估为 false。
EVALUATION_MISSING_DATA_ACTIVE 如果没有可用于评估条件的数据,则将条件评估为 true。
EVALUATION_MISSING_DATA_NO_OP 如果没有数据,则不评估条件的值。

ConditionCombinerType

用于组合条件的运算符。

枚举
COMBINE_UNSPECIFIED 未指定的组合器。
AND 使用逻辑 AND 运算符组合条件。只有在同时满足所有条件时,系统才会创建突发事件。如果满足所有条件,即使这些条件是针对完全不同的资源满足的,此组合器也会满足。
OR 使用逻辑 OR 运算符组合条件。如果满足所列的任何条件,系统就会创建突发事件。
AND_WITH_MATCHING_RESOURCE 使用逻辑 AND 运算符组合条件,但与常规 AND 选项不同的是,只有当至少有一个资源同时满足所有条件时,系统才会创建突发事件。

NotificationPrompt

控制通知的发送时间。

枚举
NOTIFICATION_PROMPT_UNSPECIFIED 未指定任何策略。视为错误。
OPENED 在突发事件开启时通知。
CLOSED 在突发事件关闭时通知。

严重程度

一个枚举,包含提醒政策的可能严重程度级别。

枚举
SEVERITY_UNSPECIFIED 未指定严重程度。这是默认值。
CRITICAL 这是最高严重程度级别。如果问题可能导致严重损坏或停机,请使用此选项。
ERROR 这是中等严重程度级别。如果问题可能会导致轻微损坏或停机,请使用此严重程度。
WARNING 这是最低严重级别。如果问题不会造成任何损坏或停机,但将来可能会导致问题,请使用此严重程度。

工具注释

破坏性提示:❌ | 等幂性提示:✅ | 只读提示:✅ | 开放世界提示:❌