使用 Prometheus 边车写入 Prometheus 指标

Google 推荐使用适用于 Cloud Run 的 Managed Service for Prometheus 边车来为 Cloud Run 服务获取 Prometheus 样式的监控。如果您的 Cloud Run 服务写入 OTLP 指标,您可以使用 OpenTelemetry 边车。但对于写入 Prometheus 指标的服务,请使用本文档中介绍的 Managed Service for Prometheus 边车。

本文档介绍了如何执行以下操作:

边车在服务器端使用 Google Cloud Managed Service for Prometheus,在客户端使用为无服务器工作负载定制的 OpenTelemetry 收集器发行版。此定制发行版包含一些更改以支持 Cloud Run。无论实例的生命周期有多短,收集器都会在 10 秒后执行启动抓取并执行关停抓取。为了最大限度地提高可靠性,我们建议运行边车的 Cloud Run 服务还使用始终分配的 CPU;如需了解详情,请参阅 CPU 分配(服务)。如果 CPU 分配由于每秒查询次数 (QPS) 较低而受到限制,则部分抓取尝试可能会失败。始终分配的 CPU 仍然可用。

边车依赖于 Cloud Run 多容器(边车)功能将收集器作为工作负载容器的边车容器运行。如需详细了解 Cloud Run 中的边车,请参阅将多个容器部署到服务(边车)

适用于 Cloud Run 的 Managed Service for Prometheus 边车引入了新配置 RunMonitoring,它是 Kubernetes PodMonitoring 自定义资源的子集。大多数用户可以使用默认的 RunMonitoring 配置,但您也可以创建自定义配置。如需详细了解默认和自定义 RunMonitoring 配置,请参阅将边车添加到 Cloud Run 服务

准备工作

本部分介绍使用本文档所需的设置。

安装并配置 gcloud CLI

本文档中的许多步骤都使用 Google Cloud CLI。如需了解如何安装 gcloud CLI,请参阅管理 Google Cloud CLI 组件

调用 gcloud 命令时,您必须指定您的 Google Cloud 项目的标识符。您可以为 Google Cloud CLI 设置默认项目,这样就无需在每个命令中输入该项目。如需将您的项目设置为默认项目,请输入以下命令:

gcloud config set project PROJECT_ID

您还可以为 Cloud Run 服务设置默认区域。如需设置默认区域,请输入以下命令:

gcloud config set run/region REGION

启用 API

您必须在 Google Cloud 项目中启用以下 API:

  • Cloud Run Admin API:run.googleapis.com
  • Artifact Registry API:artifactregistry.googleapis.com
  • Cloud Monitoring API:monitoring.googleapis.com
  • Cloud Logging API:logging.googleapis.com
  • (可选)如果您创建自定义 RunMonitoring 配置,则必须启用 Secret Manager API:secretmanager.googleapis.com
  • (可选)如果您选择使用 Cloud Build 运行示例应用,则还必须启用以下 API:
    • Cloud Build API:cloudbuild.googleapis.com
    • Identity and Access Management API:iam.googleapis.com。如需了解详情,请参阅构建和运行示例应用

如需查看项目中启用的 API,请运行以下命令:

gcloud services list

如需启用未启用的 API,请运行以下命令之一:

gcloud services enable run.googleapis.com
gcloud services enable artifactregistry.googleapis.com
gcloud services enable secretmanager.googleapis.com
gcloud services enable monitoring.googleapis.com
gcloud services enable logging.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable iam.googleapis.com

Cloud Run 的服务账号

默认情况下,Cloud Run 作业和服务使用 Compute Engine 默认服务账号 PROJECT_NUMBER-compute@developer.gserviceaccount.com。此服务账号通常具有写入本文档中所述的指标和日志所需的 Identity and Access Management (IAM) 角色:

  • roles/monitoring.metricWriter
  • roles/logging.logWriter

如果您创建自定义 RunMonitoring 配置,您的服务账号还必须具有以下角色:

  • roles/secretmanager.admin
  • roles/secretmanager.secretAccessor

您还可以为 Cloud Run 配置用户管理的服务账号。用户管理的服务账号也必须具有这些角色。如需详细了解 Cloud Run 的服务账号,请参阅配置服务身份

