查询和查看指标

从 Google Distributed Cloud (GDC) 网闸隔离配置中部署的工作负载收集指标后,您就可以开始分析这些指标。如需分析指标,您可以在信息丰富的 Grafana 信息中心内直观呈现和过滤指标,也可以使用 curl 工具直接从 Cortex 访问指标,以实现灵活的脚本编写和自动化。

本页面详细介绍了如何使用 Grafana 界面和 curl 工具查询和直观呈现 Cortex 端点的指标,以深入了解工作负载性能。

您可以通过以下两种方法之一访问指标:

  • Grafana 信息中心:通过直观呈现 CPU 利用率、存储空间消耗和网络活动等关键指标,探索趋势并识别异常情况。Grafana 提供了一个人性化的界面,用于在信息中心内过滤和分析工作负载数据。
  • Cortex 端点:对于更高级的用例,请在命令行中使用 curl 工具直接查询项目的 Cortex 实例。Cortex 会存储项目的 Prometheus 指标,并提供一个 HTTP 端点以供程序化访问。通过此访问权限,您可以导出数据、自动执行任务和构建自定义集成。

准备工作

如需获得在 Grafana 信息中心内查询和直观呈现指标所需的权限,请让您的 IAM 组织管理员或 IAM 项目管理员为您授予预定义的 Organization Grafana Viewer 或 Project Grafana Viewer 角色之一。根据您需要的访问权限和权限级别,您可能会在组织或项目中获得 Grafana 角色。

或者,如需获得从 Cortex 端点查询指标所需的权限,请让您的 IAM 项目管理员在您的项目命名空间中为您授予 Project Cortex Prometheus Viewer 角色。

下表总结了 PA 和 AO 角色对 Role 的要求。

角色 对象 集群 角色 命名空间 群组/用户 配置
PA grafana org-admin project-grafana-viewer platform-obs 群组 1
PA cortex org-admin project-cortex-prometheus-viewer platform-obs 群组 2
PA grafana org-admin project-grafana-viewer platform-obs 用户 3
PA cortex org-admin project-cortex-prometheus-viewer platform-obs 用户 4
AO grafana org-admin project-grafana-viewer PROJECT_NAMESPACE 群组 1
AO cortex org-admin project-cortex-prometheus-viewer PROJECT_NAMESPACE 群组 2
AO grafana org-admin project-grafana-viewer PROJECT_NAMESPACE 用户 3
AO cortex org-admin project-cortex-prometheus-viewer PROJECT_NAMESPACE 用户 4

请酌情替换以下变量:

变量 说明
KUBECONFIG 您需要特定集群的 kubeconfig,该集群包含将应用此 RoleBinding 的 NAMESPACE。
RULE_NAME 此 RoleBinding 资源在命名空间中的唯一名称。例如 io-root-cortex-prometheus-viewer。
NAMESPACE 将在其中创建并应用此 RoleBinding 的 Kubernetes 命名空间。请查看上表中的 Namespace 列。
EMAIL_ADDRESS 被授予角色的用户的标识符。这通常是邮箱。例如 infrastructure-operator@example.com。
ROLE Role 的名称,其中包含您要授予用户的权限。在上表中查找可用角色
GROUP_NAME PA/AO 用户所属的 Group 的名称。例如 pa-group。
ZONE 区域名称

配置 1

此配置会向用户群组授予访问 org 集群中的 PA/AO Grafana 的权限。完成此配置后,请参阅本文档的 Grafana 信息中心部分,在 Grafana 上查看指标。

  • Kubectl 命令

    以下是通用命令格式:

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --group=`GROUP_NAME` --role=project-grafana-viewer
    

    示例:

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-grafana-viewers-binding --role=project-grafana-viewer --group=my-team --namespace=platform-obs
    
  • IAC 文件路径

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`GROUP_NAME`/<YAML_FILE>
    
  • Yaml 文件

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: RULE_NAME
      namespace: platform-obs
    subjects:
    - kind: Group
      name: GROUP_NAME
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: project-grafana-viewer
      apiGroup: rbac.authorization.k8s.io
    

配置 2

