The Filter by Field processor can be used to include or exclude telemetry based on matched resource attributes, attributes, or log body fields.
| Metrics | Logs | Traces |
|---|---|---|
| ✓ | ✓ | ✓ |
| Parameter | Type | Default | Description |
|---|---|---|---|
| telemetry_types | telemetrySelector |
["Logs", "Metrics", "Traces"] |
The list of telemetry types the processor will act on. |
| action | enum |
exclude |
Whether to include (retain) or exclude (drop) matches. |
| match_type | enum |
strict |
Method for matching values. Strict matching requires that ‘value’ be an exact match. Regexp matching uses re2 to match a value. |
| attributes | map |
[] |
Attribute key value pairs to filter on. Telemetry is filtered if all attribute, resource, and body key pairs are matched. |
| resources | map |
[] |
Resource key value pairs to filter on. Telemetry is filtered if all attribute, resource, and body key pairs are matched. |
| bodies | map |
[] |
Log body key value pairs to filter on. Log records filtered if all attribute, resource, and body key pairs are matched. |
In this example, we exclude logs that have all of the following:
host.name resource attribute that equals dev-serverenvironment attribute that equals devremote-ip log body field that equals 127.0.0.1
apiVersion: bindplane.observiq.com/v1
kind: Processor
metadata:
id: filter_field
name: filter_field
spec:
type: filter_field
parameters:
- name: telemetry_types
value:
- Metrics
- Logs
- Traces
- name: action
value: exclude
- name: match_type
value: strict
- name: attributes
value:
environment: dev
- name: resources
value:
host.name: dev-server
- name: bodies
value:
remote-ip: 127.0.0.1