Перетворення телеметрії

OpenTelemetry Collector — це зручне місце для перетворення даних перед надсиланням їх постачальнику або іншим системам. Це часто робиться з міркувань якості даних, управління, вартості та безпеки.

Обробники, доступні в Collector Contrib репозиторії, підтримують десятки різних перетворень метрик, відрізків та даних логів. У наступних розділах наведено кілька базових прикладів для початку роботи з деякими часто використовуваними процесорами.

Конфігурація процесорів, особливо розширені перетворення, може мати значний вплив на продуктивність колектора.

Базова фільтрація

Процесор: filter processor

Процесор фільтрації дозволяє користувачам фільтрувати телеметрію за допомогою OTTL. Телеметрія, яка відповідає будь-якій умові, відкидається.

Наприклад, дозволити лише дані з сервісів app1, app2 та app3 і відкинути дані з усіх інших сервісів:

processors:
  filter/ottl:
    error_mode: ignore
    traces:
      span:
        - |
        resource.attributes["service.name"] != "app1" and
        resource.attributes["service.name"] != "app2" and
        resource.attributes["service.name"] != "app3"

Для того, щоб відкинути лише відрізки з сервісу з назвою service1, зберігаючи всі інші відрізки:

processors:
  filter/ottl:
    error_mode: ignore
    traces:
      span:
        - resource.attributes["service.name"] == "service1"

Документація filter processor містить більше прикладів, включаючи фільтрацію за логами та метриками.

Додавання або видалення атрибутів

Процесор: attributes processor або resource processor

Процесор атрибутів можна використовувати для оновлення, вставки, видалення або заміни наявних атрибутів у метриках або відрізках. Наприклад, ось конфігурація, яка додає атрибут з назвою account_id до всіх відрізків:

processors:
  attributes/accountid:
    actions:
      - key: account_id
        value: 2245
        action: insert

Процесор ресурсів має ідентичну конфігурацію, але застосовується лише до атрибутів ресурсів. Використовуйте процесор ресурсів для зміни метаданих інфраструктури, повʼязаних з телеметрією. Наприклад, це додає назву кластера Kubernetes:

processors:
  resource/k8s:
    attributes:
      - key: k8s.cluster.name
        from_attribute: k8s-cluster
        action: insert

Перейменування метрик або міток метрик

Процесор: metrics transform processor

metrics transform processor має деяку функціональність, спільну з attributes processor, але також підтримує перейменування та іншу специфічну для метрик функціональність.

processors:
  metricstransform/rename:
    transforms:
      - include: system.cpu.usage
        action: update
        new_name: system.cpu.usage_time

Процесор metrics transform processor також підтримує регулярні вирази для застосування правил перетворення до кількох назв метрик або міток метрик одночасно. Цей приклад перейменовує cluster_name на cluster-name для всіх метрик:

processors:
  metricstransform/clustername:
    transforms:
      - include: ^.*$
        match_type: regexp
        action: update
        operations:
          - action: update_label
            label: cluster_name
            new_label: cluster-name

Збагачення телеметрії атрибутами ресурсів

Процесор: resource detection processor та k8sattributes processor

Ці процесори можна використовувати для збагачення телеметрії відповідними метаданими інфраструктури, щоб допомогти командам швидко визначити, коли підрядна інфраструктура впливає на справність або продуктивність служби.

Процесор виявлення ресурсів додає до телеметрії відповідну інформацію на рівні хмари або хосту:

processors:
  resourcedetection/system:
    # Змініть список детекторів відповідно до хмарного середовища
    detectors: [env, system, gcp, ec2, azure]
    timeout: 2s
    override: false

Аналогічно, процесор K8s збагачує телеметрію відповідними метаданими Kubernetes, такими як назва пода, назва вузла або назва робочого навантаження. Под колектора повинен бути налаштований на надання доступу для читання для певних API Kubernetes RBAC. Щоб використовувати стандартні параметри, його можна налаштувати з порожнім блоком:

processors:
  k8sattributes/default:

Встановлення статусу відрізка

Процесор: transform processor

Використовуйте процесор перетворення, щоб встановити статус відрізка. Наступний приклад встановлює статус відрізка на Ok, коли атрибут http.request.status_code дорівнює 400:

transform:
  error_mode: ignore
  trace_statements:
    - set(span.status.code, STATUS_CODE_OK) where span.attributes["http.request.status_code"] == 400

Ви також можете використовувати процесор перетворення, щоб змінити назву відрізка на основі його атрибутів або витягнути атрибути відрізка з назви відрізка. Дивіться приклад файлу конфігурації для процесора перетворення.

Розширені перетворення

Складніші перетворення атрибутів також доступні в процесорі перетворення. Процесор перетворення дозволяє кінцевим користувачам вказувати перетворення для метрик, логів і трейсів за допомогою OpenTelemetry Transformation Language.


Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (2a3c5648)