添加过滤器筛选仪表盘与添加变量替换筛选图表

变量的语法为${{变量名|默认值}}或者${{变量名|默认值|前缀}},它允许您动态地调整查询参数中的占位符。通过设定这些变量,您可以对统计图表或整个仪表盘进行筛选,而无需直接改动查询分析语句。本文向您介绍如何对仪表盘整体及单个统计图表进行筛选。

添加过滤器筛选仪表盘

过滤器类型

每张统计图表实际为一个查询和分析语句,过滤器用于为仪表盘中的所有统计图表批量修改查询条件或替换占位符变量,实现对整个仪表盘数据的筛选功能。日志服务支持三种类型的过滤器:

  • 过滤器类型的过滤器:通过日志字段的KeyValue进行过滤。在原查询和分析语句的结果中,查找包含或者不包含Key:Value的日志。例如查看不同请求方法的访问PV时,可以添加过滤器类型的过滤器,通过动态列表项快速查看。

  • 变量类型的过滤器:先添加变量,然后添加过滤器,自动将统计图表的查询和分析语句中的变量替换为您选择的变量值。例如查看每10秒、60秒或600秒的访问PV。

  • 时序过滤器:采集时序数据后,可以通过LabelValue进行筛选,多个过滤条件取交集。

过滤器类型的过滤器

