连接到 Google Cloud Monitoring 数据来源 - Amazon Managed Grafana

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

连接到 Google Cloud Monitoring 数据来源

注意

在 Grafana 的早期版本中,此数据来源被命名为 Google Stackdriver。

添加 Google Cloud Monitoring 数据来源,以便为您的 Google Cloud Monitoring 指标构建控制面板。

添加数据来源

  1. 选择顶部标题中的 Grafana 图标,打开侧边菜单。

  2. 在侧边菜单的控制面板链接下,您应该可以找到数据来源链接。

  3. 选择顶部标题中的 + 添加数据来源按钮。

  4. 类型下拉列表中选择 Google Cloud Monitoring

  5. 上传或粘贴服务账户密钥文件。有关创建服务账户密钥文件的步骤,请参阅本文档稍后的部分。

注意

如果您在侧边菜单中看不到数据来源链接,则说明您当前的用户没有Admin角色。

名称 描述
Name 数据来源名称。您将在面板和查询中通过其名称引用数据来源。
Default 默认数据来源意味着将为新面板预先选择该数据来源。
Service Account Key GCP 项目的服务账户密钥文件。有关如何创建该文件的说明,请参阅本文档稍后的部分。

身份验证

可通过两种方式对 Google Cloud Monitoring 插件进行身份验证

  • 上传 Google JWT 文件

  • 从 Google 元数据服务器自动检索凭证

后一个选项仅在 GCE 虚拟机上运行 Grafana 时可用。

使用 Google 服务账户密钥文件

要使用 Google Cloud Monitoring API 进行身份验证,您必须为要显示其数据的项目创建 Google Cloud Platform(GCP)服务账户。Grafana 数据来源与一个 GCP 项目集成。要可视化来自多个 GCP 项目的数据,必须为每个 GCP 项目创建一个数据来源。

正在启用 APIs

APIs 必须先启用以下选项:

选择列出的链接,然后选择启用按钮。

为项目创建 GCP 服务账户

  1. 导航到 “APIs和服务凭证” 页面

  2. 选择创建凭证下拉菜单/按钮,然后选择服务账户密钥选项。

    {{< docs-imagebox img=”/img/docs/v71/cloudmonitoring_create_service_account_button.png “class= “docs-image—no-shadow” caption= “创建服务账户按钮” >}}

  3. 创建服务账户密钥页面上,选择密钥类型 JSON。然后,在服务账户下拉列表中,选择新建服务账户选项。

    {{< docs-imagebox img=”/img/docs/v71/cloudmonitoring_create_service_account_key.png “class= “docs-image—no-shadow” caption= “创建服务账户密钥” >}}

  4. 一些新的字段将会出现。在服务账户名称字段中填写服务账户的名称,然后从角色下拉列表中选择监控查看者角色。

    {{< docs-imagebox img=”/img/docs/v71/cloudmonitoring_service_account_choose_role.png “class= “docs-image—no-shadow” caption= “选择角色” >}}

  5. 选择创建按钮。一个 JSON 密钥文件将会创建并下载到您的计算机上。将此文件存储在安全的地方,因为其允许访问 Google Cloud Monitoring 数据。

  6. 将其上传到数据来源配置页面上的 Grafana。您可以上传文件或粘贴文件内容。

    {{< docs-imagebox img=”/img/docs/v71/cloudmonitoring_grafana_upload_key.png “class= “docs-image—no-shadow” caption= “将服务密钥文件上传到 Grafana” >}}

  7. 文件内容将会加密并保存在 Grafana 数据库中。上传文件后不要忘记保存!

    {{< docs-imagebox img=”/img/docs/v71/cloudmonitoring_grafana_key_uploaded.png “class= “docs-image—no-shadow” caption= “服务密钥文件已上传到 Grafana” >}}

使用 查询编辑器

Google Cloud Monitoring 查询编辑器让您可以构建两种类型的查询:指标服务级别目标(SLO)。两种类型都将返回时间序列数据。

指标查询

指标查询编辑器允许选择指标,按标签和时间分组/聚合,并使用筛选条件指定要在结果中显示哪个时间序列。

要创建指标查询,请按照以下步骤操作:

  1. 查询类型下拉列表中选择指标选项。

  2. 项目下拉列表中选择一个项目。

  3. 服务下拉列表中选择 Google Cloud Platform 服务。

  4. 指标下拉列表中选择一个指标。

  5. 要添加或移除 filter 或 group by 子句,请使用筛选条件和分组依据部分中的加号和减号图标。此为可选步骤。

