Перетворення телеметрії
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.
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!