跳转至

变量查询


查询方式

DQL 查询

PromQL 查询

数据类型查询

外部数据源

自定义

取值范围

视图变量的取值范围有两种方式:

  • 跟随仪表板联动,即根据仪表板的时间控件所选的时间范围列出变量查询的数据;
  • 不跟随仪表板联动,即列出变量查询的所有数据,不受仪表板时间控件所选的时间范围影响。

不同数据来源变量查询的取值范围说明:

指标集 标签 默认值
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));
支持添加时间筛选,跟随仪表板时间控件联动

DQL 查询

DQL 查询支持手动编写语句,可设时间范围并开启级联查询,即时返回所需数据。

点击 了解更多 DQL 定义和语法

查询示例:

注意

基础设施、日志等非指标数据建议使用该方式。

语法
说明
数据类型::数据来源:(distinct('属性字段名')){筛选条件} M/metric - 时序指标数据
O/object - 对象数据
L/logging - 日志数据
E/event - 事件数据
T/tracing - 追踪数据
R/rum - RUM 数据
R::view:(distinct(app_id)) 返回 Web RUM 的 app_id 列表
R::view:(distinct(env)){app_id = '8f05003ebccad062'} 返回 Web RUM app_id=8f05003ebccad062对应的 env 列表
R::view:(distinct(env)){app_id = #{appid}} 在 DQL 语句中使用 #{变量名}即可实现级联查询:若上一步将变量命名为 app_id,则自动返回所选 app_id 对应的 env 列表

添加时间范围

视图变量使用 DQL 语句查询时,支持以 [xx:xx:xx] 的格式添加数据查询的时间范围:

  • 若在 DQL 查询中添加了时间范围,则优先使用 DQL 查询中的时间范围;
  • 若在 DQL 查询中未添加时间范围,则默认使用仪表板时间控件所选的时间范围。

查询示例:

# 查询最近 10 分钟的容器主机列表 
O::docker_containers:(distinct(`host`)) [10m]

Show 函数查询

在使用 DQL 查询时,支持使用 Show 函数来查询返回对应的数据值,Show 函数不支持添加时间范围筛选。

点击 了解更多 DQL 函数说明

查询示例:

注意

若已开通指标数据,建议使用该查询方式。

语法 说明
show_measurement() 返回当前工作空间所有的指标集
show_tag_key(from=["cpu"]) 返回当前工作空间指标集 cpu 下面的标签
show_tag_key(from=["cpu"],keyin=["host"]) 查询当前工作空间指标集 cpuhost 标签值列表

PromQL 查询

PromQL 查询支持手写查询语句,默认使用仪表板时间控件所选时间进行查询并返回数据。

关于 PromQL 查询相关信息,可参考 PromQL 快速上手

数据类型查询

支持选择以下数据来源:指标、基础对象、资源目录、日志、应用性能、用户访问。

在此模式下,无法添加时间范围或配置级联查询

外部数据源

集成 MySQL 等多种外部数据源,直接调用原生查询语句,实时获取数据。

  1. 选择数据源;
  2. 输入查询语句;
  3. 选择排序方式。

更多详情,可参考 外部数据源

自定义查询

直接定义一组数值用于视图变量,无需通过查询语句获取值,每个选项之间用英文逗号 , 分隔。此查询方式不支持添加时间范围和配置级联查询。

级联查询

当配置多个视图变量且第二个变量需根据第一个变量的结果动态筛选时,应启用级联查询。

注意

级联查询仅支持 DQL 语句查询配置。

逻辑运算符 变量值匹配类型 示例
=
!=
精确匹配,支持多选。 R::view:(distinct(env)) {app_id = '#{appid}'}
match(re)
not match(re)
wildcard
not wildcard
模糊匹配,支持多选。 R::view:(distinct(env)) {app_id = re('#{appid}')}

以下以用户访问监测中 Web 应用概览的视图变量级联筛选为例,基于服务、环境和版本进行联动查询的配置说明:

需在仪表板配置三条变量查询语句,第二和第三条查询语句使用第一条查询配置的 #{变量名}

  • 变量 1(服务):查询所有应用列表:
T::re(`.*`):(distinct(service))
  • 变量 2(环境):查询所有应用列表,且变量 1 中所选的环境列表:
T::re(`.*`):(distinct(env)) { service = '#{service}'}
  • 变量 3(版本):查询所有应用列表,且变量 2 中所选的版本列表:
T::re(`.*`):(distinct(version)) {service = '#{service}'}

场景示例

关联视图变量与图表,实现联动筛选

  1. 在图表查询中,筛选字段时,value 值选中该变量;

  2. 在场景视图中切换变量值,图表将根据变量标签进行筛选展示。

图表反向添加,实现全局联动

前提

对应的 DQL 筛选中存在 by 分组条件。

  1. 点击图表特定时间线或数据点后;
  2. 选择应用到视图变量
  3. 系统自动填充查询。

文档评价

文档内容是否对您有帮助? ×