配置边车并将其添加到 Cloud Run 服务

适用于 Cloud Run 的 Managed Service for Prometheus 边车引入了新配置 RunMonitoring,它是 Kubernetes PodMonitoring 自定义资源的子集。RunMonitoring 配置使用现有的 PodMonitoring 选项来支持 Cloud Run,同时去除了一些 Kubernetes 特有的选项。

您可以使用默认的 RunMonitoring 配置,也可以创建自定义配置。以下部分介绍了这两种方法,但您不需要同时使用它们。如需详细了解如何使用默认配置或自定义配置,请选择相应的标签页。

默认配置

使用默认 RunMonitoring 配置

如果您未创建自定义 RunMonitoring 配置,则边车收集器会合成以下默认配置,以每 30 秒在指标路径 /metrics 上从端口 8080 爬取指标:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: run-gmp-sidecar
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 30s

使用默认配置不需要进行将边车添加到 Cloud Run 服务之外的其他设置。

将边车添加到 Cloud Run 服务

如需将边车与默认 RunMonitoring 配置搭配使用,您需要修改现有 Cloud Run 配置以添加边车。如需添加边车,请执行以下操作:

  • 添加容器依赖项注解,用于指定容器的启动和关停顺序。在下面的示例中,名为“collector”的边车容器在名为“app”的应用容器之后启动,并在该应用容器之前关停。
  • 在以下示例中,为收集器创建一个名为“collector”的容器。

例如,将前面带有 +(加号)字符的行添加到 Cloud Run 配置,然后重新部署服务:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
+       run.googleapis.com/container-dependencies: '{"collector":["app"]}'
    spec:
      containers:
      - image: "REGION-docker.pkg.dev/PROJECT_ID/run-gmp/sample-app"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
+     - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.2.0"
+       name: collector

如需使用配置文件 run-service.yaml 重新部署 Cloud Run 服务,请运行以下命令:

gcloud run services replace run-service.yaml --region=REGION

自定义配置

创建自定义 RunMonitoring 配置

如果默认配置无法满足您的需求,您可以为 Cloud Run 服务创建 RunMonitoring 配置。例如,您可以创建如下所示的配置:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: my-custom-cloud-run-job
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 10s
    metricRelabeling:
    - action: replace
      sourceLabels:
      - __address__
      targetLabel: label_key
      replacement: label_value
  targetLabels:
    metadata:
    - service
    - revision

此配置会执行以下操作:

  • 从端口 8080 抓取指标,并使用默认指标路径 /metrics
  • 使用 10 秒的抓取间隔。
  • 使用重新添加标签向抓取的每个指标添加值为 label_value 的标签 label_key
  • servicerevision 元数据标签添加到抓取的每个指标。

如需了解可用的配置选项,请参阅 RunMonitoring 规范:配置选项

使用自定义 RunMonitoring 配置时,您必须执行以下额外的配置:

使用 Secret Manager 存储配置

如需提供自定义 RunMonitoring 配置,请执行以下操作:

  • 创建一个包含自定义配置的文件。
  • 创建包含自定义配置的 Secret Manager Secret。

以下命令会根据 custom-config.yaml 文件创建一个名为 mysecret 的 Secret:

gcloud secrets create mysecret --data-file=custom-config.yaml

如需在修改 custom-config.yaml 文件后获取配置更改,您必须删除并重新创建 Secret,然后重新部署 Cloud Run 服务。

在 Secret Manager 中更新配置

如果您想随时更新自定义 RunMonitoring 配置,可以将现有 Secret 的新版本添加到 Secret Manager。

例如,如需使用存储在 custom-config-updated.yaml 文件中的新配置更新 mysecret,您可以运行以下命令:

gcloud secrets versions add mysecret --data-file=custom-config-updated.yaml

边车会自动重新加载并将更改应用于其配置。

将边车添加到 Cloud Run 服务

