变量的语法为${{变量名|默认值}}
或者${{变量名|默认值|前缀}}
,它允许您动态地调整查询参数中的占位符。通过设定这些变量,您可以对统计图表或整个仪表盘进行筛选,而无需直接改动查询分析语句。本文向您介绍如何对仪表盘整体及单个统计图表进行筛选。
添加过滤器筛选仪表盘
过滤器类型
每张统计图表实际为一个查询和分析语句,过滤器用于为仪表盘中的所有统计图表批量修改查询条件或替换占位符变量,实现对整个仪表盘数据的筛选功能。日志服务支持三种类型的过滤器:
过滤器类型的过滤器:通过日志字段的Key和Value进行过滤。在原查询和分析语句的结果中,查找包含或者不包含
Key:Value
的日志。例如查看不同请求方法的访问PV时,可以添加过滤器类型的过滤器,通过动态列表项快速查看。变量类型的过滤器:先添加变量,然后添加过滤器,自动将统计图表的查询和分析语句中的变量替换为您选择的变量值。例如查看每10秒、60秒或600秒的访问PV。
时序过滤器:采集时序数据后,可以通过Label和Value进行筛选,多个过滤条件取交集。
过滤器类型的过滤器
变量类型的过滤器
时序过滤器
添加变量替换筛选单个统计图表
您可以对单个统计图表设置变量替换,日志服务将在当前统计图表的左上角添加一个过滤器,从而实现对单个统计图表的筛选。此处以查看不同时间间隔访问PV的表格示例,配置步骤如下。
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
配置变量替换。
在编辑图表页面右侧图表类型选择表格,单击
。在变量替换弹框设置变量key为date,变量的显示名为时间,变量值的显示名为min、hour,对应的变量值为60、3600。
单击页面右上角的确定,然后单击右上角保存,在保存仪表盘对话框,单击确认。
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
变量与交互事件配合使用
在配置统计图表的交互事件时,您可以设定变量,这样,每当您点击目标交互事件,该变量就会自动更新为触发事件的值,从而便于您进行相应的查询与分析。具体示例,请参见配置示例。
变量的高阶使用(结合前缀使用)
筛选仪表盘或者统计图表时,还可以结合前缀,使用${{变量名|默认值|前缀}}
语法。
未设置变量值时,查询使用默认值进行统计。
设置变量值后,查询分析语句结合前缀与变量值进行统计。
筛选仪表盘: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
操作步骤
配置图表:在页面左侧配置查询时间范围、Logstore、设置变量的查询分析语句。在页面右侧选择表格。单击页面上方的应用查看图表配置效果,然后单击确定保存图表。
配置变量类型过滤器:在过滤器面板,参考下图,添加
method_filter
变量下拉选择的值。筛选仪表盘:单击过滤器,选择
DELETE
时,使用(*)| select status, count(1) as err_count where request_method ='DELETE' and status>=400 group by status
查询分析语句进行统计展示。
筛选统计图表:请求时间(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
操作步骤
配置图表:在编辑图表页面左侧配置查询时间范围、Logstore、设置变量的查询分析语句。
配置变量替换:在编辑图表页面右侧,单击变量替换,在变量替换弹框,参考下图,添加
slow_query
变量下拉选择的值。筛选图表:单击统计图表的左上方筛选框。选择
1000ms
时,使用(*)| select request_uri, avg(request_time) as avg_time where request_time>1000 group by request_uri order by avg_time desc
查询分析语句进行统计展示。