MCP Tools Reference: monitoring.googleapis.com

工具:list_alert_policies

使用此工具作为主要工具来列出 Google Cloud 项目中的提醒政策。提醒政策定义了您希望在哪些条件下收到有关服务问题的通知。这有助于了解当前配置了哪些提醒。

以下代码示例展示了如何使用 curl 调用 list_alert_policies 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": "list_alert_policies",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

输入架构

ListAlertPolicies 请求的协议。

ListAlertPoliciesRequest

JSON 表示法
{
  "name": string,
  "filter": string,
  "orderBy": string,
  "pageSize": integer,
  "pageToken": string
}
字段
name

string

必需。要列出其提醒政策的项目。格式为:

projects/[PROJECT_ID_OR_NUMBER]

请注意,此字段用于指定要列出的提醒政策所存储的父容器。如需按名称检索单个提醒政策,请改用 GetAlertPolicy 操作。

filter

string

可选。如果提供此字段,则它指定响应中将包含的提醒政策必须满足的条件。

如需了解详情,请参阅排序和过滤

orderBy

string

可选。用于对结果进行排序的字段的英文逗号分隔列表。支持与 filter 字段相同的字段引用集。您可以在条目前面加上减号,以按相应字段的降序进行排序。

如需了解详情,请参阅排序和过滤

pageSize

integer

可选。单个响应中返回的结果数上限。

pageToken

string

可选。如果此字段不为空,则必须包含之前调用此方法返回的 nextPageToken 值。使用此字段会导致该方法从之前的方法调用中返回更多结果。

输出架构

ListAlertPolicies 响应的协议。

ListAlertPoliciesResponse

JSON 表示法
{
  "alertPolicies": [
    {
      object (AlertPolicy)
    }
  ],
  "nextPageToken": string,
  "totalSize": integer
}
字段
alertPolicies[]

object (AlertPolicy)

返回的提醒政策。

nextPageToken

string

如果结果数量可能多于返回的结果数量,则此字段会设置为非空值。如需查看其他结果,请在下次调用此方法时将该值用作 page_token

totalSize

integer

所有页面中的提醒政策总数。此数字仅为估算值,可能会在后续页面中发生变化。https://aip.dev/158

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_aligner 且不得等于 ALIGN_NONE,并且必须指定 alignment_period;否则,系统会返回错误。

crossSeriesReducer

enum (Reducer)

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

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

时序数据必须先进行校准(请参阅 per_series_aligner),然后才能执行跨时序缩减。如果指定了 cross_series_reducer,则必须指定 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”。“标签”可能为空。

包含一系列 "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 这是最低严重级别。如果问题不会造成任何损坏或停机,但未来可能会导致问题,请使用此严重程度。

工具注释

工具注释会发送给 MCP 客户端,用于描述指定工具的基本风险。大多数客户端会将这些提示视为不受信任的,但它们可用于确定何时向用户发送确认提示。

除了标题字符串之外,还定义了以下布尔值提示:

  • readOnlyHint:如果为 true,则工具不会修改其环境。默认值:false。
  • destructiveHint:如果为 true,则工具可以执行破坏性操作。如果为 false,则该工具只能执行添加操作。默认值:true。
  • idempotentHint:如果为 true,则使用相同实参重复调用该工具不会对其环境产生任何额外影响。默认值:false。
  • openWorldHint:如果为 true,则工具可以与外部实体的“开放世界”互动。如果为 false,则该工具只能与内部实体互动。例如,网络搜索工具是开放世界工具,而内存工具不是开放世界工具。

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