RunMonitoring 配置创建 Secret Manager Secret 后,您必须修改 Cloud Run 配置以执行以下操作:

  • 添加 Managed Service for Prometheus 边车
    • 添加容器依赖项注解,用于指定容器的启动和关停顺序。在下面的示例中,名为“collector”的边车容器在名为“app”的应用容器之后启动,并在该应用容器之前关停。
    • 在以下示例中,为收集器创建一个名为“collector”的容器。
  • 通过将 Secret 装载到 /etc/rungmp/config.yaml 位置来添加 Secret:
    • 添加指向包含自定义 RunMonitoring 配置的 Secret 的 Secret 注解。
    • 在以下示例中,为指向文件 config.yaml 的 Secret 创建一个名为“config”的卷。
    • 将该卷作为收集器映像的一部分装载到装载路径 /etc/rungmp 中。

例如,将前面带有 +(加号)字符的行添加到 Cloud Run 配置,然后重新部署服务:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
+       run.googleapis.com/container-dependencies: '{"collector":["app"]}'
+       run.googleapis.com/secrets: 'mysecret:projects/PROJECT_ID/secrets/mysecret'
    spec:
      containers:
      - image: "REGION-docker.pkg.dev/PROJECT_ID/run-gmp/sample-app"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
+     - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.2.0"
+       name: collector
+       volumeMounts:
+       - mountPath: /etc/rungmp/
+         name: config
+     volumes:
+     - name: config
+       secret:
+         items:
+         - key: latest
+           path: config.yaml
+         secretName: 'mysecret'

如需使用配置文件 run-service.yaml 重新部署 Cloud Run 服务,请运行以下命令:

gcloud run services replace run-service.yaml --region=REGION

RunMonitoring 规范:配置选项

本部分介绍 Managed Service for Prometheus 边车的 RunMonitoring 配置规范。下面展示了一个自定义配置示例:

apiVersion: monitoring.googleapis.com/v1beta
kind: RunMonitoring
metadata:
  name: my-custom-cloud-run-job
spec:
  endpoints:
  - port: 8080
    path: /metrics
    interval: 10s
    metricRelabeling:
    - action: replace
      sourceLabels:
      - __address__
      targetLabel: label_key
      replacement: label_value
  targetLabels:
    metadata:
    - service
    - revision

RunMonitoring

RunMonitoring 配置监控 Cloud Run 服务。

字段 说明 架构 必需
metadata 所有持久资源都必须具有的元数据。 metav1.ObjectMeta false
spec 所选的供 Prometheus 进行目标发现的 Cloud Run 部署的规范。 RunMonitoringSpec true
RunMonitoringSpec

此规范描述 RunMonitoring 配置如何监控 Cloud Run 服务。

字段 说明 架构 必需
endpoints 选定 Pod 上要抓取的端点。 []ScrapeEndpoint true
targetLabels 要添加到已发现端点的 Prometheus 目标的标签。instance 标签始终设置为 Cloud Run 实例 ID。 RunTargetLabels false
limits 抓取时应用的限制。 *ScrapeLimits false
RunTargetLabels

RunTargetLabels 配置可让您添加来自发现的 Prometheus 目标的 Cloud Run 标签。

字段 说明 架构 必需
metadata 在所有抓取目标上设置的 Cloud Run 元数据标签。

允许的键包括 instancerevisionserviceconfiguration

如果设置了允许的键,则边车会将 Cloud Run 实例中的相应值作为指标标签添加到每个指标:instanceIDrevision_nameservice_nameconfiguration_name

默认为设置的所有允许的键。
*[]string false

构建并运行示例应用

本部分介绍如何使用示例应用运行 Managed Service for Prometheus 边车。本部分是可选的。如果您已有 Cloud Run 服务并且想要向它部署边车,请参阅将 Managed Service for Prometheus 边车添加到 Cloud Run 服务

克隆 run-gmp-sidecar 仓库

如需获取示例应用及其配置文件,请运行以下命令,以克隆 run-gmp-sidecar 仓库:

git clone https://github.com/GoogleCloudPlatform/run-gmp-sidecar/

克隆仓库后,切换到 run-gmp-sidecar 目录:

cd run-gmp-sidecar

构建并运行示例应用

示例应用需要使用 Docker 或适用于 Linux 的类似容器构建系统。您可以通过以下任一方式构建并运行示例应用:

  • 使用 Cloud Build 在没有本地 Docker 支持的情况下运行。如果您使用 Cloud Build,则还必须启用 Cloud Build API。
  • 手动构建并运行示例应用。

