创建合成监控工具

本文档介绍如何创建合成监控工具,以测试服务、应用、网页和 API 的可用性、一致性和性能。您要为应用提供测试。合成监控工具会执行该脚本并记录测试结果和其他数据(例如延迟时间)。如需在测试失败时收到通知,您可以配置提醒政策来监控测试结果。

合成监控工具简介

合成监控工具会定期执行部署在 Cloud Run 上的单一用途 第 2 代 Cloud Functions 函数。创建合成监控工具时,您需要定义必须使用 Node.js 编写的 Cloud Function 以及执行频率。例如,您可以将 Cloud Function 配置为使用 Puppeteer 与网页交互。您还可以将 Cloud Function 配置为使用 Axios 模块与 API 交互。您可能还需要测试 VPC 网络中的资源

如需创建 Cloud Function,您可以使用内嵌编辑器或上传 zip 文件。如果您选择使用内嵌编辑器,则可以从提供的框架着手。创建合成监控工具后,Cloud Monitoring 会使用一个调度系统来安排您的 Cloud Function 的定期执行。虽然指定 Cloud Function 所在的区域,但触发执行的命令可以来自正常运行时间检查服务器支持的任何区域。如需了解详情,请参阅列出正常运行时间检查服务器 IP 地址

您可以创建提醒政策,以便在测试失败时收到通知:

  • 使用 Google Cloud 控制台创建合成监控工具时,默认行为是创建提醒政策。您需要提供通知渠道。默认提醒政策配置为在连续两次或更多次测试失败时通知您。

  • 使用 Cloud Monitoring API 创建合成监控工具时,您必须创建提醒政策来监控运行 Cloud Function 函数的 Cloud Run 资源的 uptime_check/check_passed 指标类型。

执行频率注意事项

您可以配置 Cloud Function 的执行频率。如需确定执行频率,请考虑服务的服务等级目标 (SLO)。如需捕获潜在的 SLO 违规行为,您需要频繁执行测试。但是,服务的 SLO 并不是唯一的考虑因素。您还需要考虑执行速率如何转化为服务负载和费用。每次执行都会为您的服务提供负载,因此您执行 Cloud Function 的频率越高,向服务施加的负载就越多。拨测的默认执行间隔为一分钟,供您参考。

执行频率还决定了在测试失败时您能以多快的速度收到通知。Monitoring 会创建一个突发事件,并在测试连续第二次失败后发送通知。例如,如果执行频率是 5 分钟,那么可能需要 10 分钟才会出现两项失败的测试。您会在第二次测试失败后收到通知。

Cloud Function 示例代码

如需查看模板和示例,请参阅合成监控工具示例。 您可以使用这些示例作为您的 Cloud Function 的起点。 如果您是经验丰富的开发者,请考虑使用 Gemini 生成合成监控工具的代码,从而缩短开发时间。使用 Gemini 生成代码的功能目前为公开预览版。

通用模板(在使用 Google Cloud 控制台创建合成监控工具时可以选择)配置为收集出站 HTTP 请求的跟踪和日志数据。该解决方案利用 OpenTelemetry auto-instrument-node 模块和 winston logger。由于依赖开源产品,因此轨迹和日志数据的结构应该会发生变化。因此,收集的跟踪记录和日志数据应仅用于调试目的。

您可以实现自己的方法来收集出站 HTTP 请求的跟踪记录和日志数据。如需查看自定义方法的示例,请参阅 SyntheticAutoInstrumentation 类。

Cloud Function 函数配置

配置 Cloud Function 时,您必须指定运行时、构建、连接和安全设置,或接受默认设置:

  • 所分配内存的默认值可能不够。我们建议您将此字段设置为至少 2 GiB。

  • Cloud Function 函数的入站数据传输设置的默认值为允许所有流量。您可以使用此设置或更严格的设置。

    如果您允许所有流量,则 Cloud Functions 函数执行的第一阶段(在网络级别完成)将始终通过。验证的第二阶段确定调用方是否已获得执行 Cloud Function 的权限。授权取决于调用者的 Identity and Access Management (IAM) 角色。默认情况下,Cloud Monitoring 会被授予执行 Cloud Function 的权限。如需了解如何查看或修改入站数据传输设置,请参阅入站流量设置