Google Cloud Monitoring 指标具有不同的类型(GAUGE、DELTA、CUMULATIVE),并且这些类型支持不同的聚合选项(reducer 和 aligner)。Grafana 查询编辑器显示所选指标的可用聚合方法列表,并在选择指标时设置默认 reducer 和 aligner。查询编辑器还会自动选择 Y 轴的单位。

筛选条件

要添加筛选条件,请选择加号图标,选择要筛选的字段,然后输入筛选条件值。例如,输入 instance_name = grafana-1。您可以选择筛选条件名称,然后选择 --remove filter-- 来移除筛选条件。

简单通配符

当运算符设置为 =!= 时,可将通配符添加到筛选条件值字段。例如,us-* 捕获所有以 "us-" 开头的值,*central-a 捕获所有以 "central-a" 结尾的值,而 *-central-* 捕获具有子字符串 central- 的所有值。简单通配符比正则表达式的开销更小。

正则表达式

当运算符设置为 =~!=~ 时,可将正则表达式添加到筛选条件值字段。例如,us-central[1-3]-[af] 匹配所有以 "us-central" 开头的值,后跟 1 到 3 之间的数字、短划线以及 "a" 或 "f"。创建正则表达式时,不需要使用前导和尾部斜杠。

聚合

您可以使用“聚合”字段根据常见统计数据合并时间序列。有关聚合的更多信息,请参阅聚合选项

Aligner 字段让您可以在相同的按时间间隔分组之后对齐多个时间序列。有关 aligner 的更多信息,请参阅对齐指标选择器

对齐周期和按时间分组

如果选择聚合,Alignment Period 将会按时间对指标分组。默认情况下,使用 GCP Google Cloud Monitoring 默认分组(从而将 Grafana 中的图形与 Google Cloud Monitoring UI 中的图形进行比较)。该选项称为 cloud monitoring auto,默认值为:

  • 对于时间范围 < 23 小时,则为 1m

  • 对于时间范围 >= 23 小时且 < 6 天,则为 5m

  • 对于时间范围 >= 6 天,则为 1h

另一个自动选项是 grafana auto。这将根据所选的时间范围和图形面板的宽度自动设置按时间分组。有关更多信息,请参阅 添加间隔变量

也可以选择按固定时间间隔分组,如 1h1d

分组依据

按资源或指标标签分组,以减少时间序列的数量,并按分组依据聚合结果。例如,按 instance_name 分组以查看计算实例的聚合指标。

元数据标签

资源元数据标签包含在 Google Cloud 中唯一地标识资源的信息。仅当元数据标签是时间序列请求中分组依据分段的一部分时,才会在时间序列响应中返回元数据标签。由于没有用于检索元数据标签的 API,因此无法使用适用于所选服务和指标的元数据标签填充“分组依据”下拉列表。但分组依据字段下拉列表含有预定义的常见系统标签列表。

用户标签无法预定义,但可以在分组依据字段中手动输入。如果分组依据分段中包含元数据标签、用户标签或系统标签,则可以根据标签创建筛选条件,并在别名字段扩展其值。

别名模式

您可以使用“别名依据”字段控制图例键的格式。默认情况下显示指标名称和标签。可能很长且难以阅读。在别名字段中使用以下模式,您可以根据需要设置图例键的格式。

指标类型模式

别名模式 描述 示例结果
{{metric.type}} 返回完整的指标类型。 compute.googleapis.com/instance/cpu/utilization
{{metric.name}} 返回指标名称部分。 instance/cpu/utilization
{{metric.service}} 返回服务部分。 compute

标签模式

在“分组依据”下拉列表中,您可以查看指标列表和指标的资源标签。可使用别名模式将其包含在图例键中。

别名模式格式 描述 别名模式示例 示例结果
{{metric.label.xxx}} 返回指标标签值。 {{metric.label.instance_name}} grafana-1-prod
{{resource.label.xxx}} 返回资源标签值。 {{resource.label.zone}} us-east1-b
{{metadata.system_labels.xxx}} 返回元数据系统标签值。 {{metadata.system_labels.name}} grafana
{{metadata.user_labels.xxx}} 返回元数据用户标签值。 {{metadata.user_labels.tag}} production

示例别名依据:{{metric.type}} - {{metric.label.instance_name}}

示例结果:compute.googleapis.com/instance/cpu/usage_time - server1-prod

