在 Google Distributed Cloud (GDC) 气隙环境中从已部署的工作负载中收集指标后,您就可以开始分析这些指标了。如需分析指标,您可以在信息丰富的 Grafana 信息中心直观呈现和过滤指标,也可以使用 curl 工具直接从 Cortex 访问指标,以便灵活地编写脚本和实现自动化。
本页详细介绍了如何使用 Grafana 界面和 curl 工具查询和直观呈现 Cortex 端点的指标,从而深入了解工作负载性能。
您可以通过以下两种方法之一访问指标:
- Grafana 信息中心:通过直观的可视化图表探索趋势并发现异常情况,这些图表会显示 CPU 利用率、存储空间消耗量和网络活动等关键指标。Grafana 提供了一个用户友好的界面,用于在信息中心内过滤和分析工作负载数据。
- Cortex 端点:对于更高级的用例,您可以使用命令行中的
curl工具直接查询项目的 Cortex 实例。Cortex 会存储项目的 Prometheus 指标,并提供一个 HTTP 端点以供程序化访问。通过此访问权限,您可以导出数据、自动执行任务和构建自定义集成。
准备工作
如需获得在 Grafana 界面上查询和可视化指标所需的权限,请让 Security Admin 向您授予预定义的 Project Grafana Viewer 或 Grafana Viewer 角色。根据您需要的访问权限级别,您可以在根管理员集群或 Management API 服务器的 infra-obs 项目中获取 Grafana 角色。
或者,如需获得从 Cortex 端点查询指标所需的权限,请让 Security Admin 在根管理集群或管理 API 服务器的 infra-obs 项目中向您授予 Cortex Prometheus Viewer 角色。
如需详细了解这些角色,请参阅准备 IAM 权限。
获取和过滤指标
选择以下方法之一,根据项目工作负载构建查询、直观呈现趋势和过滤指标:
Grafana 信息中心
本部分介绍如何使用 Grafana 信息中心访问指标。
确定 Grafana 端点
以下网址是 infra-obs 项目或根管理员集群的 Grafana 端点:
infra-obs项目的 Grafana 端点:https://GDC_URL/infra-obs/grafana将 GDC_URL 替换为 GDC 中组织的网址。
根管理员集群的 Grafana 端点:
https://ROOT_ADMIN_CLUSTER_URL/grafana将 ROOT_ADMIN_CLUSTER_URL 替换为 GDC 中根管理员集群的网址。
在 Grafana 界面中查看指标
在 Grafana 界面中检索指标:
- 在 GDC 控制台中,选择您的项目。
- 在导航菜单中,依次选择操作 > 监控。
点击 View all in Grafana(在 Grafana 中查看全部)。
系统会打开一个新页面,其中显示 Grafana 端点和界面。
在界面上,依次点击导航菜单中的探索 探索,打开探索页面。
从探索栏中的菜单中,根据您的数据源类型选择一个数据源以检索指标:
单地区 universe:选择 prometheus 以显示单地区 universe 中的指标。
多地区数据宇宙:Grafana 可以连接到不同地区并显示跨地区数据。选择指标 ZONE_NAME,以显示您所在宇宙中任何区域的指标,无论您登录的是哪个区域。
此外,如需在单个信息中心内实现跨可用区的数据可视化,并将多个可用区添加到查询中,请选择混合作为数据源。
输入查询内容,使用 PromQL(Prometheus 查询语言)表达式搜索指标。您可以通过以下任一方式执行此步骤:
- 从指标和标签过滤条件菜单中为查询选择一个指标和一个标签。 点击添加图标 添加,可向查询添加更多标签。然后,点击运行查询。
- 直接在指标文本字段中输入查询,然后按 Shift+Enter 运行查询。
该页面会显示与您的查询匹配的指标。

图 1. 用于从 Grafana 用户界面查询指标的菜单选项。
在图 1 中,Prometheus 选项会显示一个界面,您可以在其中构建从 Grafana 检索指标的查询。
如需查看可用于查询指标的标签的值示例,请参阅查询和标签示例。
Cortex 端点
本部分介绍如何使用 Cortex 访问指标。
确定 Cortex 端点
以下网址是您项目的 Cortex 实例的端点:
https://GDC_URL/infra-obs/cortex/prometheus/
将 GDC_URL 替换为您组织在 GDC 中的网址。
对 curl 请求进行身份验证
- 下载并安装 gdcloud CLI。
设置 gdcloud
core/organization_console_url属性:gdcloud config set core/organization_console_url https://GDC_URL-
gdcloud auth login 使用您的用户名和密码进行身份验证并登录。
登录成功后,您可以通过
gdcloud auth print-identity-token命令在 curl 请求中使用授权标头。如需了解详情,请参阅 gdcloud auth。
调用 Cortex 端点
完成以下步骤,以使用 curl 工具访问 Cortex 端点:
- 对
curl请求进行身份验证。 使用
curl调用 Cortex 端点,并使用标准 Prometheus HTTP API (https://prometheus.io/docs/prometheus/latest/querying/api/) 扩展网址,以查询指标。以下是
curl请求的示例:curl https://GDC_URL/infra-obs/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 格式。
示例查询和标签
您可以使用指标名称和标签的键值对来查询指标。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"}
如需详细了解指标和标签,请访问 https://prometheus.io/docs/practices/naming/。
以下是 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/JI 和 J 是内部确定的唯一编号,用于避免名称冲突。 |
instance |
废弃服务的 $IP:$PORT。如果工作负载资源有多个副本,请使用此字段来区分它们。 |
以下代码示例展示了如何使用标签的键值对来查询不同的指标:
查看项目中已处理操作的所有指标流:
processed_ops_total查看在 Kubernetes 集群中收集的处理后操作:
processed_ops_total{cluster="CLUSTER_NAME"}查看在 Kubernetes 集群中收集的 CPU 使用情况:
cpu_usage{cluster="CLUSTER_NAME"}
使用指标重新添加标签工具来添加被抓取的容器最初未公开的标签,并重命名生成的指标。您必须配置 MonitoringTarget 自定义资源,以便在收集的指标上添加标签。在自定义资源的 metricsRelabelings 字段中指定这些标签。如需了解详情,请参阅标签指标。