設定效能擷取功能

效能擷取功能可擷取執行個體效能降低時的詳細指標,協助您診斷資料庫的暫時性問題。如要使用效能擷取功能,請為執行個體啟用這項功能,並設定觸發詳細指標快照的閾值。

事前準備

如要使用成效擷取功能,必須為執行個體啟用查詢洞察

必要的角色

如要取得建立執行個體及啟用效能擷取功能所需的權限,請要求管理員在專案中授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

啟用及設定效能擷取功能

建立或更新 Cloud SQL 執行個體時,您可以啟用效能擷取功能。

gcloud

建立及設定執行個體

如要在建立 Cloud SQL 執行個體時啟用效能擷取功能,請執行下列指令:

gcloud beta sql instances create INSTANCE_NAME \
  --database-version=DATABASE_VERSION \
  --region=REGION \
  --tier=TIER \
  --edition=EDITION_TYPE \
  --performance-capture-config="enabled=true,PROBE_CONFIGURATION,PERFORMANCE_CAPTURE_THRESHOLDS"

更改下列內容:

  • INSTANCE_NAME:執行個體名稱
  • DATABASE_VERSION:資料庫版本。 例如:MYSQL_8_4MYSQL_8_0_37。如未指定資料庫版本,則預設資料庫版本為 MYSQL_8_0
  • REGION:區域
  • TIER:機器類型
  • EDITION_TYPE:您的 Cloud SQL 版本

如果是 performance-capture-config 旗標,請加入 enabled=true。在相同的旗標定義中,您可以為 PROBE_CONFIGURATIONPERFORMANCE_CAPTURE_THRESHOLDS 指定選用設定,也可以稍後更新執行個體來指定。

例如:

gcloud beta sql instances create my-instance \
  --database-version=MYSQL_8_0 \
  --edition=ENTERPRISE_PLUS \
  --tier=db-perf-optimized-N-4 \
  --region=us-west1 \
  --performance-capture-config="enabled=true,probing-interval-seconds=30,probe-threshold=5,running-threads-threshold=10,transaction-duration-threshold=300"

更新現有執行個體

如要為現有 Cloud SQL 執行個體啟用效能擷取功能,請執行下列指令:

gcloud beta sql instances patch INSTANCE_NAME \
  --performance-capture-config="enabled=true,PROBE_CONFIGURATION,PERFORMANCE_CAPTURE_THRESHOLDS"

請為 performance-capture-config 旗標加上 enabled=true。針對相同旗標,您可以為 PROBE_CONFIGURATIONPERFORMANCE_CAPTURE_THRESHOLDS 指定選用設定。

您也可以使用 gcloud beta sql instances patch 指令,更新現有執行個體的效能擷取門檻設定值。

設定效能指標的探測間隔和連續探測次數

您可以將 PROBE_CONFIGURATION 替換成下列一或多個旗標設定。如未設定旗標,監控代理程式會使用預設值。

  • probing-interval-seconds=SECONDS:介於 2086400 之間的整數。指標探測作業之間的時間間隔 (以秒為單位)。例如:3060100。 預設值為 30
  • probe-threshold=PROBES:必須連續超過門檻的次數,才會觸發效能擷取作業。有效範圍為 120。 預設值為 3

設定效能擷取門檻

您可以將 PERFORMANCE_CAPTURE_THRESHOLDS 替換為下列一或多個旗標設定。如果沒有為旗標設定值,監控代理程式會使用門檻的預設值。

  • running-threads-threshold=THREADS:針對主要執行個體,視為超過門檻的有效執行緒數量下限。例如 10。必須大於或等於 10。 如未設定,預設值會根據執行個體大小而定。 預設值為 MIN(600, cpuCount * 20)
  • seconds-behind-source-threshold=SECONDS:唯讀副本的最低複製延遲時間 (以秒為單位),超過此值即視為超出門檻。必須大於 0。 預設值為 900
  • transaction-duration-threshold=SECONDS:未完成交易的持續時間 (以秒為單位),之後系統會追蹤交易並納入成效擷取記錄。例如 300600。值不得小於 60。 預設值為 3600

