菜单
Grafana Cloud Enterprise 开源

Google Cloud Monitoring 查询编辑器

本主题解释了特定于 Google Cloud Monitoring 数据源的查询。有关在 Grafana 中查询数据源的通用文档,请参阅查询和转换数据

选择查询编辑模式

Google Cloud Monitoring 查询编辑器帮助你构建两种类型数据的查询,它们都返回时序数据

当你对可视化添加注释时,也会使用查询编辑器。

查询指标

Google Cloud Monitoring metrics query builder
Google Cloud Monitoring 指标查询构建器

指标查询编辑器帮助你选择指标,按标签和时间分组和聚合,并使用过滤器指定要查询的时序。

创建指标查询

  1. 查询类型 下拉列表中选择 指标 选项。
  2. 项目 下拉列表中选择一个项目。
  3. 服务 下拉列表中选择一个 Google Cloud Platform 服务。
  4. 指标 下拉列表中选择一个指标。
  5. (可选)使用过滤器和分组部分中的加号和减号图标添加和移除过滤器或分组子句。

Google Cloud Monitoring 支持多种指标类型,例如 GAUGEDELTACUMULATIVE。每种类型都支持不同的聚合选项,例如 reducer 和 aligner。此外,指标具有特定的值类型,可以是标量或分布。

选择指标后,指标查询编辑器会列出该指标可用的聚合方法,并设置默认的聚合、reducer 和 aligner。

如果指标值类型是分布,则默认将聚合设置为平均值。对于标量值类型,默认没有聚合。

各类指标在此处文档中有所说明,有关指标种类和类型的更多详细信息可在此处找到。

注意

分布指标通常最适合可视化为热力图或直方图。以这种方式可视化时,不需要聚合。但是,对于其他可视化类型,如果尝试查询未聚合的分布指标,可能会由于可能返回的桶数量而观察到性能下降。有关如何可视化分布指标的更多信息,请参阅 此页面。

应用过滤器

添加并应用过滤器

  1. 单击过滤器部分中的加号图标。
  2. 选择要过滤的字段。
  3. 输入过滤器值,例如 instance_name = grafana-1

要移除过滤器,单击垃圾桶图标。

使用简单通配符

将运算符设置为 =!= 时,可以在过滤器值字段中添加通配符。

例如,输入 us-* 会捕获所有以“us-”开头的值,输入 *central-a 会捕获所有以“central-a”结尾的值。*-central-* 会捕获所有包含子字符串“-central-”的值。

简单通配符的性能优于正则表达式。

使用正则表达式

将运算符设置为 =~!=~ 时,可以在过滤器值字段中添加正则表达式。

例如,输入 us-central[1-3]-[af] 会匹配所有以“us-central”开头,后跟 1 到 3 范围内的数字、一个破折号以及“a”或“f”的值。

创建这些正则表达式时,不需要前导斜杠和尾随斜杠。

配置预处理选项

当选定指标的指标类型为 DELTACUMULATIVE 时,查询编辑器会显示预处理选项。

  • 速率 选项对数据点进行对齐,并将其转换为每个时序的速率。
  • 差值 选项按每个时序的差值(差异)对数据点进行对齐。

分组时序

要组合多个时序并减少为指标返回的数据量,请指定分组和函数。

分组依据

使用 分组依据 (Group By) 段按资源或指标标签进行分组,这会减少时序数量并按组聚合结果。

例如,如果按 instance_name 分组,Grafana 会显示指定 Compute 实例的聚合指标。

元数据标签

资源元数据标签包含可唯一标识 Google Cloud 中资源的信息。时序响应仅在元数据标签是时序请求中分组依据段的一部分时返回它们。

没有用于检索元数据标签的 API,因此无法使用所选服务和指标可用的元数据标签填充分组依据列表。但是,分组依据 (Group By) 字段列表包含一组预定义的常见系统标签。

无法预定义用户标签,但可以手动在 分组依据 (Group By) 字段中输入它们。如果在 分组依据 (Group By) 段中包含元数据标签、用户标签或系统标签,则可以基于它创建过滤器,并在 别名 (Alias) 字段中展开其值。

