本文档介绍了如何将您在 Log Analytics 页面上运行的 SQL 查询的结果绘制成图表。图表可以帮助您识别数据中的模式和趋势。本文档还介绍了如何将图表保存到 自定义信息中心。
以下屏幕截图显示了一个示例查询的结果,本文档稍后将对此进行介绍。
该屏幕截图显示了 span 报告的状态,方法是按时间和 service_name 聚合响应:
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手, 请创建一个账号来评估我们的产品在 实际场景中的表现。新客户还可获享 $300 赠金,用于 运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Observability API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Observability API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
如需获得加载 Log Analytics 页面、写入和运行有关跟踪记录数据的查询以及将图表保存到自定义信息中心所需的权限,请让管理员为您授予以下 IAM 角色:
-
Observability View Accessor (
roles/observability.viewAccessor) 您要查询的可观测性视图。此角色支持 IAM Conditions,可让您将授予的权限限制为仅针对特定视图。如果您未向角色授予附加条件,则正文可以访问所有可观测性视图。 -
Logs Viewer (
roles/logging.viewer) 项目的。 -
项目的
Monitoring Editor (
roles/monitoring.editor)。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
-
Observability View Accessor (
选择要绘制成图表的数据
如需配置要在图表中显示的数据,请使用 SQL 构建查询。 选择图表标签页后,一个图表会显示查询结果。运行查询并生成图表后,您可以更改图表类型并选择列以查看不同的数据,从而自定义图表配置。
如需以图表形式查看查询结果,请按以下步骤运行查询:
-
在 Google Cloud 控制台中,前往 manage_search Log Analytics 页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
在查询窗格中,输入查询,然后点击运行。
查询完成后,在结果标签页中,选择查看查询结果的方式:
表:仅限表格式。
图表:仅限图表格式
二者均有:图表和表格式。
选择查看查询结果的方式后,您可以为所选的可视化效果配置任意字段,然后将查询和结果保存到自定义信息中心。选择表选项后,保存的格式为表格式。否则,格式为图表。
对于图表,您可以通过可视化效果选项选择图表类型,并选择绘制成图表的行和列。如需详细了解图表配置,请参阅自定义图表配置。
自定义图表配置
您可以通过更改图表类型、选择用于绘制图表的维度和测量以及应用细分来自定义图表配置。维度用于对行进行分组或分类,是 X 轴值。测量(或 Y 轴值)是针对 Y 轴绘制的数据系列。
更改图表类型
您可以从以下图表类型中进行选择,具体取决于您选择作为维度和测量的行和列的种类,以及您希望以何种方式直观呈现这些数据。
条形图(默认):条形图会在两条轴上绘制数据。如果您的图表使用类别或字符串作为维度,则可以将条形图的图表配置设置为水平或垂直(其中维度和测量轴会交换)。
折线图:折线图可用于显示数据随时间的变化情况。使用折线图时,每个时序都由一条与您选择的测量相对应的不同线条表示。
如果 X 轴基于时间,则每个数据点都位于间隔时间的开头。每个数据点通过线性插值进行连接。
堆积面积图:面积图基于折线图,每条线下方的区域都有阴影。在面积图中,数据系列会堆积。例如,如果您有两个相同的系列,则这两个系列在折线图中会重叠,但阴影区域在面积图中会堆积。
饼图或圆环图:饼图使用圆形表示整个数据集,并使用圆形中的扇形表示数据集中的类别,从而显示数据集中的类别与整个数据集的关系。扇形的大小表示相应类别在整体中所占的比重(通常以百分比表示)。
表:表会为查询结果中的每一行显示一行。表中的列由
SELECT子句定义。如果您计划在信息中心中以表形式显示数据,请使用LIMIT子句将结果中的行数限制在数百行以内。仪表盘或统计信息摘要图表:仪表盘和统计信息摘要图表会根据最新值与一组阈值的比较情况,为您提供该值以及绿色、琥珀色或红色指示。与仅显示有关最新值的信息的仪表盘不同,统计信息摘要图表还可以包含有关过去值的信息。
仅当查询结果至少包含一行数据,且该行包含一个具有时间戳的列和一个具有数值数据的列时,仪表盘和统计信息摘要图表才能显示查询结果。查询结果可以包含多行和多于两列的列。
如果您想在查询中执行基于时间的聚合,请执行以下操作:
配置查询,以聚合特定间隔时间内的数据、按时间戳降序排列结果以及限制结果中的行数。您可以使用
LIMIT子句或时间范围选择器来限制查询结果中的行数。例如,以下内容会查询跟踪记录数据,并按一小时的间隔聚合数据、应用限制以及对结果进行排序:
SELECT TIMESTAMP_TRUNC(start_time, HOUR) AS hour, COALESCE( JSON_VALUE(resource.attributes, '$."service.name"'), JSON_VALUE(attributes, '$."service.name"'), JSON_VALUE(attributes, '$."g.co/gae/app/module"')) AS service_name, status.code AS status, COUNT(*) AS count FROM `PROJECT_ID.LOCATION._Trace.Spans._AllSpans` GROUP BY hour, service_name, status ORDER BY hour DESC LIMIT 1000下面介绍了上一个表达式中字段的含义:
- PROJECT_ID:项目的标识符。
- LOCATION:可观测性存储桶的位置。
前面的查询用于生成本文档开头显示的图。该图还显示了图表配置。
设置维度 以匹配报告时间单位的列。 例如,如果您的查询按一小时聚合数据并创建一个名为
hour的列,请将维度菜单设置为hour。请选择停用间隔时间,因为您的查询已指定聚合间隔时间。在此示例中,此间隔时间为一小时。
将测量 设置为数值列,并将函数设置为无 。
如果您想让 Log Analytics 为您执行基于时间的聚合,请执行以下操作:
- 配置时间范围选择器,它会影响查询结果中的行数。
- 设置维度以匹配报告时间单位的列。例如,您可以将此菜单设置为
timestamp。 - 将间隔时间菜单设置为聚合间隔时间,以便设置为特定间隔时间。例如,可将此字段的值设置为
1 hour。请勿选择自动间隔时间。 - 将测量设置为数值列,然后选择一个函数,例如 sum。
更改维度和测量
您可以通过选择维度和测量字段来选择要绘制成图表的行和列。
维度
维度必须是时间戳、数值或字符串列。默认情况下,维度会设置为架构中的第一个基于时间戳的列。如果查询中不存在时间戳,则系统会选择第一个字符串列作为维度。您还可以在图表显示 面板中自定义维度。选择时间戳列作为维度后,图表会显示数据随时间的变化情况。选择字符串列作为条形图的维度后,您可以按升序或降序对数据进行排序,这会按词序对维度进行排序。您也可以保留“默认”排序顺序,该顺序会根据相应测量的值按降序对维度进行排序。
默认情况下,系统会自动设置时间戳的间隔时间,但您也可以选择自定义间隔时间。自动间隔时间会根据时间范围选择器更改值,以保持类似大小的组。
您也可以停用该间隔时间,以便在查询中指定自己的聚合和时间范围,从而进行更复杂的分析。停用间隔时间会将测量的聚合函数设置为
none。停用维度间隔时间后,仅允许使用数值指标。测量
您可以在图表显示面板中选择多个测量。选择测量时,您还必须选择要对其分组值执行的聚合函数,例如
count、sum、average和percentile-99。例如,count-distinct会返回给定列中的唯一值数量。如果您为维度选中停用间隔时间复选框,则可使用
none聚合函数选项。如果维度是字符串值,则系统不会显示停用间隔时间复选框。不过,将测量的聚合函数设置为none也会停用间隔时间。
添加细分维度
如需根据其他列将单个数据系列拆分为多个数据系列,请添加细分。
选择细分时,请选择包含少量简短且有意义的标签(例如 region_name)的列,而不是可能包含大量字符串或长字符串(例如 textPayload)的字段。
例如,以下图表显示了每个服务创建的 span 数量,以及按 span 名称细分的数据:

将图表保存到自定义信息中心
从查询生成图表后,您可以将该图表保存到自定义信息中心。通过自定义信息中心,您可以使用各种 widget 类型来显示和整理对您有用的信息。您还可以通过这些信息中心定义变量,即仅应用于特定 widget 的信息中心级过滤条件。如需将变量应用于 widget,您必须修改查询。如需了解详情,请参阅 将变量应用于 widget。
当查询在 BigQuery 引擎上运行且查询的资源不在同一所有权边界内时,信息中心会为包含 SQL 查询的 widget 显示警告消息。所有权边界由多种因素决定,其中之一是查询使用的资源的层次结构。如需避免这些警告, 请设置服务边界。
如需将图表保存到信息中心,请执行以下操作:
-
在 Google Cloud 控制台中,前往 manage_search Log Analytics 页面:
如果您使用搜索栏查找此页面,请选择子标题为 Logging 的结果。
运行查询以生成图表,然后点击图表标签页中的 保存图表。
在保存至信息中心对话框中,输入图表的标题,然后选择要将图表保存到其中的信息中心。
可选:如需查看自定义信息中心,请在消息框中点击查看信息中心。
如需查看包含由 SQL 查询生成的图表的自定义信息中心列表,请找到保存图表按钮,然后点击 arrow_drop_down 菜单。
修改已保存到自定义信息中心的图表
您可以在图表保存到信息中心后对其进行修改。如需了解详情,请参阅修改 widget 的配置。在配置 widget 对话框中,您可以执行以下操作:
- 更改您查询的数据。
- 修改用于生成图表的查询。
- 自定义图表配置,以直观呈现不同的数据。
限制
如果您的 Google Cloud 项目位于使用 Assured Workloads 的文件夹中,则您生成的图表无法显示在自定义信息中心上。
信息中心级过滤条件不适用于通过 SQL 查询生成的图表。
所选列应至少有一行包含非 null 值。
如果您保存查询并自定义图表配置,则自定义图表配置不会保存。
如果您的查询已包含聚合,则生成的图表可能会因 Log Analytics 自动应用的其他聚合而有所不同。
JSON 路径必须转换为字符串或数字,才能将其绘制成图表。