当前位置:首页 > 开发 > 开源软件 > 正文

6.ElasticSearch预警服务-Watcher详解-Transform设置

发表于: 2015-05-25   作者:corejava2008   来源:转载   浏览次数:
摘要: ElasticSearch预警服务-Watcher详解-Transform设置Transform(数据转换),在Watcher服务的Action执行前执行。可以执行Transform的位置有两次,分别是:1.全局定义(Watch Level),将对所有的Watch动作生效2.局部定义(Action Level),只对指定的Watch动作生效设置案例: { "trigger&quo

ElasticSearch预警服务-Watcher详解-Transform设置
Transform(数据转换),在Watcher服务的Action执行前执行。
可以执行Transform的位置有两次,分别是:
1.全局定义(Watch Level),将对所有的Watch动作生效
2.局部定义(Action Level),只对指定的Watch动作生效

设置案例:

{
  "trigger" : { ...}
  "input" : { ... },
  "condition" : { ... },
  "transform" : { #此处为全局的 
    "search" : {
      "body" : { "query" : { "match_all" : {} } }
    }
  }
  "actions" : {
    "tyler_webhook": {
      "transform" : { #次数为局部
        "script" : "return ctx.payload.hits"
      }
      "webhook" : {
        "host" : "host.domain",
        "port" : 8089,
        "path" : "/notify/{{ctx.watch_id}}"
      }
    }
  ]
  ...
}

目前支持的三种定义类型为search, script ,chain
1.Search Transform
执行一个查询,并将返回结果替换Context中的内容。
来看一下局部定义的Search Transform:

{
  ...
  "transform" : {
    "search" : {
      "body" : { "query" : { "match_all" : {} } }
    }
  }
  ...
}

 #带参数定义

{
  "transform" : {
    "search" : {
      "search_type" : "count", #执行Count操作
      "indices" : [ "logstash-*" ], #查询所有以logstash开头的索引
      "body" : {
        "query" : {
          "match" : { "priority" : "error"} #查询proiority为Error的数据
        }
      }
    }
  }
}

 #支持ES的全部搜索API格式...

{
  "transform" : {
    "search" : {
      "search_type" : "count",
      "index" : [ "logstash-*" ],
      "type" : "event",
      "body" : {
        "query" : {
          "filtered" : {
            "filter" : {
              "bool" : {
                "must" : [
                  {
                    "range" : {
                      "@timestamp" : {
                        "from" : "{{ctx.trigger.scheduled_time}}||-30s",
                        "to" : "{{ctx.trigger.triggered_time}}"
                      }
                    }
                  },
                  {
                    "query" : {
                      "match" : { "priority" : "error"}
                    }
                  }
                ]
              }
            }
          }
        }
      }
    }
  }
}

 #支持 inline template查询

{
  "transform" : {
    "search" : {
      "search_type" : "count",
      "index" : [ "logstash-*" ],
      "type" : "event",
      "body" : {
        "template" {
          "inline" : {
            "query" : {
              "filtered" : {
                "filter" : {
                  "bool" : {
                    "must" : [
                      {
                        "range" : {
                          "@timestamp" : {
                            "from" : "{{ctx.trigger.scheduled_time}}||-30s",
                            "to" : "{{ctx.trigger.triggered_time}}"
                          }
                        }
                      },
                      {
                        "query" : {
                          "match" : { "priority" : "{{priority}}"}
                        }
                      }
                    ]
                  }
                }
              }
            },
            "params" : {
              "priority" : "error"
            }
          }
        }
      }
    }
  }
}

 2.Script Transform
需要注意的是,从ESv1.4.3开始, inline groovy scripts功能是默认关闭的,请注意开启
简单的脚本设置定义:

{  ...
  "transform" : {
    "script" : "return [ time : ctx.trigger.scheduled_time ]" #Groovy脚本
  }
  ...
}

 3.Chain Transform
链式数据转换,指可以指定多个Transform组成数据量,一个Transform的输出作为下一个Transfrom的输入.

{
  ...

  "transform" : {
    "chain" : [ #定义格式
      {
        "search" : {  #搜索Transform,执行count查询
          "search_type" : "count",
          "indices" : [ "logstash-*" ],
          "body" : {
            "query" : {
              "match" : { "priority" : "error"}
            }
          }
        }
      },
      { #脚本Transform,将count结果赋值给Error_count字段
        "script" : "return [ error_count : ctx.payload.hits.total ]"  
      }
    ]
  }
  ...
}

 

 

6.ElasticSearch预警服务-Watcher详解-Transform设置

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
关于css3的transform,做了一个demo,上代码 html: 1 <!DOCTYPE html> 2 <html> 3 <
一.OSWatcher 说明 OSWatcher 是Oracle 提供的一个用于操作系统监控的工具包,分Windows 和Linux 2
Project Proffesional没法一目了然地看到,为了实时看到任务延迟情况,我们必须设置预警灯。 1.添加
什么是View Transform 我们可以用照相机的原理来阐释3D图形的绘制过程,想象一下,我们在摄影的时候
http://www.cnblogs.com/graphics/archive/2012/07/12/2476413.html 什么是View Transform 我们可以
设置前景色,做预警 选中F4,找到前景色,点击表达式,设为if(F4>15000,-65536,-16777216) 如果想设
http://blog.csdn.net/xiajun07061225/article/details/7762711 在图形学中,同样的一个模型视图变
Transform组件是每个游戏对象必须有的一个组建,因为你创建一个空物体,它也有该组建,因为unity3d
问题导读: 1.zookeeper观察者什么时候调用? 2.传统远程轮询服务存在什么问题? 3.zk中回调服务的机
服务相关命令 开启服务命令 Net/sc Net 用于开启没有被禁用的、启动模式为手动的服务 Sc 可以开启被
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号