本文档介绍了如何配置一个临时图表来显示项目收集的时间序列数据。Metrics Explorer 只能显示数值型时间序列数据。
选择要显示的数据
如需配置要在图表上显示的时序,您可以从菜单中选择来构建查询,也可以编写查询。编写查询时,您需要选择查询语言,然后使用查询编辑器或基于文本的界面:
Monitoring Query Language (MQL) 查询指定时序以及这些时序的分组和对齐方式。MQL 界面支持带有建议和语法检查的代码编辑器。
通常情况下,无法将 MQL 查询转换为可供其他接口使用的表单。当您切换到或从 MQL 标签页切换到该标签页时,未保存的查询将被舍弃。
Prometheus 查询语言 (PromQL) 查询指定了时序以及这些时序的分组和对齐方式。PromQL 接口支持包含建议的编辑器。
通常,无法将 PromQL 查询转换为可供其他接口使用的表单。当您切换到 PromQL 标签页或从该标签页切换到 PromQL 标签页时,未保存的查询将被舍弃。
监控过滤条件查询会指定时序,但不包含分组或校准语句。
您可以使用 Monitoring 过滤条件指定 Monitoring 可绘制图表的任何时序。例如,如需绘制虚拟机上运行的进程数量图表,您必须使用指定函数的 Monitoring 过滤条件。
并不总是能够将 Monitoring 过滤器转换为其他接口所需的形式。因此,如果切换到其他界面,您的查询可能会被舍弃。
查询通常会指定指标类型、资源类型和过滤条件:
指标类型用于标识要从资源收集的测量值。指标类型包括对要测量的内容以及如何解释测量结果的说明。指标类型有时被称为指标。“CPU 利用率”就是一个指标示例。 如需了解概念性信息,请参阅指标类型。
资源类型用于指定从哪种资源中捕获指标数据。资源类型有时称为“受监控的资源类型”或“资源”。例如,“Compute Engine 虚拟机 (VM) 实例”就是资源。如需了解概念性信息,请参阅受监控的资源。
MQL 和 PromQL 查询都包含分组和对齐语句。但是,在编写 Monitoring 过滤条件或使用菜单来选择图表的时序时,可以使用菜单来配置分组和校准设置。
使用菜单构建查询
使用菜单构建查询是默认配置。通常,如果您选择指标和过滤条件,然后切换到其他界面,系统会保留您的选择,并针对该界面重新设置格式。也就是说,由菜单构建的查询可以转换为 MQL 查询。
您可以选择 tune 构建器,从其他界面返回到菜单驱动的界面。不过,系统会舍弃您的查询。 也就是说,MQL 查询无法转换为等效的菜单驱动型表单。
如需使用菜单构建查询,请执行以下操作:
-
在 Google Cloud 控制台中,转到 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
在查询窗格的工具栏中,执行以下操作:
在指标元素中,展开选择指标菜单。
选择指标菜单包含可帮助您查找可用指标类型的功能:
如需查找特定的指标类型,请使用 filter_list 过滤条件栏。例如,如果您输入
util
,则可以将菜单限制为仅显示包含util
的条目。如果条目通过了不区分大小写的“包含”测试,系统就会显示条目。如需显示所有指标类型(包括没有数据的指标类型),请点击
活跃。默认情况下,菜单仅显示带有数据的指标类型。
从资源菜单、指标类别菜单、指标菜单中进行选择,然后点击应用。
例如,如需绘制 Compute Engine 虚拟机的 CPU 利用率图表,您可以选择虚拟机实例、实例、CPU 利用率,然后点击应用。
资源菜单列出了从中收集数据的资源。如果指标不是针对资源写入,请选择未指定。
选择资源类型和指标后,图表会显示该对的所有可用时序:
上一个图表包含的数据过多,无法全部显示;图表可显示的线数上限为 50 行。图表会提示数据过多,无法显示。如需减少数据量,请在查询工具栏中使用排序和限制元素。如需了解详情,请参阅显示离群值。
您还可以使用过滤和聚合选项来减少绘制成图表的数据量。这些方法使图表对诊断和分析更有用,并且可以提高界面本身的性能和响应能力。
可选:添加过滤条件以限制显示的时序。下一部分将介绍过滤选项。
可选:配置时序的分组和对齐方式。如需了解详情,请参阅选择如何显示已绘制成图表的数据。
过滤已绘制成图表的数据
过滤条件可确保仅将符合某些条件的时序绘制成图表。应用过滤条件时,您可以减少图表上的线条数量,从而提升图表的性能。提高图表响应能力的另一种方法是配置汇总选项,以及对显示的时序进行排序和限制数量。如需了解详情,请参阅显示离群值。
过滤器由标签、比较运算符和值组成。例如,如需匹配 zone
标签以 "us-central1"
开头的所有时序,您可以使用过滤条件 zone=~"us-central1.*"
,该过滤条件使用正则表达式执行比较。比较运算符有四种:
- 等于、
=
- 不等于、
!=
- 正则表达式匹配,
=~
- 正则表达式不匹配:
!=~
按项目 ID 或资源容器进行过滤时,您必须使用等号运算符 (=)
。按其他标签过滤时,您可以使用任何受支持的比较运算符。通常,您可以按资源组过滤指标和资源标签。
如果您提供了多个过滤条件,对应的图表将仅显示符合所有条件(即逻辑 AND
)的时序。
如需在使用 Google Cloud 控制台的菜单驱动型界面时添加过滤条件,请执行以下操作:
在过滤条件元素中,点击添加过滤条件,然后从菜单中进行选择。
要更改比较方式,请从比较条件菜单中选择一个值。
在值字段中,输入或选择值:
对于直接比较(使用
=
或!=
),请从菜单中选择值或输入一个值,然后点击 Ok。您可以输入us-central1-a
等值,也可以创建以starts_with
或ends_with
开头的过滤条件字符串。例如,如需显示任何us-central1
可用区的数据,您可以输入过滤条件字符串starts_with("us-central1")
。如需详细了解如何过滤字符串,请参阅 Monitoring 过滤条件。由于菜单条目是从收到的时序中派生的,因此当受监控的资源没有为所选指标生成数据时,您必须为标签输入一个值。
对于正则表达式比较(
=~
或!=~
),请在值字段中输入 RE2 正则表达式,然后点击确定。例如,正则表达式us-central1-.*
可与所有us-central1
区域匹配:如需匹配以“a”结尾的任何美国可用区,您可以使用正则表达式
^us.*.a$
。注意:您不能使用正则表达式来过滤
project_id
资源标签。例如,如需仅查看某个
us-central1
地区的时序,请应用zone=~"us-central1.*"
过滤条件。
如果您添加多个过滤条件,请注意以下几点:
您可以多次使用同一标签,这样您就可以为一系列值指定过滤条件。
必须满足所有过滤条件;它们构成逻辑
AND
。
如需修改过滤条件的值或比较运算符,请在过滤条件元素上点击 arrow_drop_down 菜单,进行更改,然后点击确定。
要删除过滤器,请点击 cancel 取消。
编写 MQL 查询
如需输入 MQL 或 PromQL 查询,请执行以下操作:
-
在 Google Cloud 控制台中,转到 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在查询构建器窗格的工具栏中,选择名为 code MQL 或 code PromQL 的按钮。
- 验证已在语言切换开关中选择 MQL。语言切换开关位于同一工具栏中,用于设置查询的格式。
- 可选:停用自动运行切换开关。
-
在查询编辑器中输入查询。例如,如需绘制 Google Cloud 项目中虚拟机实例的 CPU 利用率的图表,请使用以下查询:
fetch gce_instance | metric 'compute.googleapis.com/instance/cpu/utilization' | group_by 1m, [value_utilization_mean: mean(value.utilization)] | every 1m
如需详细了解 MQL,请参阅以下文档:
点击运行查询。
启用自动运行切换开关后,不会显示运行查询按钮。
编写 PromQL 查询
如需输入 MQL 或 PromQL 查询,请执行以下操作:
-
在 Google Cloud 控制台中,转到 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
- 在查询构建器窗格的工具栏中,选择名为 code MQL 或 code PromQL 的按钮。
- 验证已在语言切换开关中选择 PromQL。语言切换开关位于同一工具栏中,用于设置查询的格式。
- 可选:停用自动运行切换开关。
-
在查询编辑器中输入查询。例如,如需绘制 Google Cloud 项目中虚拟机实例的平均 CPU 利用率的图表,请使用以下查询:
avg(compute_googleapis_com:instance_cpu_utilization)
如需详细了解如何使用 PromQL,请参阅 Cloud Monitoring 中的 PromQL。
点击运行查询。
启用自动运行切换开关后,不会显示运行查询按钮。
编写 Monitoring 过滤条件查询
如果您想执行以下任一操作,则必须使用直接过滤模式,在该模式下您可以输入 Monitoring 过滤条件:
- 显示服务等级目标 (SLO)。
- 显示虚拟机上运行的进程数量。
- 显示您尚未掌握数据的自定义指标。
- 根据您没有数据的标签过滤时序。
Monitoring 过滤条件(或等效的指标过滤条件)是 Monitoring 用于标识要绘制图表的时序的表达式。例如,以下表达式会导致一个图表显示名称中包含 nginx
的进程的数量:
select_process_count("monitoring.regex.full_match(\".*nginx.*\")")
resource.type="gce_instance"
您还可以使用 Monitoring 过滤条件按资源和指标类型标识时序。以下表达式生成的一个图表会显示 us-east1-b
区域中所有 Google Cloud 虚拟机实例的日志条目计数:
metric.type="logging.googleapis.com/log_entry_count"
resource.type="gce_instance"
resource.label."zone"="us-east1-b"
要输入 Monitoring 过滤条件,请执行以下操作:
-
在 Google Cloud 控制台中,转到 leaderboard Metrics Explorer 页面:
如果您使用搜索栏查找此页面,请选择子标题为监控的结果。
点击 Metric 元素上的 help_outline Help,然后选择 Direct Filter Mode。
系统会删除 Metric 和 Filter 元素,并创建用于输入文本的 Filters 元素。
如果您在切换到直接过滤模式模式之前选择了资源类型、指标或过滤条件,这些设置将显示在 Filters 元素中。
在过滤条件元素的文本区域中,输入 Monitoring 过滤条件表达式。如需了解语法信息,请参阅以下文档:
如果您使用直接过滤模式,但没有符合该过滤条件的数据,系统会显示错误。常见错误消息包括
Chart definition invalid
和No data is available for the selected timeframe.
可选:配置时序的分组和对齐方式。如需了解详情,请参阅选择如何显示已绘制成图表的数据。
如需返回菜单驱动型界面,请点击 tune 退出直接过滤模式。
选择如何显示已绘制成图表的数据
本部分介绍了如何通过设置聚合字段来显示所选数据。聚合包括校准时序中的数据点,以及将不同的时序组合在一起。如需详细了解聚合,请参阅过滤和聚合:处理时序。
- 如需了解视图选项,请参阅设置图表显示选项。
- 如需详细了解与图表本身的交互,请参阅研究已绘制成图表的数据。
如果您使用 MQL 或 PromQL 选择将数据绘制成图表,则本部分的内容不适用。
合并时序
您可以通过组合不同的时序来减少为指标返回的数据量。如需组合多个时序,您通常需要指定一个或多个标签和一个函数。对所有指定标签具有相同值的时序会进行分组,然后您指定的函数将这些时序组合为新的时序。
Aggregation 元素中的设置可以更改图表显示的时序的数量。此元素的默认设置由您选择的指标类型决定。如需修改显示内容,请执行以下任一操作:
如需显示每个时序,请确保在 Aggregation 元素中,将第一个菜单设置为 Unaggregated,将第二个菜单设置为 None。
如需合并时序,请在 Aggregation 元素中执行以下操作:
展开第一个菜单并选择一个函数。
系统会刷新图表并显示单个时序。例如,如果您选择平均值,则显示的时序是所有时序的平均值。
如需合并具有相同标签值的时序,请展开第二个菜单,然后选择一个或多个标签。
系统会刷新图表,并为每个唯一的标签值组合显示一个时序。例如,如需按可用区显示时序,请将第二个菜单设置为 zone。
如需配置数据点之间的间距,请点击 add 添加查询元素,选择最小间隔,然后输入一个值。
例如,如果将函数设置为 Sum 并选择标签 user_labels.version,则标签 user_labels.version 的每个值都有一个时序。每个时序中的数据点是根据特定版本的单个时序的所有值的总和计算的:
选择多个标签时,系统会将所选标签具有相同值的时序合并。生成的图表显示每个标签组合的一个时序。指定标签的顺序无关紧要。以下屏幕截图显示了时序按 user_labels.version 和 system_labels.machine_image 标签合并的图表:
如下所示,图表会针对每对标签值显示一个时序。对于每种标签组合,您都会获得时序,这意味着这种方法创建的数据会多于您在单个图表上产生的数据。
显示所有时序
如需显示所有时序,请在 Aggregation 元素上将第一个菜单设置为 Unaggregated,并将第二个菜单设置为 None。
校准时序
校准是将 Monitoring 接收到的时序数据转换为在固定时间间隔内具有数据点的新时序的过程。校准过程包括收集在固定时间段内收到的所有数据点、应用函数以组合这些数据点,以及为结果分配时间戳。该函数可能会计算所有样本的平均值,或者提取所有样本的最大值。
设置校准间隔
如需为要组合的数据点指定固定的时间长度,请点击查询窗格中的 add 添加查询元素,选择最小间隔,然后完成对话框。
例如,假设某个指标的采样周期为一分钟。如果图表配置为显示 1 小时的数据,则图表可以显示全部 60 个数据点。如果 Min Interval 字段设置为 10 minutes
,则图表会显示 6 个数据点。但是,如果您现在将图表配置为显示一周的数据,那么图表中要显示的点太多,因此数据点合并的时间间隔会自动修改。在此示例中,修改后的间隔为 1 小时。
以下屏幕截图说明了特定 Google Cloud 项目中 Compute Engine 虚拟机实例的 CPU 利用率。在此图片中,Min Interval 字段设置为 1 minute
:
为了便于比较,以下屏幕截图说明了将间隔时间从 1 minute
更改为 5 minutes
的效果:
通过增加此时间段,生成的图表的点数会减少,每个时序的 60 点数将减少到每个时序 10 个点。通过增大 Min Interval 字段,可以合并更多的点,从而对绘制的数据实现平滑效果。
设置对齐函数
当您选择用于聚合的函数时,Cloud Monitoring 会为您选择校准函数。Cloud Monitoring 会根据您选择的指标类型和您对聚合函数的选择来确定最佳校准函数。但是,您可以指定校准函数并替换 Cloud Monitoring 所做的选择。
如需指定校准函数,请执行以下操作:
- 在 Aggregation 元素中,展开第一个菜单,然后选择 ConfigureAligner。添加了对齐函数和分组元素。
- 展开对齐函数元素并做出选择。
大多数支持的校准函数执行常见的数学函数,但有些函数执行更复杂的操作:
next 较旧版本:要仅保留某个校准时间段内的最新样本,请选择下一个较旧。此函数通常与拨测搭配使用,如果您只关心最新值,则非常适合使用此函数。
此函数仅对刻度盘指标有效。
百分位:要在折线图、堆叠面积图或堆叠条形图上显示分布指标,您必须选择要显示分布中的哪个百分位。指定此百分位的一种方法是选择百分位函数。您可以选择第 5、第 50、第 95 和第 99 百分位。使用校准时间段内的所有数据点来计算指定的百分位,从而确定校准数据点。
此函数仅在刻度盘指标和增量指标具有分布数据类型时有效。
delta:如需将累积指标或增量指标转换为每个校准时间段一个样本的增量指标,请使用此函数。使用此函数时可能会发生数据插值。如需查看示例,请参阅种类、类型和转换。
此函数仅对累计指标和增量指标有效。
rate:如需将累计指标或增量指标转换为刻度盘指标,请使用此函数。如果选择此函数,可以将时序看作是使用增量函数进行转换,然后除以校准时间段。例如,如果原始时序的单位为 MiB,校准时间段的单位为秒,则图表的单位为每秒 MiB。如需了解详情,请参阅种类、类型和转换。
此函数仅对累计指标和增量指标有效。
如需详细了解可用的对齐函数,请参阅 API 参考文档中的 Aligner
。
次要分组和对齐
如果您有多个已经表示聚合的时序,则可以通过选择二次聚合器将图表上的所有时序减少为单个时序。例如,如果按可用区对数据进行分组,则图表会针对每个可用区显示一个时序。如需创建包含单个时序的图表,请使用二次聚合字段。
对于某些指标类型,您可以选择转换数据。如果此选项可用,并且您将 Transform 字段设置为 None 以外的值,则所有其他字段都是二次聚合设置。
当二次聚合字段可配置时,如需访问这些字段,请执行以下操作:
- 点击 add 添加查询元素,然后选择二次聚合。
- 配置二次聚合元素。
以下屏幕截图显示了对过滤的数据集进行分组所形成的几个时序。进行分组时需要执行聚合操作;同时,每组数据线都会聚合成一条数据线。以下屏幕截图显示了按地区分组的时序:
以下屏幕截图显示了使用二次聚合查找分组时序中的平均值的结果:
配置图例列的名称
通过 Legend Alias 字段,您可以为图表上的时序自定义说明。这些说明显示在图表的工具提示上以及 Name 列中的图表图例上。默认情况下,系统会根据时序中不同标签的值创建图例中的说明。由于这些标签由系统选择,生成的结果可能对您来说没有什么用处。如需构建说明的模板,请使用此字段。
您可以在图例别名字段中输入纯文本和模板。添加模板时,请添加一个会在图例显示时评估的表达式。
如需向图表添加图例模板,请执行以下操作:
- 在 Display 窗格中,展开 expand_more Legend Alias。
- 点击 add 显示模板变量建议,然后从菜单中选择一个条目。例如,如果您选择
zone
,则系统会添加模板${resource.labels.zone}
。
例如,以下屏幕截图显示了包含纯文本和表达式 ${resource.labels.zone}
的图例模板:
在图表图例中,通过模板生成的值显示在标题为名称的列中以及提示中:
您可以将图例模板配置为包含多个文本字符串和模板;但是,提示上的可用显示空间有限。