以下部分介绍了这两种方法,但您不需要同时使用它们。如需了解详情,请选择其中一种方法对应的标签页。

使用 Cloud Build

使用 Cloud Build

run-gmp-sidecar 仓库包含 Cloud Build 的配置文件。这些文件打包了构建和部署示例应用所需的步骤。

您也可以手动执行由 Cloud Build 处理的步骤。如需了解详情,请参阅手动构建和运行

为 Cloud Build 进行设置

这些配置文件需要 Cloud Build 服务账号和 Artifact Registry 仓库。run-gmp-sidecar 仓库还包含一个执行以下操作的脚本 create-sa-and-ar.sh

  • 创建服务账号 run-gmp-sa@PROJECT_ID.iam.gserviceaccount.com
  • 向服务账号授予以下角色:
    • roles/iam.serviceAccountUser
    • roles/storage.objectViewer
    • roles/logging.logWriter
    • roles/artifactregistry.createOnPushWriter
    • roles/secretmanager.admin
    • roles/secretmanager.secretAccessor
    • roles/run.admin
  • 为您的容器映像创建 Artifact Registry 仓库 run-gmp

如需创建 run-gmp-sa 服务账号和 run-gmp 仓库,请运行以下命令:

./create-sa-and-ar.sh

权限传播需要一些时间,因此我们建议您等待大约 30 秒,然后再继续下一步。否则,您可能会看到授权错误。

提交 Cloud Build 请求

设置 run-gmp-sa 服务账号和 run-gmp 仓库后,您可以通过提交 Cloud Build 配置文件来启动 Cloud Build 作业。您可以使用以下 gcloud builds submit 命令:

gcloud builds submit . --config=cloudbuild-simple.yaml --region=REGION

此命令需要几分钟时间来运行,但它几乎会立即告诉您在哪里可以找到 Cloud Build 构建详情。该消息如下所示:

Logs are available at [
https://console.cloud.google.com/cloud-build/builds/637860fb-7a14-46f2-861e-09c1dc4cea6b?project=PROJECT_NUMBER].

如需查看构建进度,请在浏览器中前往返回的网址。您还可以在 Cloud Logging 中查看边车日志

查看服务网址

Cloud Build 作业结束后,请运行以下命令来查看 Cloud Run 服务的端点网址:

gcloud run services describe my-cloud-run-service --region=REGION --format="value(status.url)"

此命令会返回如下所示的服务网址:

https://my-cloud-run-service-abcdefghij-ue.a.run.app

使用返回的网址作为验证您的应用正在运行部分中的 SERVICE_URL 值。

手动构建和运行

手动构建和运行

您可以手动执行使用 Cloud Build 中所述由 Cloud Build 处理的步骤。以下部分介绍了如何手动执行相同的任务。

设置在后续步骤中使用的变量

后面的几个步骤使用环境变量来保存常用值。使用以下命令设置这些变量:

export GCP_PROJECT=PROJECT_ID
export REGION=REGION

创建容器映像仓库

通过运行以下命令为容器映像创建 Artifact Registry 仓库:

gcloud artifacts repositories create run-gmp \
    --repository-format=docker \
    --location=${REGION}

构建并推送示例应用

此示例使用 Linux 上的 Docker 构建示例应用并将其推送到 Artifact Registry 仓库。如果您使用的是 Windows 或 macOS 环境,则可能需要调整这些命令。

如需构建示例应用并将其推送到 Artifact Registry,请执行以下操作:

  1. 使用 Google Cloud CLI 对 Docker 客户端进行身份验证:

    gcloud auth configure-docker ${REGION}-docker.pkg.dev
    
  2. 进入 run-gmp-sidecar 仓库中的 simple-app 目录:

    pushd sample-apps/simple-app
    

  3. 通过运行以下命令构建 simple-app 应用:

    docker build -t ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app .
    
  4. 通过运行以下命令推送构建的应用的映像:

    docker push ${REGION}-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app
    

  5. 返回到 run-gmp-sidecar 目录:

    popd
    

配置 Cloud Run 服务

run-gmp-sidecar 仓库中的 run-service-simple.yaml 文件定义了一个多容器 Cloud Run 服务,该服务使用您在先前步骤中构建的示例应用和收集器映像。run-service-simple.yaml 文件包含以下 Service 规范:

apiVersion: serving.knative.dev/v1
kind: Service
metadata:
  annotations:
    run.googleapis.com/launch-stage: ALPHA
    run.googleapis.com/cpu-throttling: 'false'
  name: my-cloud-run-service
spec:
  template:
    metadata:
      annotations:
        run.googleapis.com/execution-environment: gen2
        run.googleapis.com/container-dependencies: '{"collector":["app"]}'
    spec:
      containers:
      - image: "%SAMPLE_APP_IMAGE%"
        name: app
        startupProbe:
          httpGet:
            path: /startup
            port: 8000
        livenessProbe:
          httpGet:
            path: /liveness
            port: 8000
        ports:
        - containerPort: 8000
      - image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/cloud-run-gmp-sidecar/cloud-run-gmp-sidecar:1.2.0"
        name: collector

此文件包含您在先前步骤中构建的映像的占位值,因此您必须使用 Google Cloud 项目的实际值更新占位符。

通过运行以下命令替换 %SAMPLE_APP_IMAGE% 占位符:

sed -i s@%SAMPLE_APP_IMAGE%@REGION-docker.pkg.dev/${GCP_PROJECT}/run-gmp/sample-app@g run-service-simple.yaml

部署 Cloud Run 服务

使用您的值更新 run-service-simple.yaml 文件后,您可以通过运行以下命令来创建并部署 Cloud Run 服务:

gcloud run services replace run-service-simple.yaml --region=REGION
   

此命令会返回如下所示的服务网址:

https://my-cloud-run-service-abcdefghij-ue.a.run.app

使用返回的网址作为验证您的应用正在运行部分中的 SERVICE_URL 值。

允许未经身份验证的 HTTP 访问

在向服务网址发出请求之前,您需要更改 Cloud Run 服务政策以接受未经身份验证的 HTTP 访问。run-gmp-sidecar 仓库中的 policy.yaml 文件包含必要的更改。

如需更改服务政策,请运行以下命令:

gcloud run services set-iam-policy my-cloud-run-service policy.yaml --region=REGION

验证您的应用正在运行

如需验证 Cloud Run 服务已正确运行示例应用,请使用 curl 实用程序访问服务的 metrics 端点。

  1. SERVICE_URL 环境变量设置为前面步骤中的 Cloud Run 服务网址:

    export SERVICE_URL=SERVICE_URL
    
  2. 通过运行以下命令向服务网址发送请求:

    curl $SERVICE_URL
    

如果您的应用已成功启动,您会看到以下响应:

User request received!

在 Metrics Explorer 中查看应用指标

示例 app 容器会写入以下指标:

  • foo_metric:当前时间,以浮点值表示(读数)。
  • bar_metric:当前时间,以浮点值表示(计数器)。

如需在 Metrics Explorer 中查看这些指标,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Metrics Explorer 页面:

    进入 Metrics Explorer

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

  2. 在查询构建器窗格的工具栏中,选择名为  MQL PromQL 的按钮。

  3. 验证已在语言 (Language) 切换开关中选择 PromQL。语言切换开关位于同一工具栏中,用于设置查询的格式。

  4. 在编辑器窗格中输入以下查询:

    foo_metric
    
  5. 点击添加查询

  6. 在查询构建器窗格的工具栏中,选择名为  MQL PromQL 的按钮。

  7. 验证已在语言 (Language) 切换开关中选择 PromQL。语言切换开关位于同一工具栏中,用于设置查询的格式。

  8. 在第二个编辑器窗格中输入以下查询:

    bar_metric
    
  9. 点击运行查询

  10. 如需查看指标的详细信息,请在标有图表/表/两者的切换开关中选择两者

清理

完成示例应用的实验后,您可以使用 run-gmp-sidecar 仓库中的 clean-up-cloud-run.sh 脚本删除您为示例创建的以下资源:

  • Cloud Run 服务。
  • Artifact Registry 仓库。
  • 为 Cloud Build 创建的服务账号。

删除这些资源可确保您在运行示例后不会产生费用。

如需清理示例应用,请运行 clean-up-cloud-run.sh 脚本:

./clean-up-cloud-run.sh

在 Metrics Explorer 中查看自身指标

Managed Service for Prometheus 边车会向 Cloud Monitoring 报告以下关于其自身的指标:

  • agent_uptime:边车收集器的正常运行时间(计数器)。
  • agent_memory_usage:边车收集器使用的内存(读数)。
  • agent_api_request_count:边车收集器发出的 API 请求数(计数器)。
  • agent_monitoring_point_count:边车收集器写入 Cloud Monitoring 的指标点数量(计数器)。

如需在 Metrics Explorer 中查看边车的自身指标,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Metrics Explorer 页面:

    进入 Metrics Explorer

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

  2. 在查询构建器窗格的工具栏中,选择名为  MQL PromQL 的按钮。

  3. 验证已在语言 (Language) 切换开关中选择 PromQL。语言切换开关位于同一工具栏中,用于设置查询的格式。

  4. 在编辑器窗格中输入您要查询的指标的名称,例如:

    agent_api_request_count
    
  5. 点击运行查询

  6. 如需查看指标的详细信息,请在标有图表/表/两者的切换开关中选择两者

在 Logs Explorer 中查看自身日志

Managed Service for Prometheus 边车将日志写入 Cloud Logging。边车会根据 Logging 受监控的资源类型 cloud_run_revision 写入日志。

如需在 Logs Explorer 中查看边车的日志,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 Logs Explorer 页面。

    前往 Logs Explorer

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

  2. 选择 Cloud Run 修订版本资源类型,或输入以下查询并点击运行查询

    resource.type="cloud_run_revision"
    

收集的指标简介

当边车发出的指标注入到 Cloud Monitoring 时,这些指标会针对 Cloud Monitoring prometheus_target 受监控的资源类型写入。此资源类型既用于应用指标,又用于边车的自身指标。

写入指标时,边车会按如下所示设置资源标签:

  • project_id:运行容器的 Google Cloud 项目的 ID。
  • location:运行容器的 Google Cloud 区域。
  • cluster:值 __run__
  • namespace:正在运行的 Cloud Run 服务的名称;来自 K_SERVICE 环境变量。
  • jobRunMonitoring 配置中的名称;默认为 run-gmp-sidecar
  • instance:本地工作负载的值 faas.ID:PORT,容器配置为从其中拉取指标。faas.ID 值是 Cloud Run 实例的实例 ID。

边车还会添加以下指标标签:

  • instanceId:Cloud Run 实例的 ID。
  • service_name:正在运行的 Cloud Run 服务的名称。
  • revision_name:正在运行的 Cloud Run 修订版本的名称。
  • configuration_name:正在运行的 Cloud Run 配置的名称。

这些指标标签均默认添加。如果您使用自定义 RunMonitoring 配置,则可以通过使用 RunMonitoring 规范中的 targetLabels 选项来省略 service_namerevision_nameconfiguration_name 标签。您还可以使用自定义配置为 service_namerevision_nameconfiguration_name 标签的值重新添加标签。

与注入的指标一起显示的所有其他标签都来自您的指标。如果用户定义的标签与系统提供的某个标签冲突,则用户定义的标签会添加字符串 exported_ 作为前缀。例如,用户指定的标签 namespace="playground" 与系统定义的 namespace 标签冲突,因此用户标签显示为 exported_namespace="playground"

指标类型

当边车发出的指标注入到 Cloud Monitoring 时,这些指标会写入为 prometheus.googleapis.com 指标,并在名称末尾附加 Prometheus 指标的类型。例如,示例应用发出一个名为 foo_metric 的 Prometheus 读数指标。在 Cloud Monitoring 中,该指标存储为指标类型 prometheus.googleapis.com/foo_metric/gauge

使用 PromQL 查询指标时,您可以使用在 Metrics Explorer 中查看应用指标在 Metrics Explorer 中查看自身指标所述的 Prometheus 名称。在 Metrics Explorer 中使用查询构建器或 Monitoring 查询语言 (MQL) 等工具时,Cloud Monitoring 指标类型是相关的。

结算

边车发出的指标会注入到 Cloud Monitoring 并添加前缀 prometheus.googleapis.com。具有此前缀的指标按注入的样本数计费。如需详细了解结算和 Managed Service for Prometheus,请参阅结算