Cloud Function 限制

  • Cloud Function 的名称不得包含下划线。

  • 只有在使用通用模板时,您才能收集出站 HTTP 请求的跟踪记录和日志数据。

  • 仅支持 HTTP 函数。如果您使用 Google Cloud 控制台创建合成监控工具,系统将为您提供一个用于查询网址的默认函数。generic-synthetic-nodejs Git 代码库中提供了默认函数的源代码可以修改。

    如需了解 HTTP 函数,请参阅编写 HTTP 函数

  • 如果您使用 API,则部署命令必须指定 Cloud Function 是第 2 代函数。如果您使用 Google Cloud 控制台,系统将为您处理部署。如需了解详情,请参阅部署 Cloud Functions 函数

  • 运行时环境仅限 Node.js 环境。如需了解相关信息,请参阅节点。支持以下 Node.js 版本:12、14、16、18 和 20。

合成监控工具收集的数据

本部分介绍了为合成监控工具收集的数据。如需了解如何查看执行结果,请参阅探索合成监控工具结果

执行历史记录

对于每个合成监控工具,系统都会收集执行结果的历史记录。这些数据包括以下内容:

  • 记录执行成功或失败随时间变化的时序。

  • 记录代码执行时长的时序。系统不会记录函数的执行时间。针对运行 Cloud Functions 函数的 Cloud Run 资源,延迟时间数据以 uptime_check/request_latency 时序的形式编写。合成监控工具详细信息页面上提供了此数据的图表。

  • 包含与合成监控工具的执行相关的信息(例如测试信息和失败详细信息)的日志。可用的日志取决于您的 Cloud Function。例如,如果您使用 Mocha 模板,则日志会包含有关测试是通过还是失败以及测试时长的信息。堆栈轨迹(若包含)会列出失败的代码行、错误类型和错误消息。

  • (可选)出站 HTTP 请求的跟踪记录和日志。如需了解如何收集此数据,请参阅请求延迟时间

Cloud Function 指标和日志

Cloud Functions 函数的指标和日志。此数据由 Cloud Functions 收集,包括有关函数每秒执行次数、执行时间和内存利用率的信息。

请求延迟时间

Cloud Trace 会自动收集和存储合成监控工具发出的 HTTP 请求的延迟时间数据。

如需收集合成监控工具发出的出站 HTTP 请求的跟踪记录、日志和延迟时间数据,您必须使用通用模板。如需了解详情,请参阅合成监控器示例

准备工作

  1. 如需获取使用 Google Cloud 控制台查看和修改合成监控工具所需的权限,请让管理员授予您项目的以下 IAM 角色:

    如需详细了解如何授予角色,请参阅管理访问权限

    您也可以通过自定义角色或其他预定义角色来获取所需的权限。

  2. 启用 Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API API。

    启用 API

  3. 验证您的 Google Cloud 项目是否包含默认的 Compute Engine 服务帐号。此服务帐号在您启用 Compute Engine API 时创建,名称类似于 [email protected]

    在 Google Cloud 控制台中,前往服务帐号页面:

    前往服务帐号

    如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。

    如果默认的 Compute Engine 服务帐号不存在,请点击创建服务帐号并完成对话框。

  4. 确保已向默认 Compute Engine 服务帐号或您创建的服务帐号授予 Editor (roles/editor) 角色。

    如需查看授予服务帐号的角色,请执行以下操作:

    1. 在 Google Cloud 控制台中,进入 IAM 页面:

      前往 IAM

      如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。

    2. 选择包括 Google 提供的角色授权
    3. 如果合成监控工具使用的服务帐号未列出,或者尚未获得包含 Cloud Trace Agent (roles/cloudtrace.agent) 角色权限的角色,则请将此角色授予您的服务帐号。
  5. 配置您要用于接收通知的通知渠道。我们建议您创建多种类型的通知渠道。如需了解详情,请参阅创建和管理通知渠道以及按 API 创建和管理通知渠道

创建合成监控工具

控制台

