Loading

Chain payload transform

Stack

Use the chain payload transform to execute an ordered list of transforms sequentially, where the output of one transform serves as the input of the next. This transform enables you to build complex data processing pipelines by combining search, script, and other chain transforms.

You can use chain payload transforms to build more complex transforms out of the other available transforms. For example, you can combine a search payload transform and a script payload transform, as shown in the following snippet:

"transform" : {
  "chain" : [
    {
      "search" : {
        "request": {
          "indices" : [ "logstash-*" ],
          "body" : {
            "size" : 0,
            "query" : {
              "match" : { "priority" : "error" }
            }
          }
        }
      }
    },
    {
      "script" : "return [ 'error_count' : ctx.payload.hits.total ]"
    }
  ]
}
		
  1. The chain payload transform definition
  2. The first transform in the chain (in this case, a search payload transform)
  3. The second and final transform in the chain (in this case, a script payload transform)

This example executes a count search on the cluster to look for error events. The search results are then passed to the second script payload transform. The script payload transform extracts the total hit count and assigns it to the error_count field in a newly-generated payload. This new payload is the output of the chain payload transform and replaces the payload in the watch execution context.