从 Google Distributed Cloud (GDC) 空气隔离环境中已部署的工作负载收集指标后,您就可以开始分析这些指标了。如需分析指标,您可以在信息丰富的 Grafana 信息中心直观呈现和过滤指标,也可以使用 curl
工具直接从 Cortex 访问指标,以便灵活地编写脚本和实现自动化。
本页详细介绍了如何使用 Grafana 界面和 curl
工具查询和直观呈现 Cortex 端点的指标,从而深入了解工作负载性能。
您可以通过以下两种方法之一访问指标:
- Grafana 信息中心:通过直观的可视化图表探索趋势并发现异常情况,这些图表会显示 CPU 利用率、存储空间消耗量和网络活动等关键指标。Grafana 提供了一个用户友好的界面,用于在信息中心内过滤和分析工作负载数据。
- Cortex 端点:对于更高级的用例,您可以使用命令行中的
curl
工具直接查询项目的 Cortex 实例。Cortex 会存储项目的 Prometheus 指标,并提供一个 HTTP 端点以供程序化访问。通过此访问权限,您可以导出数据、自动执行任务和构建自定义集成。
准备工作
如需获得在 Grafana 信息中心上查询和直观呈现指标所需的权限,请让您的组织 IAM 管理员或项目 IAM 管理员向您授予预定义的组织 Grafana 查看者或项目 Grafana 查看者角色。根据您需要的访问权限级别,您可以在组织或项目中获取 Grafana 角色。
或者,如需获得从 Cortex 端点查询指标所需的权限,请让项目 IAM 管理员在您的项目命名空间中向您授予 Project Cortex Prometheus Viewer 角色。
如需详细了解这些角色,请参阅准备 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 界面中检索指标:
- 在 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/PROJECT_NAMESPACE/cortex/prometheus/
替换以下内容:
GDC_URL
:您组织在 GDC 中的网址。PROJECT_NAMESPACE
:您的项目命名空间。例如,
org-1
组织中platform-obs
项目的 Cortex 端点为https://org-1/platform-obs/cortex/prometheus/
。
对 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
命令在 c网址 请求中使用授权标头。如需了解详情,请参阅 gdcloud auth。
调用 Cortex 端点
完成以下步骤,以使用 curl
工具访问 Cortex 端点:
- 对
curl
请求进行身份验证。 使用
curl
调用 Cortex 端点,并使用标准 Prometheus HTTP API (https://prometheus.io/docs/prometheus/latest/querying/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 格式。
示例查询和标签
您可以使用指标名称和标签的键值对来查询指标。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/J I 和 J 是内部确定的唯一编号,用于避免名称冲突。 |
instance |
废弃服务的 $IP:$PORT 。如果工作负载资源有多个副本,请使用此字段来区分它们。 |
以下代码示例展示了如何使用标签的键值对来查询不同的指标:
查看项目中已处理操作的所有指标流:
processed_ops_total
查看在 Kubernetes 集群中收集的处理后操作:
processed_ops_total{cluster="CLUSTER_NAME"}
查看在 Kubernetes 集群中收集的 CPU 使用情况:
cpu_usage{cluster="CLUSTER_NAME"}
使用指标重新添加标签工具来添加被抓取的容器最初未公开的标签,并重命名生成的指标。您必须配置 MonitoringTarget
自定义资源,以便在收集的指标上添加标签。在自定义资源的 metricsRelabelings
字段中指定这些标签。如需了解详情,请参阅标签指标。