本文档介绍了如何创建合成监控工具来测试服务、应用、网页和 API 的可用性、一致性和性能。您需要为应用提供测试。合成监控工具会执行该脚本,并记录测试结果和其他数据(例如延迟时间)。如需在测试失败时收到通知,您可以配置提醒政策来监控测试结果。
此功能仅适用于 Google Cloud 项目。对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
合成监控工具简介
合成监控工具会定期执行在 Cloud Run 上部署的单一用途第 2 代 Cloud Run 函数。创建合成监控工具时,您需要定义 Cloud Run 函数(必须使用 Node.js 编写)和执行频率。例如,您可以使用 Puppeteer 将 Cloud Run 函数配置为与网页交互。您还可以使用 Axios 模块将 Cloud Run 函数配置为与 API 交互。您可能还需要测试 VPC 网络中的资源。
如需创建 Cloud Run 函数,您可以使用内嵌编辑器,也可以上传 ZIP 文件。如果您选择使用内嵌编辑器,则可以从提供的框架开始。 创建合成监控工具后,Cloud Monitoring 会使用调度系统来安排 Cloud Run 函数的定期执行。虽然您可以指定 Cloud Run 函数所在的区域,但触发执行的命令可以源自拨测服务器支持的任何区域。如需了解详情,请参阅列出拨测服务器 IP 地址。
您可以创建提醒政策,以便在出现测试失败时收到通知:
使用 Google Cloud 控制台创建合成监控工具时,默认行为是创建提醒政策。您需要提供通知渠道。默认提醒政策会配置为在连续两次或更多次测试失败时通知您。
使用 Cloud Monitoring API 创建合成监控工具时,您必须创建提醒政策来监控 Cloud Run 函数运行的 Cloud Run 资源的
uptime_check/check_passed
指标类型。
执行频率注意事项
您可以配置 Cloud Run 函数的执行频率。如需确定执行频率,请考虑服务的服务等级目标 (SLO)。为了捕获潜在的 SLO 违规行为,您需要经常执行测试。不过,服务 SLO 并非唯一需要考虑的因素。您还需要考虑执行速率如何转化为服务负载和费用。每次执行都会为您的服务提供负载,因此,您执行 Cloud Run 函数的频率越高,您为服务应用的负载就越多。作为参考,拨测的默认执行时间间隔为 1 分钟。
执行频率还决定了在测试失败时您能多快收到通知。在测试第二次连续失败后,Monitoring 会开启突发事件并发送通知。例如,如果执行频率为 5 分钟,则可能需要 10 分钟才会发生两次失败测试。在第二次测试失败后,您会收到通知。
Cloud Run 函数示例代码
如需查看模板和示例,请参阅合成监控工具示例。 您可以使用这些示例作为 Cloud Run 函数的起点。 如果您是经验丰富的开发者,请考虑使用 Gemini 为合成监控工具生成代码,从而缩短开发时间。使用 Gemini 生成代码的功能目前为公开预览版。
通用模板(您可以在使用 Google Cloud 控制台创建合成监控工具时选择)配置为收集出站 HTTP 请求的跟踪记录和日志数据。该解决方案利用了 OpenTelemetry auto-instrumentation-node 模块和 winston 日志记录器。由于依赖于开源产品,您应该预计跟踪记录和日志数据的结构会发生变化。因此,收集的轨迹和日志数据应仅用于调试目的。
您可以自行实现收集出站 HTTP 请求的跟踪记录和日志数据的方法。如需查看自定义方法的示例,请参阅 SyntheticAutoInstrumentation
类。
Cloud Run 函数配置
配置 Cloud Run 函数时,您必须指定运行时、构建、连接和安全设置,或者接受默认设置:
分配的内存的默认值可能不够。我们建议您将此字段设置为至少 2 GiB。
Cloud Run 函数的入站数据传输设置的默认值为允许所有流量。您可以使用此设置或限制性更高的设置。
如果您允许所有流量,则 Cloud Run functions 在网络级层执行的第一验证阶段始终会通过。第二验证阶段会确定调用方是否已获得执行 Cloud Run 函数的权限。授权取决于调用者的 Identity and Access Management (IAM) 角色。默认情况下,Cloud Monitoring 会获得执行 Cloud Run 函数的权限。如需了解如何查看或修改入站数据传输设置,请参阅入站流量设置。
Cloud Run function 限制
Cloud Run 函数的名称不得包含下划线。
只有在使用通用模板时,您才能收集出站 HTTP 请求的跟踪记录和日志数据。
仅支持 HTTP 函数。如果您使用Google Cloud 控制台创建合成监控工具,系统会为您提供一个用于查询网址的默认函数。默认函数的源代码(可修改)可在
generic-synthetic-nodejs
Git 代码库中找到。如需了解 HTTP 函数,请参阅编写 HTTP 函数。
如果您使用的是 API,则部署命令必须指定 Cloud Run 函数是第 2 代函数。如果您使用的是Google Cloud 控制台,系统会为您处理部署。如需了解详情,请参阅部署 Cloud Run 函数。
运行时环境仅限 Node.js。如需了解详情,请参阅节点。支持以下 Node.js 版本:12、14、16、18 和 20。
合成监控工具收集的数据
本部分介绍了为合成监控工具收集的数据。如需了解如何查看执行结果,请参阅探索合成监控工具结果。
执行历史记录
系统会收集每个合成监控工具的执行结果历史记录。此类数据包括:
用于记录一段时间内执行成功或失败的时序。
用于记录代码执行时长的时序。系统不会记录函数的执行时间。系统会针对 Cloud Run 函数运行的 Cloud Run 资源以
uptime_check/request_latency
时序形式写入延迟时间数据。合成监控工具详情页面上提供了此数据的图表。包含有关合成监控工具执行情况的信息的日志,例如有关测试和失败详情的信息。可用的日志取决于 Cloud Run 函数。例如,如果您使用 Mocha 模板,则日志会包含有关测试通过还是失败以及测试时长的信息。如果包含堆栈轨迹,则会列出失败的代码行、错误类型和错误消息。
(可选)传出 HTTP 请求的跟踪记录和日志。如需了解如何收集此数据,请参阅请求延迟时间。
Cloud Run 函数指标和日志
Cloud Run 函数的指标和日志。此类数据由 Cloud Run functions 收集,其中包含有关函数每秒执行次数、执行时间和内存利用率的信息。
请求延迟时间
Cloud Trace 会自动收集和存储合成监控工具发出的 HTTP 请求的延迟时间数据。
如需收集合成监控工具发出的出站 HTTP 请求的跟踪记录、日志和延迟时间数据,您必须使用通用模板。如需了解详情,请参阅合成监控工具的示例。
准备工作
在存储合成监控工具的 Google Cloud 项目中完成以下步骤:
-
如需获得使用 Google Cloud 控制台查看和修改合成监控工具所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
Monitoring Editor (
roles/monitoring.editor
) -
Cloud Functions Developer (
roles/cloudfunctions.developer
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
-
Monitoring Editor (
-
Enable the Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API APIs.
验证您的 Google Cloud 项目是否包含默认 Compute Engine 服务账号。此服务账号是在您启用 Compute Engine API 时创建的,名称类似于
12345-compute@developer.gserviceaccount.com
。在 Google Cloud 控制台中,前往服务账号页面:
如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。
如果默认 Compute Engine 服务账号不存在,请点击创建服务账号并完成对话框。
确保默认 Compute Engine 服务账号或您创建的服务账号已被授予 Editor 角色 (
roles/editor
)。如需查看向您的服务账号授予的角色,请执行以下操作:
-
在 Google Cloud 控制台中,前往 IAM 页面:
如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。
- 选择包括 Google 提供的角色授权。
- 如果合成监控工具使用的服务账号未列出,或者未被授予可提供 Cloud Trace Agent 角色 (
roles/cloudtrace.agent
) 具有的权限的角色,请向服务账号授予此角色。
-
- 配置您要用于接收通知的通知渠道。我们建议您创建多种类型的通知渠道。如需了解详情,请参阅创建和管理通知渠道以及使用 API 创建和管理通知渠道。
-
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
- 确保您已启用所需的 API,您的项目包含默认 Compute Engine 服务账号,并且此账号已被授予 Editor 角色 (
roles/editor
)。如需了解详情,请参阅准备工作。 -
在 Google Cloud 控制台中,前往
合成监控页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在 Google Cloud 控制台的工具栏中,选择您的 Google Cloud 项目。对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
- 选择创建合成监控工具。
为 Cloud Run 函数选择模板:
自定义合成监控工具:如果您想收集出站 HTTP 请求的日志数据或跟踪记录数据,请使用此模板。
Mocha 合成监控工具:编写 Mocha 测试套件时,请使用此模板。
损坏的链接检查工具:使用此模板可测试 URI 以及在该 URI 处发现的可配置数量的链接。如需了解此检查工具的字段,请参阅创建损坏的链接检查工具。
输入监控器的名称。
可选:更新响应超时和检查频率,并添加用户定义的标签。
执行下列其中一项操作:
如果您在此项目中有权访问 Gemini Code Assist,并且希望获得帮助来编写代码,请点击帮我编码。此功能目前为公开预览版。如需查看有关提示的指导,请参阅了解如何为合成监控工具编写提示。
对代码满意后,点击插入到 Cloud Functions 函数。
点击创建函数。
在 Cloud Run 函数对话框中,执行以下操作:
输入显示名称并选择区域。名称在区域中必须是唯一的。
在运行时、构建、连接和安全设置部分中,执行以下操作:
查看默认设置,并在必要时更新这些设置。
在运行时服务账号字段中,选择一个服务账号。
修改生成的代码,或为 Cloud Run 函数编写/上传代码:
如需修改生成的代码、输入您自己的代码或加载默认的示例函数,请选择内嵌编辑器。示例函数(取决于您之前选择的模板)会向特定网址发送请求。您可以修改默认函数。
如需从本地系统加载 ZIP 文件,请选择 ZIP 上传。
如果您从本地系统上传 ZIP 文件,则还必须为该 ZIP 文件指定 Cloud Storage 存储桶。如果您没有合适的 Cloud Storage 存储桶,请创建一个。
如需从 Cloud Storage 加载 ZIP 文件,请选择 Cloud Storage 中的 ZIP 文件,选择存储桶,然后选择要加载的 ZIP 文件。
您还可以使用 Google Cloud 控制台中的 Cloud Run 函数页面创建 Cloud Run 函数。如需创建用于监控该 Cloud Run 函数副本的合成监控工具,请前往来源标签页,然后点击下载 ZIP 文件。然后,您可以上传该 ZIP 文件。
点击应用函数。
配置提醒政策:
可选:更新提醒政策名称和发送通知之前的故障持续时长。
添加通知渠道。
点击创建。
您定义的 Cloud Run 函数会以第 2 代形式构建和部署,并且系统会创建合成监控工具。
- 确保您已启用所需的 API,您的项目包含默认 Compute Engine 服务账号,并且此账号已被授予 Editor 角色 (
roles/editor
)。如需了解详情,请参阅准备工作。 - 使用
gcloud config set
命令将 Google Cloud CLI 配置为设置默认项目:gcloud config set project PROJECT_ID
在运行上述命令之前,请替换以下内容:
- PROJECT_ID:项目的标识符。 对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
- 编写和部署第 2 代 Cloud Run functions 函数。
例如,如需在
Google Cloud/synthetics-sdk-nodejs
代码库中部署synthetics-sdk-nodejs
示例,请执行以下操作:克隆该代码库,然后前往源代码的位置:
git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
使用
gcloud functions deploy
命令部署 Cloud Run 函数:gcloud functions deploy FUNCTION_NAME \ --gen2 --region="us-west2" --source="." \ --entry-point=SyntheticFunction --trigger-http --runtime=nodejs18
在
gcloud functions deploy
命令中,执行以下操作:确保 FUNCTION_NAME 字段的值在其部署区域中是唯一的。
添加
--gen2
标志并设置部署区域。按如下所示设置
--entry-point
字段:- Mocha:
SyntheticMochaSuite
- 非 Mocha:
SyntheticFunction
。
- Mocha:
将
--runtime
字段设置为nodejs18
。添加
--trigger-http
标志。如果您不想使用允许所有流量的默认设置,请设置
--ingress-settings
字段。
Cloud Run functions 会构建并部署 Cloud Run 函数。Google Cloud CLI 命令的结果包含有关函数的信息,包括其完全限定名称:
name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
如需详细了解如何部署函数,请参阅部署 Cloud Run 函数。
如需列出 Google Cloud 项目中的 Cloud Run 函数,请使用
gcloud functions list
命令:gcloud functions list
此调用的响应是列表条目,每个条目都会列出一个 Cloud Run 函数:
NAME: function-1 STATE: ACTIVE TRIGGER: HTTP Trigger REGION: us-west2 ENVIRONMENT: 2nd gen
如需查找特定 Cloud Run 函数的完全限定名称,请运行
gcloud monitoring uptime describe
命令。 如需创建合成监控工具,请运行
gcloud monitoring uptime create
命令:gcloud monitoring uptime create DISPLAY_NAME --synthetic-target=TARGET
在运行上述命令之前,请替换以下内容:
- DISPLAY_NAME:合成监控工具的名称。
- TARGET:Cloud Run 函数的完全限定名称。
创建提醒政策。
由于提醒政策配置的复杂性,我们建议您前往 Google Cloud 控制台中的合成监控工具页面,并使用相应选项创建提醒政策。如果使用此方法,系统会为您填充大多数提醒政策字段。如需使用Google Cloud 控制台创建提醒政策,请点击合成监控工具页面中的创建政策。
如果您计划使用 Google Cloud CLI 或 Cloud Monitoring API,请按如下所示配置条件的过滤条件:
"filter": "resource.type = \"cloud_run_revision\" AND metric.type = \"monitoring.googleapis.com/uptime_check/check_passed\" AND metric.labels.check_id = \"CHECK_ID\"",
条件会监控由合成监控工具写入的
uptime_check/check_passed
时序。请务必将 CHECK_ID 替换为合成监控工具的标识符,该标识符包含在创建命令的响应数据中。如需了解如何创建提醒政策,请参阅使用 API 创建提醒政策。
为您的项目安装和配置 Terraform。对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
确保您已启用所需的 API,您的项目包含默认 Compute Engine 服务账号,并且此账号已被授予 Editor 角色 (
roles/editor
)。如需了解详情,请参阅准备工作。修改 Terraform 配置文件并添加
google_storage_bucket
资源,然后应用更改。以下代码定义了
US
位置中的 Cloud Storage 存储桶:resource "google_storage_bucket" "gcf_source" { name = "gcf-v2-source-9948673986912-us" location = "US" uniform_bucket_level_access = true }
修改 Terraform 配置文件并添加
google_storage_bucket_object
资源,然后应用更改。该资源指定了存储桶中对象的名称以及本地系统中 ZIP 文件的位置。例如,当您应用以下代码时,系统会将名为
example-function.zip
的文件添加到存储桶中:resource "google_storage_bucket_object" "object" { name = "example-function.zip" bucket = google_storage_bucket.gcf_source.name source = "generic-synthetic-node.js.zip" }
修改 Terraform 配置文件并添加
google_cloudfunctions2_function
资源,然后应用更改。确保
google_cloudfunctions2_function
资源指定了 Node.js 运行时以及合成监控工具使用的入口点。例如,当您应用以下代码时,系统会部署一个名为sm-central1
的函数:resource "google_cloudfunctions2_function" "central1" { name = "sm-central1" location = "us-central1" build_config { runtime = "nodejs20" entry_point = "SyntheticFunction" source { storage_source { bucket = google_storage_bucket.gcf_source.name object = google_storage_bucket_object.object.name } } } service_config { max_instance_count = 1 available_memory = "256Mi" timeout_seconds = 60 } }
如需创建合成监控工具,请修改 Terraform 配置文件并添加
google_monitoring_uptime_check_config
资源,然后应用更改。对于此资源,请指定
synthetic_monitor
块:resource "google_monitoring_uptime_check_config" "synthetic" { display_name = "sm-central1" timeout = "30s" synthetic_monitor { cloud_function_v2 { name = google_cloudfunctions2_function.central1.id } } }
可选:创建通知渠道和提醒政策。
以下步骤使用 Google Cloud 控制台创建通知渠道和提醒政策。这种方法可确保提醒政策仅监控合成监控工具生成的数据。
- 确保您已启用所需的 API,您的项目包含默认 Compute Engine 服务账号,并且此账号已被授予 Editor 角色 (
roles/editor
)。如需了解详情,请参阅准备工作。 - 使用
gcloud config set
命令将 Google Cloud CLI 配置为设置默认项目:gcloud config set project PROJECT_ID
在运行上述命令之前,请替换以下内容:
- PROJECT_ID:项目的标识符。 对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
- 编写和部署第 2 代 Cloud Run functions 函数。
例如,如需在
Google Cloud/synthetics-sdk-nodejs
代码库中部署synthetics-sdk-nodejs
示例,请执行以下操作:克隆该代码库,然后前往源代码的位置:
git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
使用
gcloud functions deploy
命令部署 Cloud Run 函数:gcloud functions deploy FUNCTION_NAME \ --gen2 --region="us-west2" --source="." \ --entry-point=SyntheticFunction --trigger-http --runtime=nodejs18
在
gcloud functions deploy
命令中,执行以下操作:确保 FUNCTION_NAME 字段的值在其部署区域中是唯一的。
添加
--gen2
标志并设置部署区域。按如下所示设置
--entry-point
字段:- Mocha:
SyntheticMochaSuite
- 非 Mocha:
SyntheticFunction
。
- Mocha:
将
--runtime
字段设置为nodejs18
。添加
--trigger-http
标志。如果您不想使用允许所有流量的默认设置,请设置
--ingress-settings
字段。
Cloud Run functions 会构建并部署 Cloud Run 函数。Google Cloud CLI 命令的结果包含有关函数的信息,包括其完全限定名称:
name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
如需详细了解如何部署函数,请参阅部署 Cloud Run 函数。
如需列出 Google Cloud 项目中的 Cloud Run 函数,请使用
gcloud functions list
命令:gcloud functions list
此调用的响应是列表条目,每个条目都会列出一个 Cloud Run 函数:
NAME: function-1 STATE: ACTIVE TRIGGER: HTTP Trigger REGION: us-west2 ENVIRONMENT: 2nd gen
如需查找特定 Cloud Run 函数的完全限定名称,请运行
gcloud monitoring uptime describe
命令。 如需创建合成监控工具,请执行以下操作:
- 点击
projects.uptimeCheckConfigs.create
以打开相应方法的 API 参考文档页面。 - 点击试试看以打开 APIs Explorer。
设置以下字段,然后运行该命令。
父字段:要在其中创建合成监控工具的项目。 对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。 此字段采用以下格式:
projects/PROJECT_ID
在请求正文中,指定以下内容:
displayName
:设置为合成监控工具的显示名称。syntheticMonitor
:设置为 Cloud Run 函数的完全限定名称。
成功后,API 调用的响应类似于以下内容:
{ "name": "projects/myproject/uptimeCheckConfigs/17272586127463315332", "displayName": "MyMonitor", ... "syntheticMonitor": { "cloudFunctionV2": { "name": "projects/myproject/locations/us-west2/functions/function-1", "cloudRunRevision": { "type": "cloud_run_revision", "labels": { "project_id": "myproject", "configuration_name": "", "location": "us-west2", "revision_name": "", "service_name": "function-1" } } } } }
- 点击
创建提醒政策。
由于提醒政策配置的复杂性,我们建议您前往 Google Cloud 控制台中的合成监控工具页面,并使用相应选项创建提醒政策。如果使用此方法,系统会为您填充大多数提醒政策字段。如需使用Google Cloud 控制台创建提醒政策,请点击合成监控工具页面中的创建政策。
如果您计划使用 Google Cloud CLI 或 Cloud Monitoring API,请按如下所示配置条件的过滤条件:
"filter": "resource.type = \"cloud_run_revision\" AND metric.type = \"monitoring.googleapis.com/uptime_check/check_passed\" AND metric.labels.check_id = \"CHECK_ID\"",
条件会监控由合成监控工具写入的
uptime_check/check_passed
时序。请务必将 CHECK_ID 替换为合成监控工具的标识符,该标识符包含在创建命令的响应数据中。如需了解如何创建提醒政策,请参阅使用 API 创建提醒政策。
-
在 Google Cloud 控制台中,前往 IAM 页面:
如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。
- 在 Google Cloud 控制台的工具栏中,选择您的 Google Cloud 项目。对于 App Hub 配置,请选择 App Hub 宿主项目或已启用应用的文件夹的管理项目。
- 选择包括 Google 提供的角色授权。
如果合成监控工具使用的服务账号未列出,或者未被授予可提供 Cloud Trace Agent 角色 (
roles/cloudtrace.agent
) 具有的权限的角色,请向服务账号授予此角色。如果您不知道服务账号的名称,请在导航菜单中选择服务账号。
确保 Cloud Run 函数的名称不包含下划线。如果存在下划线,请移除下划线并重新部署 Cloud Run 函数。
打开合成监控工具的合成监控工具详细信息页面。
如果您看到以下消息,请删除合成监控工具。
Cloud Function not found for this Synthetic monitor. Please confirm it exists or delete this monitor.
此错误消息表明该函数已被删除,因此合成监控工具无法执行该函数。
打开相应函数的 Cloud Run functions 页面。如需从合成监控工具详细信息页面打开此页面,请点击代码,然后点击函数名称。
如果您看到类似于以下内容的消息,则表示该函数部署失败。
This function has failed to deploy and will not work correctly. Please edit and redeploy
如需解决此失败问题,请查看函数代码并更正阻止函数构建或部署的错误。
如果显示错误消息
Request failed with status code 429
,则表示 HTTP 请求的目标拒绝了该命令。如需解决此失败问题,您必须更改合成监控工具的目标。端点
https://www.google.com
会拒绝合成监控工具发出的请求。如果失败返回的执行时间为
0ms
,则表示 Cloud Run 函数可能耗尽内存。如需解决此失败问题,请修改 Cloud Run 函数,然后将内存增加到至少 2 GiB,并将 CPU 字段设置为1
。
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Terraform
如需在本地开发环境中使用本页面上的 Terraform 示例,请安装并初始化 gcloud CLI,然后使用您的用户凭证设置应用默认凭证。
如需了解详情,请参阅 Google Cloud 身份验证文档中的为本地开发环境设置 ADC。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭证。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
创建合成监控工具
控制台
当您使用 Google Cloud 控制台创建合成监控工具时,系统会部署新的 Cloud Run 函数(第 2 代),并为该 Cloud Run 函数创建监控工具。您无法创建用于监控现有 Cloud Run functions 函数的合成监控工具。
gcloud
使用 Google Cloud CLI 或 Cloud Monitoring API 创建合成监控工具时,您需要将函数名称传递给 API 调用。因此,您只能创建用于监控现有 Cloud Run 函数的合成监控工具。
Terraform
如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。 如需了解详情,请参阅 Terraform 提供程序参考文档。
如需创建合成监控工具以及用于监控该检查的提醒政策,请执行以下操作:
REST
使用 Google Cloud CLI 或 Cloud Monitoring API 创建合成监控工具时,您需要将函数名称传递给 API 调用。因此,您只能创建用于监控现有 Cloud Run 函数的合成监控工具。
价格
一般而言,Cloud Monitoring 系统指标是免费的,而来自外部系统、代理或应用的指标则需要付费。可结算的指标按注入的字节数或样本数计费。
如需详细了解 Cloud Monitoring 价格,请参阅以下文档:
排查合成监控工具问题
本部分提供的信息可帮助您排查合成监控工具的问题。
启用 API 后出现的错误消息
您打开了合成监控工具的创建流程,系统会提示您启用至少一个 API。启用这些 API 后,系统会显示类似于以下内容的消息:
An error occurred during fetching available regions: Cloud Functions API has not been used in project PROJECT_ID before or it is disabled.
错误消息建议您验证 API 是否已启用,然后建议您等待并重试该操作。
如需验证 API 是否已启用,请前往您的项目的 API 和服务页面:
验证 API 是否已启用后,您可以继续执行创建流程。当 API 启用状态通过后端传播后,此情况会自动解决。
出站 HTTP 请求未被跟踪
您可以将合成监控工具配置为收集输出 HTTP 请求的跟踪记录数据。跟踪记录数据仅显示一个 span,类似于以下屏幕截图:
如需解决此情况,请确保您的服务账号已被授予 Cloud Trace Agent 角色 (
roles/cloudtrace.agent
)。Editor 角色 (roles/editor
) 也足以解决此问题。如需查看向您的服务账号授予的角色,请执行以下操作:
“进行中”状态
合成监控工具页面会列出状态为
In progress
的合成监控工具。状态为In progress
表示合成监控工具是最近创建的,并且没有任何要显示的数据,或者函数部署失败。如需确定函数是否未能成功部署,请尝试执行以下操作:
创建合成监控工具时,函数的部署和执行可能需要几分钟的时间。
警告状态
合成监控工具会列出状态为
Warning
的合成监控工具。如果状态为Warning
,则表示执行结果不一致。这可能表明您的测试存在设计问题,也可能表明被测对象存在不一致的行为。“失败”状态
合成监控工具会列出状态为
Failing
的合成监控工具。如需详细了解失败原因,请查看最近的执行历史记录。合成监控工具的删除操作失败
您使用 Cloud Monitoring API 删除合成监控工具,但该 API 调用失败,并返回类似于以下内容的响应:
{ "error": { "code": 400, "message": "Request contains an invalid argument.", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.DebugInfo", "detail": "[ORIGINAL ERROR] generic::invalid_argument: Cannot delete check 1228258045726183344. One or more alerting policies is using it.Delete the alerting policy with id projects/myproject/alertPolicies/16594654141392976482 and any other policies using this uptime check and try again." } ] } }
如需解决此失败问题,请删除监控合成监控工具结果的提醒政策,然后删除该合成监控工具。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-14。
-