WARNING: Version 6.1 of Metricbeat has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Define processors
editDefine processors
editYou define processors in the metricbeat.yml
file to filter and enhance the
data before sending events to the configured output.
To define a processor, you specify the processor name, an optional condition, and a set of parameters:
processors: - <processor_name>: <parameters> when: <condition> - <processor_name>: <parameters> when: <condition> ...
Where:
-
<processor_name>
specifies a processor that performs some kind of action, such as selecting the fields that are exported or adding metadata to the event. -
<when: condition>
specifies an optional condition. If the condition is present, then the action is executed only if the condition is fulfilled. If no condition is passed, then the action is always executed. -
<parameters>
is the list of parameters to pass to the processor.
Processors
editThe supported processors are:
Conditions
editEach condition receives a field to compare. You can specify multiple fields
under the same condition by using AND
between the fields (for example,
field1 AND field2
).
For each field, you can specify a simple field name or a nested map, for
example dns.question.name
.
See Exported fields for a list of all the fields that are exported by Metricbeat.
The supported conditions are:
equals
editWith the equals
condition, you can compare if a field has a certain value.
The condition accepts only an integer or a string value.
For example, the following condition checks if the response code of the HTTP transaction is 200:
equals: http.response.code: 200
contains
editThe contains
condition checks if a value is part of a field. The field can be
a string or an array of strings. The condition accepts only a string value.
For example, the following condition checks if an error is part of the transaction status:
contains: status: "Specific error"
regexp
editThe regexp
condition checks the field against a regular expression. The
condition accepts only strings.
For example, the following condition checks if the process name starts with
foo
:
regexp: system.process.name: "foo.*"
range
editThe range
condition checks if the field is in a certain range of values. The
condition supports lt
, lte
, gt
and gte
. The condition accepts only
integer or float values.
For example, the following condition checks for failed HTTP transactions by
comparing the http.response.code
field with 400.
range: http.response.code: gte: 400
This can also be written as:
range: http.response.code.gte: 400
The following condition checks if the CPU usage in percentage has a value between 0.5 and 0.8.
range: system.cpu.user.pct.gte: 0.5 system.cpu.user.pct.lt: 0.8
or
editThe or
operator receives a list of conditions.
or: - <condition1> - <condition2> - <condition3> ...
For example, to configure the condition
http.response.code = 304 OR http.response.code = 404
:
or: - equals: http.response.code: 304 - equals: http.response.code: 404
and
editThe and
operator receives a list of conditions.
and: - <condition1> - <condition2> - <condition3> ...
For example, to configure the condition
http.response.code = 200 AND status = OK
:
and: - equals: http.response.code: 200 - equals: status: OK
To configure a condition like <condition1> OR <condition2> AND <condition3>
:
or: - <condition1> - and: - <condition2> - <condition3>
not
editThe not
operator receives the condition to negate.
not: <condition>
For example, to configure the condition NOT status = OK
:
not: equals: status: OK