此配置会向用户群组授予权限,使其能够以编程方式访问 org 集群中的 PA/AO 指标。完成此配置后,请参阅本文档的 cortex 端点部分,以编程方式查询指标。

  • Kubectl 命令

    以下是通用命令格式:

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --group=`GROUP_NAME` --role=project-cortex-prometheus-viewer
    

    示例:

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-prometheus-viewer-binding --role=project-cortex-prometheus-viewer --group=my-team --namespace=platform-obs
    
  • IAC 文件路径

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`GROUP_NAME`/<YAML_FILE>
    
  • Yaml 文件

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: RULE_NAME
      namespace: platform-obs
    subjects:
    - kind: Group
      name: GROUP_NAME
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: project-cortex-prometheus-viewer
      apiGroup: rbac.authorization.k8s.io
    

配置 3

此配置会向用户授予访问 org 集群中的 PA/AO Grafana 的权限。完成此配置后,请参阅本文档的 Grafana 信息中心部分,在 Grafana 上查看指标。

  • Kubectl 命令

    以下是通用命令格式:

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --user=`EMAIL_ADDRESS` --role=project-grafana-viewer
    

    示例:

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-grafana-viewers-binding --role=project-grafana-viewer --user=my-email@example.com --namespace=platform-obs
    
  • IAC 文件路径

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`EMAIL_ADDRESS`/<YAML_FILE>
    
  • Yaml 文件

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: RULE_NAME
      namespace: platform-obs
    subjects:
    - kind: User
      name: EMAIL_ADDRESS
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: project-grafana-viewer
      apiGroup: rbac.authorization.k8s.io
    

配置 4

此配置会向用户授予权限,使其能够以编程方式访问 org 集群中的 PA/AO 指标。完成此配置后,请参阅本文档的 cortex 端点部分,以编程方式查询指标。

  • Kubectl 命令

    以下是通用命令格式:

    kubectl --kubeconfig `KUBECONFIG` create rolebinding `RULE_NAME` -n platform-obs --user=`EMAIL_ADDRESS` --role=project-cortex-prometheus-viewer
    

    示例:

    kubectl --kubeconfig <path-to-kubeconfig> create rolebinding project-cortex-prometheus-viewer-binding --role=project-cortex-prometheus-viewer --user=my-email@example.com --namespace=platform-obs
    
  • IAC 文件路径

    /infrastructure/zonal/zones/`ZONE`/org-admin/rolebindings/`EMAIL_ADDRESS`/<YAML_FILE>
    
  • Yaml 文件

    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: RULE_NAME
      namespace: platform-obs
    subjects:
    - kind: User
      name: EMAIL_ADDRESS
      apiGroup: rbac.authorization.k8s.io
    roleRef:
      kind: Role
      name: project-cortex-prometheus-viewer
      apiGroup: rbac.authorization.k8s.io
    

如需详细了解这些角色,请参阅准备 IAM 权限。

获取和过滤指标

选择以下方法之一,以构建查询、直观呈现趋势并过滤项目工作负载中的指标:

Grafana 信息中心

本部分介绍如何使用 Grafana 信息中心访问指标。

确定 Grafana 端点

以下网址是项目的 Grafana 实例的端点:

  https://GDC_URL/PROJECT_NAMESPACE/grafana

替换以下内容:

  • GDC_URL:GDC 中组织的网址。
  • PROJECT_NAMESPACE:您的项目命名空间。

    例如,org-1 组织中 platform-obs 项目的 Grafana 端点为 https://org-1/platform-obs/grafana。

在 Grafana 界面中查看指标