REST v1

建立及設定執行個體

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • INSTANCE_ID:執行個體 ID
  • DATABASE_VERSION:資料庫版本。 例如:MYSQL_8_4MYSQL_8_0_37。如未指定資料庫版本,則預設資料庫版本為 MYSQL_8_0
  • REGION:區域
  • MACHINE_TYPE:機器類型
  • EDITION_TYPE:您的 Cloud SQL 版本
  • PROBING_INTERVAL_SECONDS:介於 2086400 之間的整數。 指標探測作業之間的時間間隔 (以秒為單位)。預設值為 30
  • PROBE_THRESHOLD:必須連續超過門檻的次數,才會觸發效能擷取。有效範圍為 120。預設值為 3
  • RUNNING_THREADS_THRESHOLD:主要執行個體中,超過門檻的有效執行緒數量下限。例如 10。必須大於或等於 10。 如未設定,預設值會根據執行個體大小而定。 預設值為 MIN(600, cpuCount * 20)
  • SECONDS_BEHIND_SOURCE_THRESHOLD:唯讀副本的最低複製延遲時間 (以秒為單位),超過此值即視為超出門檻。必須大於 0。預設值為 900
  • TRANSACTION_DURATION_THRESHOLD:未提交交易的持續時間 (以秒為單位),之後系統會追蹤交易並納入成效擷取記錄。例如 300600。值不得小於 60。預設值為 3600

HTTP 方法和網址:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances

