日志服务支持联合监控多个集合数据。

集合操作

日志服务告警监控系统将一个查询和分析结果当做一个集合,并支持多个集合关联监控。
注意
  • 日志服务最多支持3个集合关联监控。
  • 默认只选取查询和统计结果中的前1000条数据用于集合操作。当存在三个查询和分析操作且集合操作不存在不合并选项时,只选取查询和统计结果中的前100条数据。
  • 当存在三个集合时,先对前两个集合进行操作,该操作结果再与第三个集合进行集合操作。例如:
    • 集合A左联集合B左联集合C:集合A和集合B先完成左联操作,该结果再左联集合C。
    • 集合A拼接集合B内联集合C:集合A和集合B完成拼接操作,该结果再内联集合C。
    • 集合A左斥集合B不合并集合C:集合A和集合B完成左斥操作,忽略集合C。
多集合操作
集合操作 图示 说明
不合并 不合并 两个集合之间无关联。

集合A为查询和分析结果,集合B仅在告警信息中作为内容模板的变量被引用。

笛卡尔积 集合A与集合B任意数据互相交叉组合,一般用于过滤评估。
拼接 拼接 集合B中的数据添加到集合A中,根据字段对齐。
内联 内联 集合A中仅保留在集合B中存在的数据,即集合B是集合A的白名单。
左联 左联 在集合A中补充部分来自集合B的信息,即集合B是A的维表。
右联 右联 在集合B中补充部分来自集合A的信息,即集合A是集合B的维表。
全联 全联 集合A和集合B互相补充信息。
左斥 左斥 在集合A中删除集合B中存在的数据,即集合B是集合A的黑名单。
右斥 右斥 在集合B中删除集合A中存在的数据,即集合A是集合B的黑名单。