在 Grafana 界面中检索指标:

  1. 在 GDC 控制台中,选择您的项目。
  2. 在导航菜单中,依次选择运维 > Monitoring。
  3. 点击在 Grafana 中查看全部。

    系统会打开一个新页面,其中显示您的 Grafana 端点和界面。

  4. 在界面上,点击导航菜单中的探索 探索,打开探索页面。

  5. 在探索栏的菜单中,根据您的 Universe 类型选择一个数据源来检索指标:

    • 单可用区 Universe:选择 prometheus 以显示 Universe 的单可用区中的指标。

    • 多可用区 Universe:Grafana 可以连接到不同的可用区并显示跨可用区数据。选择指标 ZONE_NAME,以显示 Universe 中任何可用区的指标,无论您登录的是哪个可用区。

      此外,如需在单个信息中心内实现跨可用区数据可视化,并向查询添加多个可用区,请选择混合作为数据源。

  6. 输入查询,以使用 PromQL(Prometheus 查询语言)表达式搜索指标。您可以通过以下任一方式执行此步骤:

    • 从指标和标签过滤条件菜单中为查询选择指标和标签。点击添加 添加,向查询添加更多标签。然后,点击运行查询。
    • 直接在指标文本字段中输入查询,然后按 Shift+Enter 运行查询。

    该页面会显示与您的查询匹配的指标。

    在“探索”页面上选择 prometheus 选项,以获取指标。

    图 1. 用于从 Grafana 界面查询指标的菜单选项。

    在图 1 中,prometheus 选项会显示一个界面,您可以通过该界面从 Grafana 构建查询来检索指标。

    如需查看可用于查询指标的标签值示例,请参阅示例查询和标签。

Cortex 端点 - 单可用区

本部分介绍如何使用 Cortex 访问指标。

确定 Cortex 端点

以下网址是项目的 Cortex 实例的端点:

  https://GDC_URL/PROJECT_NAMESPACE/cortex/prometheus/

替换以下内容:

  • GDC_URL:GDC 中组织的网址。
  • PROJECT_NAMESPACE:您的项目命名空间。

    例如,org-1 组织中 platform-obs 项目的 Cortex 端点为 https://org-1/platform-obs/cortex/prometheus/。

对 curl 请求进行身份验证

  1. 下载并安装 gdcloud CLI。
  2. 设置 gdcloud core/organization_console_url 属性:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. 使用配置的身份提供方登录:

    gdcloud auth login
    
  4. 使用您的用户名和密码进行身份验证并登录。

    登录成功后,您可以通过 gdcloud auth print-identity-token 命令在 curl 请求中使用授权标头。如需了解详情,请参阅 gdcloud auth。

调用 Cortex 端点

完成以下步骤,以使用 curl 工具访问 Cortex 端点:

  1. 对 curl 请求进行身份验证。
  2. 使用 curl 调用 Cortex 端点,并使用查询 HTTP API 格式扩展网址以查询指标。

    以下是 curl 请求的示例:

    curl https://GDC_URL/PROJECT_NAME/cortex/prometheus/api/v1/query?query=my_metric{cluster="my-cluster"}&time=2015-07-01T20:10:51.781Z \
    -H "Authorization: Bearer $(gdcloud auth print-identity-token \
    --audiences=https://GDC_URL)"
    

    您会获得命令后面的输出。API 响应采用 JSON 格式。

Cortex 端点 - 多可用区

本部分介绍如何使用 Cortex 访问指标。

确定 Cortex 端点

以下网址是项目的 Cortex 实例端点,用于多可用区查询:

  https://GDC_URL/PROJECT_NAMESPACE/cortex/metrics

替换以下内容:

  • GDC_URL:GDC 中组织的网址。

    • org-1、zone1 的示例:console.org-1.zone1.google.gdch.test
    • 替换应用的组织和可用区。
  • PROJECT_NAMESPACE:您的项目命名空间。

    例如,org-1 组织中 project-1 项目的 Cortex 端点为 https://console.org-1.zone1.google.gdch.test/project-1/cortex/metrics.。

对 curl 请求进行身份验证

  1. 下载并安装 gdcloud CLI。
  2. 设置 gdcloud core/organization_console_url 属性:

    gdcloud config set core/organization_console_url
    https://GDC_URL
    
  3. 使用配置的身份提供方登录:

    gdcloud auth login
    
  4. 使用您的用户名和密码进行身份验证并登录。

    登录成功后,您可以通过 gdcloud auth print-identity-token 命令在 curl 请求中使用授权标头。如需了解详情,请参阅 gdcloud auth。

调用 Cortex 端点