当您使用 Google Cloud 控制台创建合成监控工具时,系统会部署一个新的 Cloud Function(第 2 代),并创建该 Cloud Function 的监控工具。您无法创建监控现有 Cloud Function 的合成监控工具。

  1. 请确保您已启用所需的 API,您的项目包含默认的 Compute Engine 服务帐号,并且此帐号已被授予 Editor 角色 (roles/editor)。如需了解详情,请参阅准备工作
  2. 在 Google Cloud 控制台中,前往  综合监控页面:

    前往合成监控

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  3. 选择创建合成监控工具
  4. 为您的 Cloud Function 选择模板:

    • 自定义合成监控工具:如果您要收集出站 HTTP 请求的日志数据或跟踪数据,请使用此模板。

    • Mocha 合成监控工具:在编写 Mocha 测试套件时使用此模板。

    • 损坏的链接检查工具:使用此模板测试一个 URI 以及在该 URI 中找到的可配置数量的链接。如需了解此检查工具的字段,请参阅创建损坏链接检查工具

  5. 输入显示器的名称。

  6. 可选:更新响应超时检查频率,并添加用户定义的标签。

  7. 执行下列其中一项操作:

  8. 在 Cloud Function 对话框中,执行以下操作:

    1. 输入显示名称并选择区域。名称在一个区域内必须是唯一的。

    2. 运行时、构建、连接和安全设置部分中,执行以下操作:

      • 查看默认设置并根据需要进行更新。

      • 运行时服务帐号字段中,选择一个服务帐号。

    3. 修改生成的代码,或为您的 Cloud Function 编写或上传代码:

      • 如需修改生成的代码,请输入您自己的代码或加载默认示例函数,请选择内嵌编辑器。示例函数(取决于您之前选择的模板)会向特定网址发送请求。您可以修改默认函数。

      • 如需从本地系统加载 ZIP 文件,请选择 ZIP 上传

        如果您从本地系统上传 ZIP 文件,则还必须为 ZIP 文件指定 Cloud Storage 存储桶。如果您没有合适的 Cloud Storage 存储桶,请创建一个。

      • 如需从 Cloud Storage 加载 ZIP 文件,请选择 ZIP from Cloud Storage,选择存储桶,然后选择要加载的 ZIP 文件。

        您还可以使用 Google Cloud 控制台中的 Cloud Functions 页面创建 Cloud Function。如需创建用于监控该 Cloud Function 副本的合成监控工具,请转到来源标签页,然后点击下载 zip 文件。然后,您就可以上传该 ZIP 文件了。

    4. 点击应用函数

  9. 配置提醒政策

    1. 可选:在发送通知之前更新提醒政策名称和失败时长。

    2. 添加通知渠道。

  10. 点击创建

    您定义的 Cloud Functions 函数将作为第 2 代进行构建和部署,并创建合成监控工具。

gcloud

使用 Google Cloud CLI 或 Cloud Monitoring API 创建合成监控工具时,您需要将函数名称传递给 API 调用。因此,您只能创建用于监控现有 Cloud Function 的合成监控工具。

  1. 请确保您已启用所需的 API,您的项目包含默认的 Compute Engine 服务帐号,并且此帐号已被授予 Editor 角色 (roles/editor)。如需了解详情,请参阅准备工作
  2. 编写和部署您的第 2 代 Cloud Function。

    例如,如需在 Google Cloud/synthetics-sdk-nodejs 代码库中部署 synthetics-sdk-nodejs 示例,请执行以下操作:

    1. 克隆代码库并转到源代码的位置:

      git clone http://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. 使用 gcloud functions deploy 命令部署 Cloud Function:

      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
      • --runtime 字段设置为 nodejs18

      • 添加 --trigger-http 标志。

      • 如果您不想使用允许所有流量的默认设置,请设置 --ingress-settings 字段。

      Cloud Functions 函数构建并部署您的 Cloud Function。 Google Cloud CLI 命令的结果包含该函数的相关信息,其中包括其完全限定名称:

      name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
      

      如需详细了解如何部署函数,请参阅部署 Cloud Functions 函数

    如需列出 Google Cloud 项目中的 Cloud Functions 函数,请使用 gcloud functions list 命令:

    gcloud functions list
    

    此调用的响应是一个列表条目,每个条目都列出了一个 Cloud Function:

    NAME: function-1
    STATE: ACTIVE
    TRIGGER: HTTP Trigger
    REGION: us-west2
    ENVIRONMENT: 2nd gen
    

    如需查找特定 Cloud Function 的完全限定名称,请运行 gcloud monitoring uptime describe 命令。

  3. 如需创建合成监控工具,请运行 gcloud monitoring uptime create 命令:

    gcloud monitoring uptime create DISPLAY_NAME --synthetic-target=TARGET
    

    在运行上一个命令之前,请执行以下操作:

    • DISPLAY_NAME 替换为您的合成监控工具的名称。
    • TARGET 替换为您的 Cloud Function 的完全限定名称。
  4. 创建提醒政策

    鉴于提醒政策配置的复杂性,我们建议您前往 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 替换为合成监控工具的标识符,并且该标识符包含在 create 命令的响应数据中。

    如需了解如何创建提醒政策,请参阅使用 API 创建提醒政策