示例

  • 不合并
    • 需求

      监控Nginx访问日志,每15分钟的5xx错误超过500次则触发告警,并且在告警内容中列出具体的出错的主机信息。

    • 配置不拼接
    • 结果
      • 查询统计0的结果

        统计15分钟内发生5xx错误的次数。

        cnt
        1234
      • 查询统计1的结果

        统计15分钟内发生5xx错误最多的Top5主机及对应的错误次数。

        host pv
        host1 60
        host2 55
        host3 47
        host4 45
        host5 30
      • 集合操作结果

        当选择集合操作不合并时,集合操作结果为查询统计0的结果。

  • 拼接
    • 示例1
      • 需求

        北京和上海地域分别有2个用于存储Nginx访问日志的Logstore,每15分钟统计一次5xx错误超过30次的主机数,两个Logstore中符合条件的主机数超过10个时,触发告警。

      • 配置拼接
      • 结果
        • 查询统计0的结果

          统计15分钟内发生5xx错误超过30次的主机及对应的错误次数。

          host pv
          host1 60
          host2 55
          host3 47
          host4 45
          host5 31
        • 查询统计1的结果

          统计15分钟内发生5xx错误超过30次的主机及对应的错误次数。

          host pv
          hosta 70
          hostb 45
          hostc 44
          hostd 42
        • 集合操作结果
          当选择集合操作拼接时,集合操作结果如下:
          host pv
          host1 60
          host2 55
          host3 47
          host4 45
          hosg5 31
          hosta 70
          hostb 45
          hostc 44
          hostd 42
    • 其他示例
      • 当2个查询统计结果中的字段不完全一致时,进行拼接后,无匹配的字段留空。
        • 查询统计0结果
          a b
          a1 b1
          a2 b2
        • 查询统计1结果
          b c
          b1 c1
          b2 c2
        • 集合操作结果
          a b c
          a1 b1
          a2 b2
          b1 c1
          b2 c2
      • 当存在3个查询统计时,查询统计0和查询统计1的结果先完成集合操作,再与查询统计2结果拼接。
        • 查询统计0结果
          a b
          a1 b1
          a2 b2
        • 查询统计1结果
          a b
          a1 b11
          a2 b22
          a3 b33
        • 查询统计0结果与查询统计1结果的拼接结果

          当选择集合操作内联$0.a == $1.a时,集合操作结果如下:

          a $0.b $1.b
          a1 b1 b11
          a2 b2 b22
        • 查询统计2结果
          a b
          a3 b333
          a4 b444
        • 集合操作结果

          当选择集合操作拼接时,集合操作结果如下:

          说明 查询统计2结果中字段b与字段$0.b对齐。
          a $0.b $1.b
          a1 b1 b11
          a2 b2 b22
          a3 b333
          a4 b444
  • 内联
    • 示例1
      • 需求

        监控指定Bucket中发生5xx错误的次数,当每15分钟内出现1000次5xx错误时触发告警。此需求中,需添加资源数据,用于维护Bucket白名单。

      • 配置内联
      • 结果
        • 查询统计0的结果

          统计15分钟内发生5xx错误次数超过1000次的Bucket。

          bucket pv
          bucket_01 1600
          bucket_02 1550
          bucket_03 1470
          bucket_04 1450
        • 查询统计1的结果

          Bucket的资源数据。

          bucket desc
          bucket_03 for dev team
          bucket_04 for test team
          bucket_05 for service team
          bucket_06 for support team
        • 集合操作结果

          当选择集合操作内联$0.bucket == $1.bucket时,集合操作结果如下:

          bucket pv desc
          bucket_03 47 for dev team
          bucket_04 45 for test team
    • 示例2
      • 需求

        北京和上海地域分别有2个用于存储Nginx访问日志的Logstore,每15分钟统计一次发生5xx错误超过30次的客户端。北京和上海同时发生5xx错误,且北京的错误次数大于上海时触发告警。

      • 配置内联
      • 结果
        • 查询统计0结果

          统计15分钟内北京地域发生5xx错误超过30次的客户端及对应的错误数。

          client_ip pv
          192.0.2.4 60
          192.0.2.5 55
          192.0.2.6 47
          192.0.2.7 45
          192.0.2.8 31
        • 查询统计1结果

          统计15分钟内上海地域发生5xx错误超过30次的客户端及对应的错误数。

          client_ip pv
          192.0.2.5 70
          192.0.2.6 45
          192.0.2.7 44
          192.0.2.8 42
          192.0.2.9 42
        • 集合操作结果

          当选择集合操作内联$0.client_ip == $1.client_ip$0.pv > $1.pv时,集合操作结果如下:

          client_ip pv
          192.0.2.6 47
          192.0.2.7 45
    • 其他示例

      当2个查询统计结果中的非关联字段存在同名时,集合操作的结果集合自动为字段添加$0、$1前缀。

      • 查询统计0结果
        a b c d
        a1 b1 c1 d1
        a2 b2 c2 d2
        a3 b3 c3 d3
      • 查询统计1结果
        a b c
        a1 b11 c11
        a2 b22 c22
      • 集合操作结果

        当选择集合操作内联$0.a == $1.a时,集合操作结果如下:

        a $0.b $0.c d $1.b $1.c
        a1 b1 c1 d1 b11 c11
        a2 b2 c2 d2 b22 c22
  • 左斥
    • 需求

      监控除指定Bucket外的其他Bucket发生5xx错误的次数,当每15分钟内出现1000次5xx错误时触发告警。此需求中,需添加资源数据,用于维护Bucket黑名单。

    • 配置左斥
    • 结果
      • 查询统计0的结果

        统计15分钟内出现5xx错误超过1000次的Bucket。

        bucket pv
        bucket_01 60
        bucket_02 55
        bucket_03 47
        bucket_04 45
      • 查询统计1的结果

        Bucket的资源数据。

        bucket desc
        bucket_03 for dev team
        bucket_04 for test team
      • 集合操作结果

        当选择集合操作左斥$0.bucket == $1.bucket时,集合操作结果如下:

        bucket pv
        bucket_01 60
        bucket_02 55
  • 右斥
    • 需求

      监控除指定Bucket外的其他Bucket发生5xx错误的次数,当每15分钟内出现1000次5xx错误时触发就告警。此需求中,需添加资源数据,用于维护Bucket黑名单。

    • 配置右斥
    • 结果
      • 查询统计0的结果

        Bucket的资源数据。

        bucket desc
        bucket_03 for dev team
        bucket_04 for test team
      • 查询统计1的结果

        统计15分钟内出现5xx错误超过1000次的Bucket。

        bucket pv
        bucket_01 60
        bucket_02 55
        bucket_03 47
        bucket_04 45
      • 集合操作结果

        当选择集合操作右斥$0.bucket == $1.bucket时,集合操作结果如下:

        bucket pv
        bucket_01 60
        bucket_02 55
  • 笛卡尔积
    • 示例1
      • 需求:

        同时监控OSS访问日志和SLB访问日志,每15分钟统计一次OSS的4xx错误和SLB的5xx错误,当总次数达到1000次时触发告警。

      • 配置:笛卡尔积
      • 结果:
        • 查询统计0的结果

          统计15分钟内出现OSS 4xx错误的次数。

          pv
          890
        • 查询统计1的结果

          统计15分钟内出现SLB 5xx错误的次数。

          pv
          567
        • 集合操作结果

          当选择集合操作笛卡尔积时,集合操作结果如下:

          $0.pv $1.pv
          890 567
    • 其他示例
      • 查询统计0结果
        a b
        a1 b1
        a2 b2
        a5 b5
      • 查询统计1结果
        a c
        a1 c1
        a3 c3
      • 集合操作结果

        当选择集合操作笛卡尔积时,集合操作结果如下:

        $0.a b $1.a c
        a1 b1 a1 c1
        a3 c3
        a2 b2 a1 c1
        a3 c3
        a5 b5 a1 c1
        a3 c3
  • 左联
    • 查询统计0结果
      a b
      a1 b1
      a2 b2
      a3 b3
    • 查询统计1结果
      a b c
      a1 b11 c1
      a2 b22 c2
    • 集合操作结果

      当选择集合操作左联$0.a == $1.a时,集合操作结果如下:

      a $0.b $1.b c
      a1 b1 b11 c1
      a2 b2 b22 c2
      a3 b3
  • 右联
    • 查询统计0结果
      a b c
      a1 b11 c1
      a2 b22 c2
    • 查询统计1结果
      a b
      a1 b1
      a2 b2
      a3 b3
    • 集合操作结果

      当选择集合操作右联$0.a == $1.a时,集合操作结果如下:

      a $0.b c $1.b
      a1 b11 c1 b1
      a2 b22 c2 b2
      a3 b3
  • 全联
    • 查询统计0
      a b c
      a1 b1 c1
      a2 b2 c2
      a5 b5 c3
    • 查询统计1结果
      a b d
      a1 b11 d1
      a2 b22 d2
      a3 b33 d3
    • 集合操作结果

      当选择集合操作全联$0.a == $1.a时,集合操作结果如下:

      a $0.b c $1.b d
      a1 b1 c1 b11 d1
      a2 b2 c2 b22 d2
      a5 b5 c3
      a3 b33 d3