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

日志服务仪表盘中的每一张图表是一个查询分析语句,在仪表盘中增加过滤器也就是为所有图表批量增加过滤条件,或者批量替换所有图表中设置的占位符变量。过滤器配置分为以下两种:
  • 过滤器类型:指定key和value,并将其作为过滤条件增加到查询语句[serch query]前。新的查询语句为key: value AND [serch query],表示在原查询语句的结果中,查找包含key:value的日志。

    过滤器类型的过滤器中,value可以多选,也可以直接输入。多选时,过滤条件之间为or关系。

  • 变量替换类型:指定变量占位符,如果仪表盘中有已设置该变量占位符的图表,则将图表查询语句中的该占位符变量替换为选择的value值。

基本构成

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

前提条件

  1. 开启并配置索引
  2. 已创建仪表盘,如果过滤器类型为变量替换,需要设置好变量占位符。

操作步骤

  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

示例

例如,采集Nginx日志后,需要对采集到的日志数据进行实时查询与分析。
  • 场景1:基于不同时间粒度

    通过分析语句可以查看每分钟的访问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


    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 


  • 场景2:动态切换过滤方法
    通过添加动态列表项还可以动态切换不同的请求方法(method)。场景1中,查询语句为*,表示不设置任何过滤条件,即所有的日志都在查询范围之中。此时,可以再添加一个过滤器便于查看不同method的访问情况。
    1. 增加过滤器并打开添加动态列表项开关,设置如下。
      • 类型为过滤器。
      • Key值method
      • 请选择日志库为当前仪表盘所在日志库。
      • 添加动态列表项:通过输入查询语句,动态获取列表项。


    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