跳转至

变量查询


视图变量的查询用于定义变量的取值范围与数据来源,支持配置取值范围是否跟随仪表板时间控件联动,满足不同数据筛选需求。

取值范围控制

查询获取的可选值,可以选择是否受仪表板时间范围影响:

模式 说明 适用场景
跟随仪表板联动 根据仪表板时间控件筛选数据 只看近期活跃的主机,避免历史垃圾数据
不跟随仪表板联动 列出所有历史数据 需要全量枚举,如所有服务名称(服务通常不会频繁增减)

主要查询方式

视图变量目前支持五类查询方式,您可按需选择:

查询方式 应用场景 关键特性
DQL 查询 查询日志、对象、链路等非指标数据 唯一支持全量数据类型,支持级联查询
PromQL 查询 只查指标数据,且熟悉 Prometheus 语法兼容 PromQL 生态
数据类型查询 不写查询语句,快速点选配置 可视化选择,零代码
外部数据源 对接外部 MySQL 等数据库 直接使用 SQL 查询
自定义 只有固定的几个选项 直接填写,不查数据库

DQL 查询

支持指标、日志、基础设施、对象、链路、RUM 等所有数据类型,功能最全面。

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

基础语法结构

数据类型::数据来源:(distinct('属性字段名')){筛选条件}

示例:

# 获取所有 Docker 容器的主机名
O::docker_containers:(distinct(`host`))

时间范围指定

DQL 支持在语句中直接指定时间范围,优先级高于仪表板时间控件:

写法 含义
[10m] 最近 10 分钟
[1h] 最近 1 小时
[1d] 最近 1 天
不写 使用仪表板时间控件

示例:

# 只显示最近 10 分钟有数据的主机
O::docker_containers:(distinct(`host`)) [10m]

Show 函数查询

适用于查询指标相关的元数据信息,不支持时间范围。

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

点击 了解更多 DQL 函数说明

示例:

# 查询所有指标集
SHOW METRIC_SET()

# 查询指定指标集的所有标签
SHOW LABELS FROM M::cpu

PromQL 查询

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

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

数据类型查询

如果您需要快速配置,不想编写查询语句,可直接选择数据类型,并在页面上直接选择筛选条件。

支持的数据类型:

  • 指标
  • 基础对象(主机、容器、进程等)
  • 资源目录
  • 日志
  • 应用性能
  • 用户访问

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

外部数据源

如果您的目标查询可选值存储在外部数据库(如 MySQL、PostgreSQL),可选择此类查询方式,直接对接已有数据系统。

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

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

自定义查询

如果您的目标可选值固定且数量有限,无需查询数据库,此时可直接定义一组数值用于视图变量,无需通过查询语句获取值,每个选项之间用英文逗号 , 分隔,如:prod,test,dev,staging

此查询方式不支持添加时间范围和配置级联查询。

级联查询

当多个变量存在层级关系时使用。例如:

  • 选择“服务”后,“环境”下拉框只显示该服务的环境(而非全部环境)。
  • 选择“环境”后,“版本”下拉框只显示该环境的版本

配置条件

  1. 仅 DQL 查询支持级联配置;
  2. 子变量的查询语句中,通过 #{父变量名} 引用父变量的当前值。

配置示例

以下以用户访问监测中 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. 系统自动填充查询。

文档评价

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