API

使用 Google Cloud CLI 或 Cloud Monitoring API 创建合成监控工具时,您需要将函数名称传递给 API 调用。因此,您只能创建用于监控现有 Cloud Function 的合成监控工具。

  1. 请确保您已启用所需的 API,您的项目包含默认的 Compute Engine 服务帐号,并且此帐号已被授予 Editor 角色 (roles/editor)。如需了解详情,请参阅准备工作
  2. 编写和部署您的第 2 代 Cloud Function。

    例如,如需在 Google Cloud/synthetics-sdk-nodejs 代码库中部署 synthetics-sdk-nodejs 示例,请执行以下操作:

    1. 克隆代码库并转到源代码的位置:

      git clone http://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. 使用 gcloud functions deploy 命令部署 Cloud Function:

      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
      • --runtime 字段设置为 nodejs18

      • 添加 --trigger-http 标志。

      • 如果您不想使用允许所有流量的默认设置,请设置 --ingress-settings 字段。

      Cloud Functions 函数构建并部署您的 Cloud Function。 Google Cloud CLI 命令的结果包含该函数的相关信息,其中包括其完全限定名称:

      name: projects/PROJECT_ID/locations/REGION/functions/FUNCTION_NAME
      

      如需详细了解如何部署函数,请参阅部署 Cloud Functions 函数

    如需列出 Google Cloud 项目中的 Cloud Functions 函数,请使用 gcloud functions list 命令:

    gcloud functions list
    

    此调用的响应是一个列表条目,每个条目都列出了一个 Cloud Function:

    NAME: function-1
    STATE: ACTIVE
    TRIGGER: HTTP Trigger
    REGION: us-west2
    ENVIRONMENT: 2nd gen
    

    如需查找特定 Cloud Function 的完全限定名称,请运行 gcloud monitoring uptime describe 命令。

  3. 如需创建合成监控工具,请执行以下操作:

    1. 点击 projects.uptimeCheckConfigs.create 以打开该方法的 API 参考文档页面。
    2. 点击试用以打开 API Explorer。
    3. 设置以下字段,然后运行命令。

      • 父字段:projects/PROJECT_ID
      • 在请求正文中,指定以下内容:

        • displayName:设置为合成监控工具的显示名称。
        • syntheticMonitor:设置为 Cloud Function 的完全限定名称。

      成功后,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"
          }
          }
       }
      }
      }
      
  4. 创建提醒政策

    鉴于提醒政策配置的复杂性,我们建议您前往 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 替换为合成监控工具的标识符,并且该标识符包含在 create 命令的响应数据中。

    如需了解如何创建提醒政策,请参阅使用 API 创建提醒政策

Terraform

如需了解如何应用或移除 Terraform 配置,请参阅基本 Terraform 命令。 如需了解详情,请参阅 Terraform 提供程序参考文档

