Filter processor

Source:: https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/processor/filterprocessor

Filter processor позволяСт ΠΎΡ‚Π±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ спаны, ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ ΠΈ Π»ΠΎΠ³ΠΈ ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ условиям. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ язык OTTL для опрСдСлСния Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ². Если любоС ΠΈΠ· условий истина Ρ‚ΠΎ ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Π°. КаТдая опция ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ соотносится с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ контСкстом OTTL:

ConfigOTTL Context
traces.spanSpan
traces.spaneventSpanEvent
metrics.metricMetric
metrics.datapointDataPoint
logs.log_recordLog

ΠžΠΏΡ†ΠΈΡ 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