Common params for all output and filter plugins
---

Status : core feature, unit tested and maintained.

#### In url format

* ``only_type``: execute the filter / output plugin only on lines with specified type. Example: ``only_type=nginx``
* ``only_field_exist_toto``: execute the filter / output plugin only on lines with a field ``toto``. You can specify it multiple times, all fields have to exist.
* ``only_field_equal_toto=aaa``: execute the filter / output plugin only on lines with a field ``toto``, with value ``aaa``. You can specify it multiple times, all fields have to exist and have the specified value.
* ``only_field_match_toto=aaa$``: execute the filter / output plugin only on lines with a field ``toto``, with value match the regular expression ``aaa$``. You can specify it multiple times, all fields have to exist and match the regular expression.

#### In logstash config format

As in logstash, you can have an [event dependent configuration](https://www.elastic.co/guide/en/logstash/current/event-dependent-configuration.html).

Example 1: use statsd output only for a given type.
````
output {
  if [type] == nginx {
    statsd {
      host => localhost
      port => 8125
      metric_type => increment
      metric_key => nginx.request
    }
  }
}
````

As in logstash, you can use complex conditions: ``if [loglevel] == "ERROR" and [deployment] == "production" {``

You can use the following comparison operators:
* equality: ``==``, ``!=``, ``<``, ``>``, ``<=``, ``>=``
* regexp: ``=~``, ``!~``
* inclusion: ``in``, ``not in``, ``miss``

The supported boolean operators are: ``and``, ``or``, ``nand``, ``xor``.
The supported unary operators are: ``!``.


Conditions can be long and complex. You can use ``if``, ``elsif``, ``else``. Conditions can contain other expressions, you can negate expressions with !, and you can group them with parentheses (...).

Example 2: inject a missing header via filter.
````
filter {
  if [type] miss "undefined" {
    compute_field {
      field => type
      value => '#{somefield}'
    }
  }
}
````


