将Nginx访问日志采集到日志服务后,您可以通过查询和分析语句查看每分钟的访问PV。例如您想查看每10秒、60秒或600秒的访问PV,则可以添加变量类型的过滤器,避免多次修改查询和分析语句进行查询。本文以Nginx访问日志为例说明如何添加变量类型的过滤器。

前提条件

操作流程

为Nginx访问日志添加变量类型的过滤器的操作流程如下:

流程

步骤一:查询和分析

通过查询和分析语句查看每分钟的访问PV的操作步骤如下:

  1. 登录日志服务控制台
  2. 在Project列表区域,单击目标Project。
  3. 日志存储 > 日志库页签中,单击目标Logstore。
  4. 输入查询和分析语句,然后单击15分钟(相对),设置查询和分析的时间范围。
    例如,查看每分钟的访问PV的示例,其查询和分析语句如下:
    * | SELECT date_format(__time__ - __time__ % 60, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time

    每分钟的访问PV以图表的形式显示。

    查询与分析

步骤二:将统计图表添加到仪表盘

将每分钟的访问PV图表添加到Nginx访问日志仪表盘的操作如下:

  1. 统计图表页签下,单击添加到仪表盘
  2. 添加到仪表盘对话框中,根据实际情况完成参数配置,单击确认
    仪表盘

步骤三:设置变量

将查询与分析的时间间隔设置为变量的操作如下:

  1. 在左侧导航栏中,单击仪表盘
  2. 仪表盘列表,单击Nginx访问日志
  3. Nginx访问日志页面的右上角,单击编辑,找到目标统计图表,选择配置监控与告警 > 编辑
  4. 将查询和分析语句中的60修改为${{interval|60}},单击应用,然后单击确定
    其中interval为变量名,60为变量值。在此处定义变量后,您可以在添加过滤器时设置该变量的取值。如果此处直接使用${{interval}},会导致查询分析操作报错。
    • 替换前查询和分析语句为:
      * | SELECT date_format(__time__ - __time__ % 60, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time
    • 替换后查询和分析语句为:
      * | SELECT date_format(__time__ - __time__ % ${{interval|60}}, '%H:%i:%s') as time, count(1) as count GROUP BY time ORDER BY time
    关于变量的更多信息,请参见变量设置变量

步骤四:添加过滤器

根据设置的变量添加过滤器的操作步骤如下:

  1. Nginx访问日志页面的右上方,单击仪表盘过滤器-过滤器图标图标。
  2. 过滤器面板中,完成以下设置,然后单击确定
    说明
    • 类型必须选择变量替换
    • Key值必须为您在设置变量步骤中设置的变量,本文为interval
    • 静态列表项用于配置不同查询时长范围的变量值。
    过滤器关于过滤器参数的说明,请参见添加过滤器
  3. 调整页面布局,单击保存
  4. 保存对话框,单击确认

    Nginx访问日志仪表盘显示时间间隔过滤器。

    带过滤器的仪表盘

步骤五:验证结果

  • Nginx访问日志页面的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
    Nginx访问日志仪表盘展示每10秒的访问PV。10秒
  • Nginx访问日志页面的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
    Nginx访问日志仪表盘展示每60秒的访问PV。60秒