创建合成监控器

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

合成监控工具简介

合成监控工具会定期执行部署在 Cloud Run 上的单用途 第 2 代 Cloud Run 函数。创建合成监视器时,您需要定义 Cloud Run 函数(必须使用 Node.js 编写)和执行频率。例如,您可以使用 Puppeteer 配置 Cloud Run 函数以与网页互动。您还可以 使用 Axios 模块。您可能还需要测试 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 函数的频率越高 您的服务负载越大 拨测的默认执行间隔是一分钟,供您参考。

执行频率还决定了在测试失败时您能多快收到通知。在测试连续失败两次后,Monitoring 会创建一个突发事件并发送通知。例如: 那么您可能需要等待 10 分钟 有两项测试失败在第二次测试失败后,您会收到通知。

Cloud Run 函数示例代码

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

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

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

Cloud Run 函数配置

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

  • 分配的内存的默认值可能不够用。周三 建议您将此字段至少设为 2 GiB。

  • Cloud Run 函数的入站数据传输设置的默认值为“允许所有流量”。您可以使用此设置,也可以使用限制性更高的设置。

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

Cloud Run 函数限制

  • 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 函数所收集的 包括每秒执行次数、执行时间和内存利用率, 函数。

请求延迟时间

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

收集由以下服务发出的出站 HTTP 请求的跟踪、日志和延迟数据: 合成监控工具,则必须使用 通用模板。 如需了解详情,请参阅合成监视器的示例

准备工作

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

    如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

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

  2. 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.

    Enable the APIs

  3. 验证您的 Google Cloud 项目是否包含默认的 Compute Engine 服务账号。此服务账号会在您启用 Compute Engine API 时创建,并且名称类似于 12345-compute@developer.gserviceaccount.com

    在 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 Run 函数(第 2 代) 并为该 Cloud Run 函数创建监控工具。 您无法创建用于监控现有 Cloud Run 函数的合成监控工具。

  1. 确保您已启用 其中包含所需的 API 默认 Compute Engine 服务账号,并且此账号拥有 已被授予 Editor 角色 (roles/editor)。如需更多信息 请参阅准备工作
  2. 在 Google Cloud 控制台中,前往  Synthetic Monitoring 页面:

    转到合成监控

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

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

    • 自定义合成监视器:如果您想收集出站 HTTP 请求的日志数据或轨迹数据,请使用此模板。

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

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

  5. 为监视器输入名称。

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

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

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

    1. 输入显示名,然后选择一个区域。名称在 区域。

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

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

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

    3. 修改生成的代码,或为 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 文件了。

    4. 点击应用函数

  9. 配置提醒政策

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

    2. 添加通知渠道。

  10. 点击创建

    您定义的 Cloud Run 函数被构建和部署为 第 2 代,以及创建了合成监控工具。

gcloud

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

  1. 确保您已启用所需的 API,您的项目包含默认 Compute Engine 服务账号,并且此账号已被授予“Editor”(roles/editor)角色。如需了解详情,请参阅开始前须知
  2. 编写和部署第 2 代 Cloud Run 函数。

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

    1. 克隆代码库并前往源代码所在的位置:

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

      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 字段设置如下:

        • 摩卡咖啡:SyntheticMochaSuite
        • 非摩卡:SyntheticFunction
      • --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 命令。

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

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

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

    • DISPLAY_NAME 替换为您的合成监控工具的名称。
    • TARGET 替换为您的 Cloud Run 函数的完全限定名称。
  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 Run 函数的工具。

  1. 确保您已启用所需的 API,您的项目包含默认 Compute Engine 服务账号,并且此账号已被授予“Editor”(roles/editor)角色。如需了解详情,请参阅开始前须知
  2. 编写和部署第 2 代 Cloud Run 函数。

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

    1. 克隆代码库并前往源代码所在的位置:

      git clone https://github.com/GoogleCloudPlatform/synthetics-sdk-nodejs.git
      cd synthetics-sdk-nodejs/samples/generic-synthetic-nodejs
      
    2. 使用 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 字段设置如下:

        • 摩卡咖啡:SyntheticMochaSuite
        • 非摩卡:SyntheticFunction
      • --runtime 字段设置为 nodejs18

      • 添加 --trigger-http 标志。

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

      Cloud Run 函数会构建并部署您的 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 命令。

  3. 如需创建合成监视器,请执行以下操作:

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

      • 父级字段: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"
          }
          }
       }
      }
      }
      
  4. 创建提醒政策

    由于提醒政策的复杂性 建议您前往合成监控工具 页面,然后使用相应选项创建 提醒政策。通过这种方法,大多数提醒政策字段都是 。要使用 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 控制台中,前往  Synthetic Monitoring 页面:

        转到合成监控

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

      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) 角色。Editor (roles/editor) 角色也足以解决此问题。

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

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

    前往 IAM

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

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

    如果您不知道服务账号的名称,则可以在导航栏 菜单中选择服务账号

“处理中”状态

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

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

  • 确保 Cloud Run 函数的名称不是 包含下划线。如果存在下划线,请移除下划线 然后重新部署 Cloud Run 函数。

  • 打开合成监控工具的合成监控工具详情页面。

    如果您看到以下消息,请删除合成监视器。

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

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

  • 打开相应函数的 Cloud Run 函数页面。如需从合成监控器详情页面打开此页面,请点击代码,然后点击函数名称。

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

    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 请求的目标拒绝了该命令。解决方法: 则您必须更改合成监控工具的目标。

    端点 https://www.google.com 会拒绝合成监控器发出的请求。

  • 如果失败返回的执行时间为 0ms,则 Cloud Run 函数可能即将耗尽内存。解决方法: 请修改 Cloud Run 函数 设置为至少 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."
      }
    ]
  }
}

如需解决失败问题,请删除 监控合成监控工具的结果,然后删除该合成监控工具。

后续步骤