本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
连接到 Google Cloud Monitoring 数据来源
注意
在 Grafana 的早期版本中,此数据来源被命名为 Google Stackdriver。
添加 Google Cloud Monitoring 数据来源,以便为您的 Google Cloud Monitoring 指标构建控制面板。
添加数据来源
-
选择顶部标题中的 Grafana 图标,打开侧边菜单。
-
在侧边菜单的控制面板链接下,您应该可以找到数据来源链接。
-
选择顶部标题中的 + 添加数据来源按钮。
-
从类型下拉列表中选择 Google Cloud Monitoring。
-
上传或粘贴服务账户密钥文件。有关创建服务账户密钥文件的步骤,请参阅本文档稍后的部分。
注意
如果您在侧边菜单中看不到数据来源链接,则说明您当前的用户没有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 服务账户
-
导航到 “APIs和服务凭证” 页面
。 -
选择创建凭证下拉菜单/按钮,然后选择服务账户密钥选项。
{{< docs-imagebox img=”/img/docs/v71/cloudmonitoring_create_service_account_button.png “class= “docs-image—no-shadow” caption= “创建服务账户按钮” >}}
-
在创建服务账户密钥页面上,选择密钥类型
JSON
。然后,在服务账户下拉列表中,选择新建服务账户选项。{{< docs-imagebox img=”/img/docs/v71/cloudmonitoring_create_service_account_key.png “class= “docs-image—no-shadow” caption= “创建服务账户密钥” >}}
-
一些新的字段将会出现。在服务账户名称字段中填写服务账户的名称,然后从角色下拉列表中选择监控查看者角色。
{{< docs-imagebox img=”/img/docs/v71/cloudmonitoring_service_account_choose_role.png “class= “docs-image—no-shadow” caption= “选择角色” >}}
-
选择创建按钮。一个 JSON 密钥文件将会创建并下载到您的计算机上。将此文件存储在安全的地方,因为其允许访问 Google Cloud Monitoring 数据。
-
将其上传到数据来源配置页面上的 Grafana。您可以上传文件或粘贴文件内容。
{{< docs-imagebox img=”/img/docs/v71/cloudmonitoring_grafana_upload_key.png “class= “docs-image—no-shadow” caption= “将服务密钥文件上传到 Grafana” >}}
-
文件内容将会加密并保存在 Grafana 数据库中。上传文件后不要忘记保存!
{{< docs-imagebox img=”/img/docs/v71/cloudmonitoring_grafana_key_uploaded.png “class= “docs-image—no-shadow” caption= “服务密钥文件已上传到 Grafana” >}}
使用 查询编辑器
Google Cloud Monitoring 查询编辑器让您可以构建两种类型的查询:指标和服务级别目标(SLO)。两种类型都将返回时间序列数据。
指标查询
指标查询编辑器允许选择指标,按标签和时间分组/聚合,并使用筛选条件指定要在结果中显示哪个时间序列。
要创建指标查询,请按照以下步骤操作:
-
在查询类型下拉列表中选择指标选项。
-
从项目下拉列表中选择一个项目。
-
从服务下拉列表中选择 Google Cloud Platform 服务。
-
从指标下拉列表中选择一个指标。
-
要添加或移除 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
。这将根据所选的时间范围和图形面板的宽度自动设置按时间分组。有关更多信息,请参阅 添加间隔变量。
也可以选择按固定时间间隔分组,如 1h
或 1d
。
分组依据
按资源或指标标签分组,以减少时间序列的数量,并按分组依据聚合结果。例如,按 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 查询,请按照以下步骤操作:
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 label 和 resource 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 项目时,才会显示查询。