完成以下步骤,以使用 curl 工具访问 Cortex 端点:

  1. 对 curl 请求进行身份验证。
  2. 使用 curl 调用 Cortex 端点,并使用查询 HTTP API 格式扩展网址以查询指标。
  3. 除了 Prometheus 网址查询参数之外,还应添加位置参数,以提供要查询的可用区列表。 - location={string}:以 | 分隔的可用区列表 - 如果未提供,系统将在所有可用区中执行查询。

    以下是 curl POST 请求的示例:

     curl POST \
     https://GDC_URL/PROJECT_NAME/cortex/metrics/api/v1/query_range" \
    -H 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'query=pod_cpu_usage_total' \
    --data-urlencode 'start=2025-07-21T16:00:00Z' \
    --data-urlencode 'end=2025-07-21T16:15:00Z' \
    --data-urlencode 'step=60s' \
    --data-urlencode 'location=zone1|zone2' \
    -H "Authorization: Bearer $(gdcloud auth print-identity-token \
    --audiences=https://GDC_URL)"
    

    以下是 curl GET 请求的示例:

     curl -X GET \
     https://GDC_URL/PROJECT_NAME/cortex/metrics/api/v1/query_range?query=pod_cpu_usage_total&start=2025-07-21T16:00:00Z&end=2025-07-21T16:15:00Z&step=1s&location=zone1|zone2" \
    -H "Authorization: Bearer $(gdcloud auth print-identity-token \
    --audiences=https://GDC_URL)"
    

    您会看到命令后输出的结果。API 响应采用 JSON 格式。

示例查询和标签

您可以使用指标名称和标签的键值对来查询指标。PromQL 查询具有以下语法:

metric_name{label_one="value", label_two="value"}

通过标签,您可以区分指标的特征。这样,容器作者就可以让其工作负载生成指标并添加标记来过滤这些指标。

例如,您可以设置一个 api_http_requests_total 指标来统计收到的 HTTP 请求数。然后,您可以在此指标上添加 request_method 标签,该标签采用 POST、GET 或 PUT 值。因此,您需要为可能收到的每种请求类型创建三个指标流。在这种情况下,如需查找 HTTP GET 请求的数量,请运行以下查询:

api_http_requests_total{request_method="GET"}

如需详细了解指标和标签,请参阅指标和标签命名。

以下是 MonitoringTarget 自定义资源添加的一些默认标签。您可以使用以下默认标签来查询指标:

  • _gdch_service:服务的简称。
  • cluster:集群的名称。
  • container_name:Pod 中容器的名称。
  • namespace_name:您的项目命名空间。
  • pod_name:Pod 名称前缀。

下表介绍了 Prometheus 自动添加的标签:

默认标签
指标标签 说明
job 用于收集指标的抓取作业的内部名称。由 MonitoringTarget 自定义资源创建的作业具有采用以下格式的名称:

obs-system/OBS_SHADOW_PROJECT_NAME/MONITORINGTARGET_NAME.MONITORINGTARGET_NAMESPACE/I/J

I 和 J 是在内部确定的唯一数字,用于避免名称冲突。
instance 已废弃服务的 $IP:$PORT。如果工作负载资源有多个副本,请使用此字段来区分它们。

以下代码示例展示了如何使用标签的键值对来查询不同的指标,以查看在 Kubernetes 集群中收集的 CPU 使用情况:

pod_cpu_usage_total{cluster="CLUSTER_NAME"}

使用指标重新添加标签工具添加最初未由抓取的容器公开的标签,并重命名生成的指标。您必须配置 MonitoringTarget 自定义资源,以便在它收集的指标上添加标签。在自定义资源的 metricsRelabelings 字段中指定这些标签。如需了解详情,请参阅标签指标。