如需创建合成监控工具和提醒政策来监控该检查,请执行以下操作:

  1. 请确保您已启用所需的 API,您的项目包含默认的 Compute Engine 服务帐号,并且此帐号已被授予 Editor 角色 (roles/editor)。如需了解详情,请参阅准备工作

  2. 修改 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
    }
    
  3. 修改 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"
    }
    
  4. 修改 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
       }
    }
    
  5. 如需创建合成监控工具,请修改 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
          }
       }
    }
    
  6. 可选:创建通知渠道和提醒政策。

    以下步骤使用 Google Cloud 控制台创建通知渠道和提醒政策。此方法可确保提醒政策仅监控合成监控工具生成的数据。

    1. 如需创建通知渠道,请执行以下操作:

      1. 在 Google Cloud 控制台中,转到 提醒页面:

        进入提醒

        如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

      2. 选择管理通知渠道
      3. 转到您要添加的渠道类型,点击添加,然后完成对话框。
    2. 如需创建提醒政策,请执行以下操作:

      1. 在 Google Cloud 控制台中,前往  综合监控页面:

        前往合成监控

        如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

      2. 找到您的合成监控工具,选择 更多,然后选择添加提醒政策
      3. 在对话框中,转到通知和名称部分,展开通知渠道,然后选择相应的选项。
      4. 为提醒政策命名,然后点击创建政策

价格

一般来说,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 已启用后,您可以继续创建流程。在 API 启用过程通过后端传播后,条件会自动解析。

未跟踪出站 HTTP 请求

您可以将合成监控工具配置为收集输出 HTTP 请求的跟踪记录数据。您的轨迹数据仅显示一个 span,类似于以下屏幕截图:

Cloud Trace 仅显示一条跟踪记录。

如需解决此问题,请确保您的服务帐号已被授予 Cloud Trace Agent (roles/cloudtrace.agent) 角色。编辑者 (roles/editor) 角色也足够了。

如需查看授予服务帐号的角色,请执行以下操作:

  1. 在 Google Cloud 控制台中,进入 IAM 页面:

    前往 IAM

    如果您使用搜索栏查找此页面,请选择子标题为 IAM 和管理的结果。

  2. 选择包括 Google 提供的角色授权
  3. 如果合成监控工具使用的服务帐号未列出,或者尚未被授予包含 Cloud Trace Agent (roles/cloudtrace.agent) 角色权限的角色,则请将此角色授予您的服务帐号。

    如果您不知道服务帐号的名称,请在导航菜单中选择服务帐号

“进行中”状态

合成监控工具页面列出了一个状态为 In progress 的合成监控工具。状态 In progress 表示合成监控工具是最近创建的,没有可显示的数据,或函数未能部署。

如需确定函数是否部署失败,请尝试以下操作:

  • 确保您的 Cloud Function 的名称不包含下划线。如果存在下划线,请移除下划线并重新部署 Cloud Functions 函数。

  • 打开合成监控工具的合成监控工具详细信息页面。

    如果您看到以下消息,请删除合成监控工具。

    Cloud Function not found for this Synthetic monitor. Please confirm it exists or delete this monitor.
    

    错误消息表明该函数已被删除,因此合成监控工具无法执行该函数。

  • 打开函数的 Cloud Functions 页面。如需从合成监控工具详细信息页面打开此页面,请点击 Code,然后点击函数名称。

    如果您看到类似于以下内容的消息,则表示函数未能部署。

    This function has failed to deploy and will not work correctly. Please edit and redeploy
    

    如需解决此故障,请查看函数代码并更正阻止函数构建或部署的错误。

创建合成监控工具时,函数可能需要几分钟才能部署和执行。

警告状态

合成监控工具会列出状态为 Warning 的合成监控工具。状态 Warning 表示执行结果不一致。这可能表示您的测试存在设计问题,也可能表示被测试对象的行为不一致。

失败状态

合成监控工具列出了状态为 Failing 的合成监控工具。如需详细了解失败原因,请查看最近的执行历史记录。

  • 如果显示错误消息 Request failed with status code 429,则表示 HTTP 请求的目标拒绝了该命令。如需解决此失败问题,您必须更改合成监控工具的目标。

    端点 http://www.go888ogle.com.fqhub.com 拒绝合成监控工具发出的请求。

  • 如果失败情况返回 0ms 的执行时间,则表示 Cloud Function 可能内存不足。如需解决此故障,请修改 Cloud Function,然后将内存增加到至少 2 GiB 并将 CPU 字段设置为 1

合成监控工具删除失败

您可以使用 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."
      }
    ]
  }
}

如需解决故障,请删除用于监控合成监控工具结果的提醒政策,然后删除该合成监控工具。

后续步骤