还可以解析受监控资源类型的名称。

别名模式格式 描述 示例结果
{{resource.type}} 返回受监控资源类型的名称。 gce_instance

示例别名依据:{{resource.type}} - {{metric.type}}

示例结果:gce_instance - compute.googleapis.com/instance/cpu/usage_time

SLO 查询

注意

SLO 查询仅在 Grafana v7.0+ 中可用

Google Cloud Monitoring 数据来源中的 SLO 查询生成器允许以时间序列格式显示 SLO 数据。要了解服务监控的基本概念,请参阅 Google Cloud Monitoring 官方文档

创建 SLO 查询

要创建 SLO 查询,请按照以下步骤操作:

  1. 查询类型下拉列表中选择服务级别目标(SLO)选项。

  2. 项目下拉列表中选择一个项目。

  3. 服务下拉列表中选择 SLO 服务

  4. SLO 下拉列表中选择 SLO

  5. 选择器下拉列表中选择时间序列选择器

Grafana 中显示了时间序列选择器的友好名称。下表显示了从友好名称到服务监控文档中使用的系统名称的映射。

选择器下拉列表值 使用相应的时间序列选择器
SLI 值 select_slo_health
SLO 合规性 select_slo_compliance
SLO 错误预算剩余 select_slo_budget_fraction

SLO 查询的别名模式

您可以使用“别名依据”字段控制 SLO 查询图例键的格式。

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

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

SLO 查询使用与指标查询相同的对齐周期功能。有关更多信息,请参阅 指标查询

模板化

您可以在指标查询中使用变量来代替服务器、应用程序和传感器名称等硬编码。变量显示为控制面板顶部的下拉选择框。您可以使用这些下拉框来更改控制面板中显示的数据。

有关模板化和模板变量的更多信息,请参阅 模板和变量

查询变量

您可以使用查询类型的变量查询 Google Cloud Monitoring,以获取各种类型的数据。Google Cloud Monitoring 数据来源插件提供了以下 Query Types

名称 描述
Metric Types 返回可用于指定服务的指标类型名称列表。
Labels Keys 返回指定指标中 metric labelresource label 的键列表。
Labels Values 返回指定指标中标签的值列表。
Resource Types 返回指定指标的资源类型列表。
Aggregations 返回指定指标的聚合列表(跨序列 reducer)。
Aligners 返回指定指标的 aligner 列表(按序列 aligner)。
Alignment periods 返回 Grafana 的 Google Cloud Monitoring 查询编辑器中可用的所有对齐周期列表。
Selectors 返回可用于 SLO(服务级别目标)查询的选择器列表。
SLO Services 返回可用于 SLO 查询的 Service Monitoring 服务列表。
Service Level Objectives (SLO) 返回指定 SLO 服务的 SLO 列表。

在查询中使用变量

共有两种语法:

  • $<varname> 示例:metric.label.$metric_label

  • [[varname]] 示例:metric.label.[[metric_label]]

为什么是两种? 第一种语法更容易读写,但不能在词中间使用变量。启用多值包含所有值选项后,Grafana 会将标签从纯文本转换为兼容正则表达式的字符串,这意味着您必须使用 =~ 而不是 =

Annotations

您可以使用注释在图形上叠加丰富的事件信息。您可以通过控制面板菜单/注释视图添加注释查询。注释呈现的开销很大,因此必须限制返回的行数。目前尚不支持显示 Google Cloud Monitoring 注释和事件,但其能够与 Google Cloud Monitoring 中的自定义指标配合使用。

有关注释的详细信息,请参阅注释

使用注释的查询编辑器,您可以选择指标和筛选条件。标题文本字段支持模板化,可使用从查询返回的数据。例如,“标题”字段可能包含以下文本:

{{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

从 Grafana 面板到 Google Cloud Console 中 Metrics Explorer 的深层链接

注意

此功能仅适用于指标查询。

在面板中选择一个时间序列,即可看到一个上下文菜单,其中包含指向“在 Google Cloud Console 的 Metrics Explorer 中查看”的链接。选择此链接将在 Google Cloud Console 中打开 Metrics Explorer,并从其中的 Grafana 面板运行查询。此链接会先将用户导航到 Google Account Chooser。成功选择账户后,用户将被重定向到 Metrics Explorer。提供的链接对任何账户都有效,但仅当您的账户有权访问查询中指定的 GCP 项目时,才会显示查询。