1. 将统计图表添加到仪表盘

  1. 添加仪表盘

  2. 在目标仪表盘的编辑模式下,单击添加 > 添加新图表

  3. 在页面左侧配置查询时间范围、Logstore、查询分析语句。在页面右侧选择表格。单击页面上方的应用查看图表配置效果,然后单击确定保存图表。

    查看每分钟的访问PV的查询分析语句如下:

    * | SELECT date_format(__time__ - __time__ % 60, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time

2. 添加过滤器类型的过滤器

  1. 在目标仪表盘的编辑模式下,单击页面的右上方的仪表盘过滤器-过滤器图标图标。

  2. 过滤器面板中,完成以下设置,然后单击确定

    用于动态列表项预览的示例查询与分析语句如下:

    *|select distinct request_method

    image

    过滤器类型的过滤器参数说明

    参数

    说明

    名称

    过滤器名称。

    类型

    过滤器:创建过滤器类型的过滤器,通过字段名和字段值进行过滤。在执行过滤器操作时,将其作为过滤条件增加到查询和分析语句前,使用ANDNOT进行连接,默认为AND

    • ANDValue AND [search query] | [sql query]

    • NOTValue NOT [search query] | [sql query]

    静态列表项中添加值,支持设置多个值。

    全局过滤

    • 开启全局过滤,表示在所有字段中过滤Value,无需指定Key。

    • 关闭全局过滤,表示仅在指定的Key中过滤Value。

    Key

    Key中配置目标字段名。

    别名

    列的别名。

    自动过滤

    开启自动过滤,会自动过滤掉数据源中不存在的值。

    显示设置

    设置过滤器的显示样式。

    • 打开显示标题开关,为过滤器增加标题。

    • 打开显示边框开关,为过滤器增加边框。

    • 打开显示背景开关,为过滤器增加白色背景。

    查询方式

    使用AND方式NOT方式进行连接。

    静态列表项

    设置Key对应的Value。

    多次单击+,可添加多个Value。如果开启默认选中,则每次打开仪表盘时,默认使用该Value执行过滤。

    添加动态列表项

    打开添加动态列表项开关,可添加动态列表项,即为Key配置动态的Value。动态列表项为对应查询和分析语句的查询结果,在不同的时间范围内,查询结果是动态变化的。 打开添加动态列表项开关后,需配置如下参数。

    • 请选择Project:选择您要查询的项目。

    • 请选择日志库:选择您要查询的日志库。

    • 是否继承过滤:打开是否继承过滤开关后,在执行过滤时继承仪表盘中已有的过滤条件。

    • 查询分析:输入查询和分析语句并设置时间范围。

    • 动态列表项预览:确认查询结果。

  3. 调整页面布局,单击保存,在保存仪表盘对话框,单击确认

3. 验证结果

在目标仪表盘页面,在request_method下拉框中选择GETPUT,代表查询GETPUT方法的访问PV。该操作对应的查询和分析语句如下:

(*)and (request_method: GET OR request_method: PUT)| SELECT date_format(__time__ - __time__ % 60, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time 

image

变量类型的过滤器

1. 为统计图表的查询分析语句设置变量

  1. 添加仪表盘

  2. 在目标仪表盘编辑模式下,单击添加 > 添加新图表

  3. 在页面左侧配置查询时间范围、Logstore、设置变量的查询分析语句。在页面右侧选择表格。单击页面上方的应用查看图表配置效果,然后单击确定保存图表。

    查看不同时间间隔访问PV的查询分析语句如下,其中的${{interval|60}}代表设置变量interval,默认值是60。

    * | SELECT date_format(__time__ - __time__ % ${{interval|60}}, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time

    设置变量

2. 添加变量类型的过滤器

  1. 在目标仪表盘编辑模式下,单击页面的右上方的仪表盘过滤器-过滤器图标图标。

  2. 过滤器面板中,完成以下设置,然后单击确定

    说明
    • Key必须为您在设置变量步骤中设置的变量,本示例为interval

    • 静态列表项用于配置不同查询时长范围的变量值。

    image

    变量类型的过滤器参数说明

    参数

    说明

    名称

    过滤器名称。

    类型

    变量替换:创建变量类型的过滤器,指定变量和变量的值。如果仪表盘中已有设置了该变量占位符的统计图表,则添加变量类型的过滤器后,自动将统计图表的查询和分析语句中的变量替换为您选择的变量值。在静态列表项中配置变量的值,支持设置多个变量值。

    Key

    Key中配置变量。

    说明

    您要替换变量的统计图表必须已设置占位符变量,且与此处配置的变量相同。

    别名

    列的别名。

    显示设置

    设置过滤器的显示样式。

    • 打开显示标题开关,为过滤器增加标题。

    • 打开显示边框开关,为过滤器增加边框。

    • 打开显示背景开关,为过滤器增加白色背景。

    显示组件类型

    选择组件类行的方式:

    • 自由输入

    • 下拉列表

    静态列表项

    设置Key对应的Value。

    多次单击+,可添加多个Value。如果开启默认选中,则每次打开仪表盘时,默认使用该Value执行过滤。

    添加动态列表项

    打开添加动态列表项开关,可添加动态列表项,即为Key配置动态的Value。动态列表项为对应查询和分析语句的查询结果,在不同的时间范围内,查询结果是动态变化的。 打开添加动态列表项开关后,需配置如下参数。

    • 请选择Project:选择您要查询的项目。

    • 请选择日志库:选择您要查询的日志库。

    • 是否继承过滤:打开是否继承过滤开关后,在执行过滤时继承仪表盘中已有的过滤条件。

    • 查询分析:输入查询和分析语句并设置时间范围。

    • 动态列表项预览:确认查询结果。

  3. 调整页面布局,单击保存,在保存仪表盘对话框,单击确认

3. 验证结果

  • 在目标仪表盘页面,将PV过滤器interval设置为10,代表查询每10秒的访问PV。

    该操作对应的查询和分析语句如下:

    * | SELECT date_format(__time__ - __time__ % 10, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time

    image

  • 在目标仪表盘页面,将PV过滤器interval设置为60,代表查询每60秒的访问PV。

    该操作对应的查询和分析语句如下:

    * | SELECT date_format(__time__ - __time__ % 60, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time

    image

时序过滤器

  1. 接入时序数据:例如采集主机监控数据

  2. 添加过滤器:采集主机数据后,日志服务会自动创建一个名叫主机监控的仪表盘。在主机监控编辑模式下,单击页面的右上方的仪表盘过滤器-过滤器图标图标。在过滤器面板中,完成以下设置,然后单击确定

    image

    时序过滤器参数说明

    参数

    说明

    名称

    过滤器名称。

    类型

    时序过滤器:动态添加LabelValue进行过滤。添加时序过滤器后,可以手动对时序库的LabelValue进行过滤显示。

    Key

    过滤器的唯一标识。

    别名

    列的别名。

    显示设置

    设置过滤器的显示样式。

    • 打开显示标题开关,为过滤器增加标题。

    • 打开显示边框开关,为过滤器增加边框。

    • 打开显示背景开关,为过滤器增加白色背景。

    请选择Project

    选择您要查询的Project。

    请选择时序库

    选择您要查询的时序库。

  3. 筛选仪表盘:在仪表盘页面顶端的下拉列表,选择LabelValue。

    image

添加变量替换筛选单个统计图表

您可以对单个统计图表设置变量替换,日志服务将在当前统计图表的左上角添加一个过滤器,从而实现对单个统计图表的筛选。此处以查看不同时间间隔访问PV的表格示例,配置步骤如下。

1. 配置变量替换

  1. 在编辑图表页面左侧配置查询时间范围、Logstore、设置变量的查询分析语句。

    查看不同时间间隔访问PV的查询分析语句如下,其中的${{date|60}}代表设置变量date,默认值是60。

    * | select __time__ - __time__ % ${{date | 60}} as time, COUNT(*) as pv, avg(request_time) as duration, request_method GROUP BY time, request_method order by time limit 1000

    image

  2. 配置变量替换。

    1. 在编辑图表页面右侧图表类型选择表格,单击变量替换 > 添加变量替换

      image

    2. 在变量替换弹框设置变量keydate,变量的显示名为时间,变量值的显示名min、hour,对应的变量值为60、3600。

      变量替换

  3. 单击页面右上角的确定,然后单击右上角保存,在保存仪表盘对话框,单击确认

2. 筛选统计图表

设置完成后,统计图表的左上方将出现一个过滤器。选择对应的值后,日志服务将根据您选择的值执行一次查询与分析操作。例如您选择hour,对应的查询分析语句为:

(*)| select __time__ - __time__ % 3600 as time, COUNT(*) as pv, avg(request_time) as duration, request_method GROUP BY time, request_method order by time limit 1000 

image

变量与交互事件配合使用

在配置统计图表的交互事件时,您可以设定变量,这样,每当您点击目标交互事件,该变量就会自动更新为触发事件的值,从而便于您进行相应的查询与分析。具体示例,请参见配置示例

image

变量的高阶使用(结合前缀使用)

重要

筛选仪表盘或者统计图表时,还可以结合前缀,使用${{变量名|默认值|前缀}}语法。

  • 未设置变量值时,查询使用默认值进行统计。

  • 设置变量值后,查询分析语句结合前缀与变量值进行统计。

筛选仪表盘:HTTP方法(http_method)过滤场景

变量说明

  • 变量格式:${{method_filter|http_method in ('GET','POST')|http_method =}}

  • 查询分析语句:(*)|select status, count(1) as err_count where ${{method_filter|request_method in ('GET','POST')|request_method =}} and status>=400 group by status

    • 未设置变量时:默认统计GET/POST请求中400+状态的错误分布,查询分析语句为:

      (*)|select status, count(1) as err_count where request_method in ('GET','POST') and status>=400 group by status

    • 设置变量为'DELETE':切换为分析DELETE方法的错误状态,查询分析语句为:

      (*)| select status, count(1) as err_count where request_method ='DELETE' and status>=400 group by status

操作步骤

  1. 配置图表:在页面左侧配置查询时间范围、Logstore、设置变量的查询分析语句。在页面右侧选择表格。单击页面上方的应用查看图表配置效果,然后单击确定保存图表。

    image

  2. 配置变量类型过滤器:在过滤器面板,参考下图,添加method_filter变量下拉选择的值。

    image

  3. 筛选仪表盘:单击过滤器,选择DELETE时,使用(*)| select status, count(1) as err_count where request_method ='DELETE' and status>=400 group by status查询分析语句进行统计展示。

    image

筛选统计图表:请求时间(request_time)阈值过滤场景

变量说明

  • 变量格式:${{slow_query|request_time>50|request_time>}}

  • 查询分析语句:(*)| select request_uri, avg(request_time) as avg_time where ${{slow_query|request_time>50|request_time>}} group by request_uri order by avg_time desc

    • 未设置变量时:默认筛选请求时间超过50ms的接口,按平均耗时降序排列,查询分析语句为:

      (*)| select request_uri, avg(request_time) as avg_time where request_time>50 group by request_uri order by avg_time desc

    • 设置变量为1000ms:调整为分析超1秒的慢接口,查询分析语句为:(*)| select request_uri, avg(request_time) as avg_time where request_time>1000 group by request_uri order by avg_time desc

操作步骤

  1. 配置图表:在编辑图表页面左侧配置查询时间范围、Logstore、设置变量的查询分析语句。

    image

  2. 配置变量替换:在编辑图表页面右侧,单击变量替换,在变量替换弹框,参考下图,添加slow_query变量下拉选择的值。

    image

  3. 筛选图表:单击统计图表的左上方筛选框。选择1000ms时,使用(*)| select request_uri, avg(request_time) as avg_time where request_time>1000 group by request_uri order by avg_time desc查询分析语句进行统计展示。

    image