在日志服务仪表盘中增加过滤器配置,可以缩小查询范围或替换占位符变量,即对整个仪表盘进行查询过滤(Filter)和变量替换(Variables)操作。

前提条件

背景信息

日志服务仪表盘中的每一张图表是一个查询分析语句,在仪表盘中增加过滤器也就是为所有图表批量增加过滤条件,或者批量替换所有图表中设置的占位符变量。过滤器配置分为以下两种。
  • 过滤器类型:指定key和value,并将其作为过滤条件增加到查询语句[search query]前。新的查询语句为key: value AND [search query],表示在原查询语句的结果中,查找包含key:value的日志。 过滤器类型的过滤器中,value可以多选,也可以直接输入。多选时过滤条件之间为or关系。
  • 变量替换类型:指定变量占位符,如果仪表盘中有已设置该变量占位符的图表,则将图表查询语句中的该占位符变量替换为选择的value值。

基本构成

每个过滤器图表可以有一个或者多个过滤器构成,每个过滤器主要包含以下元素。
  • 过滤器操作Key值。
  • Key对应的列表项。

操作步骤

  1. 登录日志服务控制台,单击Project名称。
  2. 单击左侧导航栏的仪表盘图标。
  3. 在仪表盘列表中单击指定仪表盘名称。
  4. 在仪表盘页面右上角单击编辑,进入编辑模式。
  5. 单击过滤器图标仪表盘过滤器-过滤器图标,并设置过滤器配置。完成后单击确定
    表 1. 过滤器配置项
    配置项 说明
    过滤器名称 过滤器名称。
    显示设置 包含如下选项:
    • 标题:打开标题开关,为过滤器增加标题。
    • 边框:打开边框开关,为过滤器增加边框。
    • 背景:打开背景开关,为过滤器增加白色背景。
    Key值
    • 过滤器类型:Key值为过滤条件中的key。
    • 变量替换类型:Key值为指定的变量占位符。
    说明 变量占位符必须是前提条件中已配置的变量占位符,才能成功替换。
    类型 过滤器的类型,包括:
    • 过滤器:列表项表示过滤条件中的Value。您可以设置多个Value,生成过滤器之后可以在查看仪表盘时根据需求选择Value。
    • 变量替换:列表项为指定变量占位符的替换值。您可以设置多个替换值,生成过滤器之后可以在查看仪表盘时根据需求选择替换值。
    别名 列的别名,仅在过滤器类型中指定。设置后,在仪表盘过滤器中显示别名。
    全局过滤 是否在所有字段中过滤Value,默认为关闭状态,仅在过滤器类型中指定。
    • 开启全局过滤,表示在所有字段中过滤Value。
    • 关闭全局过滤,表示仅在指定Key中过滤Value。
    添加静态列表项 在输入框中输入列表项的值,并单击添加设置列表项。
    静态列表项 通过添加静态列表项设置的过滤器中预置的列表项。
    添加动态列表项 过滤器中动态显示的列表项,列表项为预设的查询分析语句当前的查询结果。

    打开添加动态列表项,选择日志库,选择是否继承过滤(查询语句是否继承当前页面的过滤条件),在输入框中输入查询分析语句,选择时间后单击查询,可以预览动态列表项。

    仪表盘过滤器-添加过滤器

应用场景

过滤器多用于在当前仪表盘中动态修改查询条件和对图表中已经存在的变量占位符进行变量替换。每一张图表实际为一个查询分析语句,满足 [search query] | [sql query] 的形式,过滤器实质上会操作该查询分析语句。
  • 如果为过滤器,则会在[serch query]前加上过滤的值,以AND连接为新的查询语句,即key: value AND [serch query]
  • 如果为变量替换过滤器,则会查询整个仪表盘存在变量占位符的图表,将对应名称的变量占位符替换为选择的value值。

示例1:基于不同时间粒度

例如采集Nginx日志后,需要对采集到的日志数据进行实时查询与分析。

通过分析语句可以查看每分钟的访问PV,当需要查看秒级别的数据时,需要调整__time__ - __time__ % 60的值,传统做法为修改查询分析语句,多次查询时操作繁琐。此时可以通过过滤器完成变量替换。

  1. 通过以下语句查看分钟访问PV的数据。
    * | SELECT date_format(__time__ - __time__ % 60, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time
  2. 将分析图表添加到仪表盘,并选中查询语句中的60生成变量占位符,变量名为interval
    仪表盘过滤器-示例1-添加仪表盘
  3. 在仪表盘编辑页面添加过滤器。
    • 类型变量替换
    • Key值interval
    • 静态列表项1(表示每秒)和120(表示每2分钟)。
  4. 在过滤器中选择1,此时仪表盘为秒级别的粒度。
    替换变量后的查询语句。
    * | SELECT date_format(__time__ - __time__ % 1, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time 
    仪表盘过滤器-示例1-过滤器

示例2:动态切换请求方法

通过添加动态列表项还可以动态切换不同的请求方法(method)。示例1中,查询语句为*,表示不设置任何过滤条件,即所有的日志都在查询范围之中。此时,可以再添加一个过滤器便于查看不同method的访问情况。

  1. 增加过滤器并打开添加动态列表项开关。
    设置如下。
    • 类型为过滤器。
    • Key值method
    • 请选择日志库为当前仪表盘所在日志库。
    • 添加动态列表项:通过输入查询语句,动态获取列表项。
    仪表盘过滤器-示例2-添加动态列表项
  2. 在过滤器的下拉列表项中选择POST
    图表中只显示methodPOST的访问。实质上已经变为如下查询分析语句。
    (*) and (method: POST) | SELECT date_format(__time__ - __time__ % 60, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time 
    仪表盘过滤器-示例2-动态列表项