视图变量¶
在动态可视化数据分析中,视图变量起到了关键的作用。它允许用户通过更改一个或多个视图变量的值来实时更新可视化结果。这种实时联动性能帮助用户根据自身需求动态地筛选和分析数据,从而更深入地理解数据背后的故事。
添加视图变量¶
点击进入视图变量 tab 页面:
如需添加视图变量,点击进入新建页面:
变量名:当前视图变量集合所属的变量名称,在仪表板中添加图表时,需要在图表查询中引用,格式为:#{变量名}
。
显示名:当前视图变量集合在仪表板中显示的名称,例如:变量名为 host
,显示名为 主机名
。
- 排序:针对查询返回的视图变量进行默认、升降、排序排列。
显示选项
- 是否隐藏:开启该功能后,在非编辑模式下,该变量在仪表板内不可见。
- 包含 * 选项:默认开启。
- 是否多值:即允许同时选择多个值。。
默认值:当前视图变量在仪表板中的初始变量。此处的下拉框会基于您在显示选项的配置列出变量,可选择在仪表板默认查看的初始变量。若默认值为空,则在仪表板显示最新的字段数据。
- *:条件为空(null),针对
by
条件不做筛选; - All values:将视图变量查询语句得到的结果值当作变量传参;
- 自定义:直接在选择栏输入值后回车创建。您可以在选择栏搜索查找您的目标变量。
点击选中,即可选中当前列表的所有值。
注意:若工作空间数据断档上报,在配置视图变量时无法选择数据,可在配置时预设字段,数据正常上报后,会自动匹配字段。
针对已创建好的视图变量,您可按需进行克隆、再次编辑或删除。
若您在配置视图变量时选择隐藏某一变量,则该变量会在列表右侧显示 隐藏按钮。
变量查询¶
视图变量支持 DQL 查询、PromQL 查询、UI 查询、自定义四种查询方式。
取值范围¶
视图变量的取值范围有两种方式:
跟随仪表板联动,即根据仪表板的时间控件所选的时间范围列出变量查询的数据;
不跟随仪表板联动,即列出变量查询的所有数据,不受仪表板时间控件所选的时间范围影响。
下面是不同数据来源变量查询的取值范围说明:
数据类型 | 指标集 | 标签 | 默认值 |
---|---|---|---|
指标 | SHOW_MEASUREMENT() 函数; 该函数不支持添加时间筛选; 取值范围:当前工作空间所有的指标集。 |
SHOW_TAG_KEY(from=['指标集名']) 函数; 该函数不支持添加时间筛选; 取值范围:当前工作空间选定指标集下面的标签。 |
SHOW_TAG_VALUE(from=['指标集名'], keyin=['标签名']); 该函数不支持添加时间筛选。 |
数据类型 | 分类 | 属性/标签 | 默认值 |
---|---|---|---|
基础对象 | O::RE(.* ):(DISTINCT_BY_COLLAPSE(class ));该函数支持添加时间筛选,跟随仪表板时间控件联动; 取值范围:选定时间内的所有默认 index 下的 source 值。 |
SHOW_OBJECT_FIELD('kubernetes_nodes'); 该函数不支持添加时间筛选; 取值范围:当前工作空间对象数据下的所有字段。 |
O::kubernetes_nodes :(DISTINCT_BY_COLLAPSE(namespace ));该函数支持添加时间筛选,跟随仪表板时间控件联动。 |
数据类型 | 分类 | 属性/标签 | 默认值 |
---|---|---|---|
资源目录 | CO::RE(.* ):(DISTINCT_BY_COLLAPSE(class ));该函数支持添加时间筛选,跟随仪表板时间控件联动 取值范围:选定时间内的所有默认 index 下的 source 值。 |
SHOW_CUSTOM_OBJECT_FIELD('class值'); 该函数不支持添加时间筛选; 取值范围:当前工作空间资源目录数据下的所有字段 |
CO::cdsmnl :(DISTINCT_BY_COLLAPSE(cds ));该函数支持添加时间筛选,跟随仪表板时间控件联动。 |
数据类型 | 日志来源 | 属性 | 默认值 |
---|---|---|---|
日志 | L::RE(.* ):(DISTINCT_BY_COLLAPSE(source ));该函数支持添加时间筛选,跟随仪表板时间控件联动; 取值范围:选定时间内的所有默认 index 下的 source 值。 |
SHOW_LOGGING_FIELD(index='default'); 该函数不支持添加时间筛选; 取值范围:当前工作空间日志数据下的所有字段。 |
L::RE(.* ):(DISTINCT_BY_COLLAPSE(trace_id ));该函数支持添加时间筛选,跟随仪表板时间控件联动。 |
数据类型 | 属性 | 默认值 |
---|---|---|
应用性能监测 | SHOW_TRACING_FIELD(); 该函数不支持添加时间筛选; 取值范围:当前工作空间链路数据下的所有字段。 |
T::RE(.* ):(DISTINCT_BY_COLLAPSE(resource ));该函数支持添加时间筛选,跟随仪表板时间控件联动。 |
数据类型 | 数据分类 | 属性 | 默认值 |
---|---|---|---|
用户访问监测 | R::RE(.* ):(DISTINCT_BY_COLLAPSE(source ));该函数支持添加时间筛选,跟随仪表板时间控件联动; 取值范围:选定时间内的所有默认 index 下的 source 值。 |
SHOW_RUM_FIELD('source值'); 该函数不支持添加时间筛选; 取值范围:当前工作空间用户访问数据下的所有字段。 |
R::error :(DISTINCT_BY_COLLAPSE(province ));该函数支持添加时间筛选,跟随仪表板时间控件联动。 |
数据类型 | 属性 | 默认值 |
---|---|---|
安全巡检 | SHOW_SECURITY_FIELD(); 该函数不支持添加时间筛选; 取值范围:当前工作空间安全巡检数据下的所有字段。 |
S::RE(.* ):(DISTINCT_BY_COLLAPSE(rule ));该函数支持添加时间筛选,跟随仪表板时间控件联动。 |
DQL 查询¶
在 DQL 查询过程中,支持用户直接手写 DQL 语句,查询返回对应的数据值,您可以在查询中添加时间范围筛选和配置级联查询。
点击 了解更多 DQL 定义和语法。
DQL 语句查询示例:
注意:基础设施、日志等非指标数据建议使用该方式。
语法 | 说明 |
---|---|
数据源类型::数据来源:(distinct('属性字段名')){筛选条件} | M/metric - 时序指标数据; O/object - 对象数据; L/logging - 日志数据; E/event - 事件数据; T/tracing - 追踪数据; R/rum - RUM 数据。 |
R::view:(distinct(app_id )) |
返回 web 应用用户访问监测的 app_id 列表。 |
R::view:(distinct(env )){app_id = '8f05003ebccad062'} |
返回 Web 应用用户访问监测 app_id=8f05003ebccad062 对应的 env 列表。 |
R::view:(distinct(env )){app_id = #{appid} } |
通过在 DQL 语句中使用 #{变量名} ,可用于级联查询,表示上一条查询的变量名设为 app_id ,则返回上条变量中所选 app_id 对应的 env 列表。 |
添加时间范围说明¶
视图变量使用 DQL 语句查询时,支持以 [xx:xx:xx] 的格式添加数据查询的时间范围:
- 若在 DQL 查询中添加了时间范围,则优先使用 DQL 查询中的时间范围;
- 若在 DQL 查询中未添加时间范围,则默认使用仪表板时间控件所选的时间范围。
示例:
Show 函数查询¶
在使用 DQL 查询时,支持使用 Show 函数来查询返回对应的数据值,Show 函数不支持添加时间范围筛选。
点击 了解更多 DQL 函数说明。
Show 函数查询示例:
注意:指标数据建议使用该查询方式。
语法 | 说明 |
---|---|
show_measurement() |
返回当前工作空间所有的指标集。 |
show_tag_key(from=["cpu"]) |
返回当前工作空间指标集 cpu 下面的标签。 |
show_tag_key(from=["cpu"],keyin=["host"]) |
查询当前工作空间指标集 cpu 的 host 标签值列表。 |
PromQL 查询¶
在 PromQL 查询中,支持手写查询语句。查询中默认使用仪表板时间控件所选时间,并查询返回对应的数据值。
关于 PromQL 查询相关信息,可参考 PromQL 快速上手。
UI 查询¶
在 UI 查询中,支持选择指标、基础对象、资源目录、日志、应用性能、用户访问、安全巡检数据来源,通过直接在 UI 上点击选择查询变量,查询返回对应的数据值。
在 UI 查询中,您无法添加时间范围和配置 级联查询。
自定义查询¶
自定义是指用户可以直接定义一组数值用于视图变量使用,无需通过查询语句获取相关值;自定义变量选项中的内容,每个选项之间用英文 ,
隔开。自定义查询不支持添加时间范围和配置级联查询。
级联查询¶
当需要配置两个以上视图变量,且第二个视图变量需要基于第一个视图变量查询的结果的来进行联动查询时,可以使用级联查询,以此类推,级联查询可以支持多个视图变量的联动查询。
注意:级联查询仅支持 DQL 语句来进行查询配置。
示例¶
下面以用户访问监测配置 Web 应用概览视图变量级联筛选为例,需要基于应用 ID、环境和版本进行联动查询。
配置说明:
应用 ID、环境和版本有三个变量,故需要在仪表板配置三条变量查询语句。在第二和第三条查询语句使用上一级配置的 #{变量名}
,即可完成级联查询配置。
- 变量 1(应用 ID):查询应用名称为
df_web_rum_sdk
的应用列表:
- 变量 2(环境):查询应用名称为
df_web_rum_sdk
,且变量 1 中所选应用 ID 下的环境列表:
- 变量 3(版本):查询应用名称为
df_web_rum_sdk
,且变量 2 中所选环境下的版本列表:
R::view:(distinct(`version`)) {app_id = `#{appid}` and env = `#{env}` and sdk_name = `df_web_rum_sdk`}
逻辑运算符¶
逻辑运算符 | 变量值匹配类型 | 示例 |
---|---|---|
= 、!= | 精确匹配,支持多选。 | R::view:(distinct(env )) {app_id = #{appid} |
match(re)、not match(re) wildcard、not wildcard |
模糊匹配,支持多选。 | R::view:(distinct(env )) {app_id = re(#{appid} )} |
添加对象映射¶
针对基础设施对象数据可以设置字段映射,字段映射只是出于改善显示效果的目的,并不会影响原字段数据。
如需添加对象映射,点击进入新建页面:
选择数据来源、对象分类。以及需要映射的两个属性字段。例如:将 container_id
映射显示为 container_name
。那么在仪表板中,视图变量值将以 container_name (container_id)
的形式显示,但是在查询时,仍然会传递 container_id
的值。此外,如果在图表设置中启用了字段映射功能,图表的图例将显示映射后的字段值。
针对已创建好的对象映射,您可按需进行再次编辑或删除。
场景示例¶
视图变量配置示例¶
1、视图变量创建完成后,要在图表中关联此变量,实现图表与视图变量的联动筛选。
1)在图表查询中,筛选字段时,value
值选中该变量即可。(此处下拉中显示的是变量名)
2)在场景视图中切换变量值,图表将根据变量标签进行筛选展示。
2、在图表中,选中特定时间线或数据点,可直接点击实现反向添加,实现全局联动查看选中值相关的图表数据分析。
注意:
- 前提:其对应的 DQL 中存在 by 分组条件;
- 涉及图表范围:时序图、概览图、饼图、排行榜、仪表盘、柱状图、散点图、气泡图、表格图、矩形树图、中国地图、世界地图、蜂窝图
1)点击特定时间线或数据点后,在显示的卡片中点击应用到视图变量下的设置条件。
2)即可填充到仪表板的视图变量中。效果显示如下:
对象映射配置示例¶
对象映射可以应用在两个地方:视图变量的下拉显示中和图表的显示中。
在视图变量中应用¶
在视图变量中添加对象的【属性字段】,若该字段同样设置了字段映射,那么在视图变量中显示为:映射的字段(查询的字段)。
举例说明:
1)在【视图变量】中添加了 container_id
变量(如下图所示)。
2)在【对象映射】中设置 container_id
映射为 container_name
。
3)此时在视图中变量显示为:container_name(container_id)
。
在图表中应用¶
在图表中查询了对象的属性字段,并在设置中开启字段映射,若该字段同样设置了字段映射,那么在图表变量中显示为:映射的字段(查询的字段)。
举例说明:
1)在对象映射中设置 host
映射为 name
(如下图所示):
2)在图表查询中使用该字段,并且在设置中开启字段映射,那么在图表中显示格式为 name(host)
。
注意
- 对象映射只支持设置对象类数据;
- 使用对象映射时,必须先定义一个基于对象类字段的视图变量;
- 同一对象分类的查询字段,不支持设置两个映射,即查询字段下拉中不存在该对象分类已添加的字段;
- 开启字段映射时,图表中显示查询的分组字段和对应的映射字段,未指定映射的分组字段不显示;
- 关闭字段映射时,图表中不显示映射的字段,正常显示。