Filter processor
Filter processor позволяет отбрасывать спаны, метрики и логи по определенным условиям. Процессор использует язык OTTL для определения фильтров. Если любое из условий истина то сущность будет отброшена. Каждая опция конфигурации соотносится с определенным контекстом OTTL:
Config | OTTL Context |
---|---|
traces.span | Span |
traces.spanevent | SpanEvent |
metrics.metric | Metric |
metrics.datapoint | DataPoint |
logs.log_record | Log |
Опция error_mode
позволяет определить поведение процессора при ошибке обработки OTTL выражений:
- ignore - процессор игнорирует ошибку записывая её в лог и переходит к следующему правилу.
- silent - то же самое но без логирования.
- propogate (default) - ошибка пробрасывается наверх по стеку, что приводит к тому, что вся информация будет отброшена коллектором.
Процессору доступны все Converters функции OTTL, а так же он добавляет две (по состоянию на начало 2025-ого) свои для метрик:
Примеры
Dropping data based on a resource attribute
processors:
filter:
error_mode: ignore
traces:
span:
- IsMatch(resource.attributes["k8s.pod.name"], "my-pod-name.*")
Dropping metrics with invalid type
processors:
filter:
error_mode: ignore
metrics:
metric:
- type == METRIC_DATA_TYPE_NONE
Dropping specific metric and value
processors:
filter:
error_mode: ignore
metrics:
datapoint:
- metric.name == "k8s.pod.phase" and value_int == 4
Dropping non-HTTP spans
processors:
filter:
error_mode: ignore
traces:
span:
- attributes["http.request.method"] == nil
Dropping HTTP spans
processors:
filter:
error_mode: ignore
traces:
span:
- attributes["http.request.method"] != nil