分组函数

要将组中的时序组合成单个时序,请选择分组函数。

对齐数据

你可以通过应用对齐函数来组合在固定时间长度内接收的所有数据点,然后为结果指定一个时间戳。

选择对齐函数

对齐期间,所有数据点以固定间隔接收。在每个间隔内(由对齐周期定义),对于每个时序,数据被聚合为一个点。该点的值由你使用的对齐函数类型确定。

有关对齐函数的更多信息,请参阅对齐指标选择器

定义对齐周期

如果你已选择聚合,可以将 对齐周期 字段设置为按时间对指标进行分组。

默认值,称为“cloud monitoring auto”,使用 GCP Google Cloud Monitoring 的默认分组。这使你能够将 Grafana 中的图与 Google Cloud Monitoring UI 中的图进行比较。

“cloud monitoring auto”的默认值为

  • 时间范围 < 23 小时时为 1m
  • 时间范围 >= 23 小时且 < 6 天时为 5m
  • 时间范围 >= 6 天时为 1h

另一个自动选项是“grafana auto”,它根据所选时间范围和时序面板的宽度自动设置分组依据时间。

有关“grafana auto”的更多信息,请参阅间隔变量

你还可以选择固定的时间间隔进行分组,例如 1h1d

设置别名模式

别名依据 (Alias By) 帮助你控制图例键的格式。默认情况下,Grafana 会显示指标名称和标签,这可能很长且难以阅读。

您可以在别名字段中使用模式来自定义图例键的格式

别名模式描述别名模式示例示例结果
{{metric.label.xxx}}返回指标标签值。{{metric.label.instance_name}}grafana-1-prod
{{metric.type}}返回完整指标类型。{{metric.type}}compute.googleapis.com/instance/cpu/utilization
{{metric.name}}返回指标名称部分。{{metric.name}}instance/cpu/utilization
{{metric.service}}返回服务部分。{{metric.service}}compute
{{resource.label.xxx}}返回资源标签值。{{resource.label.zone}}us-east1-b
{{resource.type}}返回受监控的资源类型名称。{{resource.type}}gce_instance
{{metadata.system_labels.xxx}}返回元数据系统标签值。{{metadata.system_labels.name}}grafana
{{metadata.user_labels.xxx}}返回元数据用户标签值。{{metadata.user_labels.tag}}production

别名模式示例

使用指标标签

您可以在“Group By(分组依据)”下拉列表中选择指标的指标和资源标签列表。然后可以使用别名模式将它们包含在图例键中。

例如,给定以下“Alias By(别名依据)”值:{{metric.type}} - {{metric.label.instance_name}}

预期结果如下所示:compute.googleapis.com/instance/cpu/usage_time - server1-prod

使用受监控的资源类型

您还可以使用 resource.type 别名解析受监控的资源类型名称。

例如,给定以下“Alias By(别名依据)”值:{{resource.type}} - {{metric.type}}

预期结果如下所示:gce_instance - compute.googleapis.com/instance/cpu/usage_time

Google Cloud Monitoring deep linking
Google Cloud Monitoring 深度链接

您可以单击面板中的时间序列以访问上下文菜单,其中包含指向在 Google Cloud 控制台的 Metrics Explorer 中查看的链接。该链接指向 Google Cloud 控制台的 Metrics Explorer 并在其中运行 Grafana 面板的查询。

如果您选择该链接,首先会在 Google 帐户选择器中选择一个帐户。然后 Google 会将您重定向到 Metrics Explorer。

提供的链接对任何帐户都有效,但只有当您的帐户具有访问查询指定 GCP 项目的权限时,才会显示查询。

了解自动单位检测

Grafana 对每个查询编辑器行向 Cloud Monitoring API 发出一个查询,每个 API 响应都包含一个单位。Grafana 会尝试将返回的单位转换为与其时间序列面板兼容的单位。

如果成功,Grafana 会在面板的 Y 轴上显示单位。如果查询编辑器行返回不同的单位,Grafana 会使用时间序列面板中最后一行查询编辑器返回的单位。