JSON 要求主體:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE"
  },
  "performanceCaptureConfig": {
     "enabled": true,
     "probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
     "probeThreshold": PROBE_THRESHOLD,
     "runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
     "secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
     "transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2025-11-10T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

更新現有執行個體

使用任何要求資料之前,請先修改下列項目的值:

  • PERFORMANCE_CAPTURE_ENABLE:設為 true,為執行個體啟用效能擷取功能。
  • PROBING_INTERVAL_SECONDS:介於 2086400 之間的整數。 指標探測作業之間的時間間隔 (以秒為單位)。預設值為 30
  • PROBE_THRESHOLD:必須連續超過門檻的次數,才會觸發效能擷取。有效範圍為 120。預設值為 3
  • RUNNING_THREADS_THRESHOLD:主要執行個體中,超過門檻的有效執行緒數量下限。例如 10。必須大於或等於 10。 如未設定,預設值會根據執行個體大小而定。 預設值為 MIN(600, cpuCount * 20)
  • SECONDS_BEHIND_SOURCE_THRESHOLD:唯讀副本的最低複製延遲時間 (以秒為單位),超過此值即視為超出門檻。必須大於 0。預設值為 900
  • TRANSACTION_DURATION_THRESHOLD:未提交交易的持續時間 (以秒為單位),之後系統會追蹤交易並納入成效擷取記錄。例如 300600。值不得小於 60。預設值為 3600

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "performanceCaptureConfig": {
     "enabled": PERFORMANCE_CAPTURE_ENABLE,
     "probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
     "probeThreshold": PROBE_THRESHOLD,
     "runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
     "secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
     "transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD
  },
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2025-11-10T22:19:33.735Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

建立及設定執行個體

使用任何要求資料之前,請先修改下列項目的值:

  • PROJECT_ID:專案 ID
  • INSTANCE_ID:執行個體 ID
  • DATABASE_VERSION:資料庫版本。 例如:MYSQL_8_4MYSQL_8_0_37。如未指定資料庫版本,則預設資料庫版本為 MYSQL_8_0
  • REGION:區域
  • MACHINE_TYPE:機器類型
  • EDITION_TYPE:您的 Cloud SQL 版本
  • PROBING_INTERVAL_SECONDS:介於 2086400 之間的整數。 指標探測作業之間的時間間隔 (以秒為單位)。預設值為 30
  • PROBE_THRESHOLD:必須連續超過門檻的次數,才會觸發效能擷取。有效範圍為 120。預設值為 3
  • RUNNING_THREADS_THRESHOLD:主要執行個體中,超過門檻的有效執行緒數量下限。例如 10。必須大於或等於 10。 如未設定,預設值會根據執行個體大小而定。 預設值為 MIN(600, cpuCount * 20)
  • SECONDS_BEHIND_SOURCE_THRESHOLD:唯讀副本的最低複製延遲時間 (以秒為單位),超過此值即視為超出門檻。必須大於 0。預設值為 900
  • TRANSACTION_DURATION_THRESHOLD:未提交交易的持續時間 (以秒為單位),之後系統會追蹤交易並納入成效擷取記錄。例如 300600。值不得小於 60。預設值為 3600

HTTP 方法和網址:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances

JSON 要求主體:

{
  "name": "INSTANCE_ID",
  "region": "REGION",
  "databaseVersion": "DATABASE_VERSION",
  "settings": {
    "tier": "MACHINE_TYPE",
    "edition": "EDITION_TYPE",
  },
  "performanceCaptureConfig": {
     "enabled": true,
     "probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
     "probeThreshold": PROBE_THRESHOLD,
     "runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
     "secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
     "transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD
  },
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2025-11-10T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

更新現有執行個體

使用任何要求資料之前,請先修改下列項目的值:

  • PERFORMANCE_CAPTURE_ENABLE:設為 true,為執行個體啟用效能擷取功能。
  • PROBING_INTERVAL_SECONDS:介於 2086400 之間的整數。 指標探測作業之間的時間間隔 (以秒為單位)。預設值為 30
  • PROBE_THRESHOLD:必須連續超過門檻的次數,才會觸發效能擷取。有效範圍為 120。預設值為 3
  • RUNNING_THREADS_THRESHOLD:主要執行個體中,超過門檻的有效執行緒數量下限。例如:10。必須大於或等於 10。 如未設定,預設值會根據執行個體大小而定。 預設值為 MIN(600, cpuCount * 20)
  • SECONDS_BEHIND_SOURCE_THRESHOLD:唯讀副本的最低複製延遲時間 (以秒為單位),超過此值即視為超出門檻。必須大於 0。預設值為 900
  • TRANSACTION_DURATION_THRESHOLD:未提交交易的持續時間 (以秒為單位),之後系統會追蹤交易並納入成效擷取記錄。例如 300600。值不得小於 60。預設值為 3600

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "performanceCaptureConfig": {
     "enabled": PERFORMANCE_CAPTURE_ENABLE,
     "probingIntervalSeconds": PROBING_INTERVAL_SECONDS,
     "probeThreshold": PROBE_THRESHOLD,
     "runningThreadsThreshold": RUNNING_THREADS_THRESHOLD,
     "secondsBehindSourceThreshold": SECONDS_BEHIND_SOURCE_THRESHOLD,
     "transactionDurationThreshold": TRANSACTION_DURATION_THRESHOLD
  },
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2025-11-10T22:19:33.735Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

停用效能擷取功能

如要停用效能擷取功能,請使用下列指令。

gcloud

gcloud beta sql instances patch INSTANCE_NAME \
  --performance-capture-config="enabled=false"

INSTANCE_NAME 替換為要停用效能擷取的執行個體名稱。

REST v1

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "performanceCaptureConfig": {
     "enabled": false
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "INSERT_TIME",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

REST v1beta4

HTTP 方法和網址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

JSON 要求主體:

{
  "performanceCaptureConfig": {
     "enabled": false
  }
}

請展開以下其中一個選項,以傳送要求:

您應該會收到如下的 JSON 回覆:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2025-11-10T22:19:33.735Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

後續步驟