以下是从 Cortex 指标端点收到的响应示例:

          {
    "zone1": {
      "status": "success",
      "data": {
        "resultType": "matrix",
        "result": [
          {
            "metric": {
              "__name__": "pod_cpu_usage_total",
              "_gdch_project": "project-1",
              "cluster": "root-admin",
              "container_name": "otel-collector",
              "exported_instance": "localhost:2112",
              "exported_job": "workload-0",
              "ha_cluster": "root-admin-shard1",
              "instance": "172.192.1.74:3113",
              "job": "metrics-server-exporter.mon-system",
              "namespace": "mon-system",
              "namespace_name": "mon-system",
              "pod": "cortex-0",
              "pod_name": "metrics-server-exporter-695c9f848b-swzgq",
              "zone_id": "zone1"
            },
            "values": [
              [
                1753261200,
                "2.258621991"
              ],
              [
                1753261800,
                "1.029301454"
              ]
            ]
          }
        ]
      }
    },
    "zone2": {
      "status": "success",
      "data": {
        "resultType": "matrix",
        "result": [
          {
            "metric": {
              "__name__": "pod_cpu_usage_total",
              "_gdch_project": "project-1",
              "cluster": "root-admin",
              "container_name": "otel-collector",
              "exported_instance": "localhost:2112",
              "exported_job": "workload-0",
              "ha_cluster": "root-admin-shard1",
              "instance": "172.196.3.208:3113",
              "job": "metrics-server-exporter.mon-system",
              "namespace": "mon-system",
              "namespace_name": "mon-system",
              "pod": "cortex-0",
              "pod_name": "metrics-server-exporter-695c9f848b-kchfv",
              "zone_id": "zone2"
            },
            "values": [
              [
                1753261200,
                "1.814027424"
              ],
              [
                1753261800,
                "2.7767060260000003"
              ]
            ]
          }
        ]
      }
    }
  }

查询 HTTP API

格式概览

API 响应始终采用 JSON 格式。成功的请求始终会收到 2xx 状态代码。

对于无效请求,API 处理程序将返回一个 JSON 错误对象以及以下 HTTP 状态代码之一:

  • 400 Bad Request:如果缺少必要参数或提供的参数不正确。
  • 503 Service Unavailable:如果查询超出时间限制或被中止,则会返回此错误。

任何成功收集的数据都将包含在响应的“data”字段中。

JSON 响应信封格式如下:

{
  "status": "success" | "error",
  "data": <data>,

  // Only set if status is "error". The data field may still hold
  // additional data.
  "errorType": "<string>",
  "error": "<string>",

  // Only set if there were warnings while executing the request.
  // There will still be data in the data field.
  "warnings": ["<string>"],
  // Only set if there were info-level annotations while executing the request.
  "infos": ["<string>"]
}

即时查询

以下端点会在单个时间点评估即时查询:

GET /api/v1/query
POST /api/v1/query

以下网址查询参数可用于 Prometheus 表达式查询:

  • query=<string>:Prometheus 表达式查询字符串。
  • time=<rfc3339 | unix_timestamp>:可选的评估时间戳,指定为 RFC 3339 字符串或 Unix 时间戳。如果省略,则使用当前服务器时间。
  • timeout=<duration>:可选的评估超时。默认值为 query.timeout 标志的值,且受该值限制。
  • limit=<number>:要返回的可选序列数上限。这会截断矩阵和向量的序列,但不会影响标量或字符串。值为 0 表示停用此限制。
  • lookback_delta=<number>:一个可选参数,用于专门为此查询替换回溯期。

如果省略时间参数,系统会使用当前服务器时间。

对于可能超出网址字符数限制的较长查询,您可以使用 POST 方法提交这些参数。确保请求正文经过网址编码,并且 Content-Type 标头设置为 application/x-www-form-urlencoded。

查询结果的数据部分采用以下格式:

{
  "resultType": "matrix" | "vector" | "scalar" | "string",
  "result": <value>
}

<value> 是指查询结果数据,其格式因 resultType 而异。

以下示例在 2015-07-01T20:10:51.781Z 时评估表达式 up:

curl 'http://localhost:9090/api/v1/query?query=up&time=2015-07-01T20:10:51.781Z'
{
   "status" : "success",
   "data" : {
      "resultType" : "vector",
      "result" : [
         {
            "metric" : {
               "__name__" : "up",
               "job" : "prometheus",
               "instance" : "localhost:9090"
            },
            "value": [ 1435781451.781, "1" ]
         },
         {
            "metric" : {
               "__name__" : "up",
               "job" : "node",
               "instance" : "localhost:9100"
            },
            "value" : [ 1435781451.781, "0" ]
         }
      ]
   }
}

范围查询

以下端点会评估一段时间范围内的表达式查询:

GET /api/v1/query_range
POST /api/v1/query_range