使用 Monitoring Query Language (MQL)

Monitoring Query Language (MQL) 查询构建器可帮助您查询并以时间序列格式显示 MQL 结果。要了解基本的 MQL 概念,请参阅 Monitoring Query Language 简介

创建 MQL 查询

要创建 MQL 查询

  1. 查询类型 下拉列表中选择 指标 选项。
  2. 项目 下拉列表中选择一个项目。
  3. 在文本区域中输入您的 MQL 查询。

为 MQL 查询设置别名模式

MQL 查询使用与指标查询相同的别名模式。

但是,不支持 {{metric.service}},并且 {{metric.type}}{{metric.name}} 会在响应中显示时间序列键。

查询服务级别目标 (SLO)

Service Level Objectives (SLO) query editor
服务级别目标 (SLO) 查询编辑器

SLO 查询构建器可帮助您以时间序列格式可视化 SLO 数据。要了解服务监控中的基本概念,请参阅Google Cloud Monitoring 文档

创建 SLO 查询

要创建 SLO 查询

  1. Query Type(查询类型)下拉列表中选择 Service Level Objectives (SLO) 选项。
  2. 项目 下拉列表中选择一个项目。
  3. Service(服务)下拉列表中选择一个SLO 服务
  4. SLO(SLO)下拉列表中选择一个SLO
  5. Selector(选择器)下拉列表中选择一个时间序列选择器

Grafana 的时间序列选择器使用描述性名称,这些名称映射到 Google 在服务监控文档中使用的系统名称。

选择器下拉列表值对应的时间序列选择器
SLI 值select_slo_health
SLO 合规性select_slo_compliance
剩余 SLO 错误预算select_slo_budget_fraction
SLO 消耗率select_slo_burn_rate

SLO 查询的别名模式

Alias By(别名依据)字段可帮助您控制 SLO 查询的图例键格式。

别名模式描述示例结果
{{project}}返回 GCP 项目名称。myProject
{{service}}返回服务名称。myService
{{slo}}返回 SLO。latency-slo
{{selector}}返回选择器。select_slo_health

SLO 查询的对齐周期和分组时间

SLO 查询使用与指标查询相同的对齐周期功能。

创建 Prometheus 查询

要创建 Prometheus 查询

  1. Query Type(查询类型)下拉列表中选择 PromQL 选项。
  2. 项目 下拉列表中选择一个项目。
  3. 在文本区域中输入您的 Prometheus 查询。
  4. 输入最小步长间隔。Min step(最小步长)设置定义了数据点之间间隔的下限。例如,将其设置为 1h 表示测量是每小时进行的。此设置支持 $__interval$__rate_interval 宏。

应用注解 (Annotations)

注解 (Annotations) 在图表上方叠加丰富的事件信息。您可以在仪表盘菜单的“Annotations”视图中添加注解查询。

渲染注解开销较大,因此限制返回的行数非常重要。不支持显示 Google Cloud Monitoring 的注解和事件,但它可以很好地与 Google Cloud Monitoring 中的自定义指标配合使用。

使用注解的查询编辑器,您可以选择指标和过滤器。Title(标题)Text(文本)字段支持模板化,并且可以使用查询返回的数据。

例如,Title 字段可以包含以下文本

{{metric.type}} has value: {{metric.value}}

示例结果:monitoring.googleapis.com/uptime_check/http_status has this value: 502

注解查询编辑器的模式

别名模式格式描述别名模式示例示例结果
{{metric.value}}指标/点的值。{{metric.value}}555
{{metric.type}}返回完整指标类型。{{metric.type}}compute.googleapis.com/instance/cpu/utilization
{{metric.name}}返回指标名称部分。{{metric.name}}instance/cpu/utilization
{{metric.service}}返回服务部分。{{metric.service}}compute
{{metric.label.xxx}}返回指标标签值。{{metric.label.instance_name}}grafana-1-prod
{{resource.label.xxx}}返回资源标签值。{{resource.label.zone}}us-east1-b