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

ID。如果政策存在,則為必要欄位。這項政策的資源名稱。格式為:

projects/[PROJECT_ID_OR_NUMBER]/alertPolicies/[ALERT_POLICY_ID]

[ALERT_POLICY_ID] 是在建立政策時由 Cloud Monitoring 指派。呼叫 alertPolicies.create 方法時,請勿在做為要求一部分傳遞的警告政策中加入 name 欄位。

displayName

string

用於在資訊主頁、通知和事件中識別政策的簡稱或詞組。為避免混淆,請勿在同一專案中為多項政策使用相同的顯示名稱。名稱長度不得超過 512 個 Unicode 字元。

PrometheusQueryLanguageCondition 的 display_name 慣例為「{rule group name}/{alert name}」,其中 {rule group name} 和 {alert 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,系統就會建立事件。一項政策最多可有 6 個條件。如果存在 condition_time_series_query_language,則必須是唯一的 condition。如果存在 condition_monitoring_query_language,則必須是唯一的 condition

combiner

enum (ConditionCombinerType)

如何合併多個條件的結果,判斷是否應開啟事件。如果 condition_time_series_query_language 存在,則此值必須為 COMBINE_UNSPECIFIED

enabled

boolean

這項政策是否已啟用。寫入時,如果不設定這項政策,預設解讀方式為啟用政策。讀取時,如果狀態未填入,用戶端不應對狀態做出任何假設。除非已指定會移除該欄位的欄位投影,否則在「列出」和「取得」作業中,一律應填入該欄位。

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 個位元組。在這項政策產生的通知中,主旨行在變數擴展後,最晚會在 UTF-8 字元邊界截斷,長度為 255 個位元組或更短。這個討論串建議使用 255 位元組的限制。這是部分第三方票務產品的限制,也是在資料庫中將文字欄位定義為 VARCHAR(255) 的常見做法。

主旨內容可以使用變數建立範本。如果缺少或空白,系統會產生預設主旨。

links[]

object (Link)

選用。連結至教戰手冊、存放區和其他資源等內容。這個欄位最多可包含 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 會建立條件 ID,並將其納入新政策。

呼叫 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 欄位中指定任何對齊方式的影響);時間長度應夠長,單一離群值不會產生虛假快訊,但也要夠短,才能快速偵測到不正常的狀態並發出快訊。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「s」結尾,例如:"3.5s"

trigger

object (Trigger)

比較結果必須符合條件的時間序列數量/百分比,條件才會觸發。如未指定,如果比較結果為 true,且符合 filteraggregations 識別的任何時間序列,或符合比例 (如果指定 denominator_filterdenominator_aggregations),就會觸發條件。

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 小時)。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「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,且 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

時間跨度的小數部分 (以奈秒為單位),可為正數或負數。如果時間長度不到一秒,系統會以 0 seconds 欄位和正數或負數 nanos 欄位表示。如果時間長度為一秒以上,nanos 欄位的非零值必須與 seconds 欄位相同。值必須介於 -999,999,999 到 +999,999,999 之間 (含)。

ForecastOptions

JSON 表示法
{
  "forecastHorizon": string
}
欄位
forecastHorizon

string (Duration format)

這是必要旗標,要預測時間序列是否會違反門檻的未來時間長度。如果預測值違反門檻,且所有為已設定 duration 進行的預測都出現違規情形,則系統會將該時間序列視為失敗。預測期間可介於 1 小時到 60 小時。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「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 秒。如果提供的值無效,系統會傳回錯誤。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「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 欄位中指定對齊方式的影響)。時間長度應夠長,避免單一離群值產生虛假快訊,但也要夠短,以便快速偵測並發出不正常的狀態快訊。預設值為零。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「s」結尾,例如:"3.5s"

trigger

object (Trigger)

比較結果必須符合條件的時間序列數量/百分比,條件才會觸發。如未指定,如果比較結果為 true,且符合 filteraggregations 識別的任何時間序列,或符合比例 (如果指定 denominator_filterdenominator_aggregations),就會觸發條件。

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」的狀態不夠久,警告就會視為待處理。必須為非負數或缺少的持續時間。這是選填欄位。預設值為零。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「s」結尾,例如:"3.5s"

evaluationInterval

string (Duration format)

選用。這項規則的評估頻率。必須是 30 秒的正倍數,或不填寫。這是選填欄位。預設值為 30 秒。如果這個 PrometheusQueryLanguageCondition 是從 Prometheus 警示規則產生,則這個值應取自封閉規則群組。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「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 允許閏秒,則可允許值為 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 正規化,並使用 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)

代表自 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 條件的政策) 必須啟用這項 API。

如果警告政策沒有 LogMatch 條件,就不會受到這項限制。

notificationPrompts[]

enum (NotificationPrompt)

如果是以記錄為準的警告政策,通知提示一律為 [OPENED]。如果不是以記錄檔為依據的快訊政策,通知提示可以是 [OPENED] 或 [OPENED, CLOSED]。

autoClose

string (Duration format)

如果作用中的警告政策在這段時間內沒有任何資料,系統就會關閉所有未解決的事件

時間長度以秒為單位,最多可有 9 個小數位數,並應以「s」結尾,例如:"3.5s"

notificationChannelStrategy[]

object (NotificationChannelStrategy)

依管道控管通知的傳送方式。

NotificationRateLimit

JSON 表示法
{
  "period": string
}
欄位
period

string (Duration format)

每個 period 最多只能有一則通知。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「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 小時之間。

時間長度以秒為單位,最多可有 9 個小數位數,並應以「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 這是最低的嚴重性等級。如果問題不會造成任何損壞或停機,但日後可能導致問題,請使用這項功能。

工具註解

破壞性提示:❌ | 等冪提示:✅ | 唯讀提示:✅ | 開放世界提示:❌