以下网址查询参数可用于 Prometheus 表达式查询:

  • query=<string>:Prometheus 表达式查询字符串。
  • start=<rfc3339 | unix_timestamp>:开始时间戳(含边界值)。
  • end=<rfc3339 | unix_timestamp>:结束时间戳(含)。
  • step=<duration | float>:查询解析步骤宽度,采用时长格式或浮点秒数。
  • timeout=<duration>:可选的评估超时。默认值为 query.timeout 标志的值,且受该值限制。
  • limit=<number>:要返回的可选序列数上限。这会截断矩阵和向量的序列,但不会影响标量或字符串。值为 0 表示停用此限制。
  • lookback_delta=<number>:一个可选参数,用于专门为此查询替换回溯期。

对于可能超出网址字符数限制的较长查询,您可以使用 POST 方法提交这些参数。确保请求正文经过网址编码,并且 Content-Type 标头设置为 application/x-www-form-urlencoded。

查询结果的数据部分采用以下格式:

{
  "resultType": "matrix",
  "result": <value>
}

以下示例在 30 秒范围内评估表达式 up,查询分辨率为 15 秒。

curl 'http://localhost:9090/api/v1/query_range?query=up&start=2015-07-01T20:10:30.781Z&end=2015-07-01T20:11:00.781Z&step=15s'
{
   "status" : "success",
   "data" : {
      "resultType" : "matrix",
      "result" : [
         {
            "metric" : {
               "__name__" : "up",
               "job" : "prometheus",
               "instance" : "localhost:9090"
            },
            "values" : [
               [ 1435781430.781, "1" ],
               [ 1435781445.781, "1" ],
               [ 1435781460.781, "1" ]
            ]
         },
         {
            "metric" : {
               "__name__" : "up",
               "job" : "node",
               "instance" : "localhost:9091"
            },
            "values" : [
               [ 1435781430.781, "0" ],
               [ 1435781445.781, "0" ],
               [ 1435781460.781, "1" ]
            ]
         }
      ]
   }
}

指标和标签命名

指标命名准则

定义指标名称时,请考虑以下原则:

  • 指标名称应包含一个单字应用前缀,客户端库有时将其称为“命名空间”。此前缀用于标识指标所属的网域。对于应用专属指标,通常使用应用名称作为前缀。

    示例:

    • prometheus_notifications_total(特定于 Prometheus 服务器)
    • process_cpu_seconds_total(由许多客户端库导出)
    • http_request_duration_seconds(适用于所有 HTTP 请求)
  • 指标名称必须表示单个单位(例如,避免将秒与毫秒或秒与字节混合)。

  • 指标名称应使用基本单位(例如秒、字节、米),而不是派生单位(例如毫秒、兆字节、千米)。

  • 指标名称应包含复数单位后缀。对于累积计数,除了单位后缀(如果适用)之外,还应使用后缀“total”。

    示例:

    • http_request_duration_seconds
    • node_memory_usage_bytes
    • http_requests_total(用于无单位的累积计数)
    • process_cpu_seconds_total(用于带单位的累积计数)
    • foobar_build_info(用于提供有关正在运行的二进制文件的元数据的伪指标)
  • 指标名称可以对其组成部分进行排序,以便在按字典顺序排序时方便分组,前提是遵循所有其他规则。相关指标通常会将共同的名称部分放在最前面,以确保它们排序在一起。

    示例:

    • prometheus_tsdb_head_truncations_closed_total
    • prometheus_tsdb_head_truncations_established_total
    • prometheus_tsdb_head_truncations_failed_total
    • prometheus_tsdb_head_truncations_total
  • 指标名称应在所有标签维度中一致地表示相同的逻辑“被测量对象”。

    示例:

    • 请求持续时间
    • 字节的数据传输
    • 瞬时资源用量(百分比)

标签命名准则

在衡量某项内容时,请使用标签来区分其特征。例如:

  • 对于 API HTTP 请求总数 (api_http_requests_total),请按操作类型进行区分,例如 create、update、delete(请求类型:operation="create|update|delete")。
  • 对于以秒为单位的 API 请求时长 (api_request_duration_seconds),请按请求阶段进行区分,例如 extract、transform、load(请求阶段:stage="extract|transform|load")。

避免在指标名称本身中包含标签名称,因为这会造成冗余,并且如果这些标签稍后被汇总,可能会导致混淆。