Ресурси

Ресурс представляє сутність, що продукує телеметрію, у вигляді атрибутів ресурсу. Наприклад, OTP Release, що створює телеметрію у контейнері в Kubernetes, має імʼя OTP Releaseу, імʼя пода, простір імен і, можливо, імʼя розгортання. Всі ці чотири атрибути можуть бути включені до ресурсу.

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

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

Детектори ресурсів отримують атрибути ресурсів з різних джерел. Стандартно детектори використовують змінну середовища ОС OTEL_RESOURCE_ATTRIBUTES та змінну середовища застосунку OTP resource.

Детектори, які використовуються, це список імен модулів і можуть бути налаштовані в конфігурації застосунку:

%% sys.config {opentelemetry, {resource_detectors, [otel_resource_env_var, otel_resource_app_env]}}
## runtime.exs config :opentelemetry, resource_detectors: [:otel_resource_env_var, :otel_resource_app_env]

Або через змінну середовища OTEL_RESOURCE_DETECTORS:

OTEL_RESOURCE_DETECTORS=otel_resource_env_var,otel_resource_app_env

Усі детектори ресурсів захищені тайм-аутом, у мілісекундах, після якого вони повертають порожнє значення. Це дозволяє детекторам ресурсів робити такі речі, як доступ до мережі, без потенційного зависання всієї програми. Типово це 5000 мілісекунд і може бути встановлено за допомогою змінної середовища OTEL_RESOURCE_DETECTOR_TIMEOUT або змінної застосунку otel_resource_detector_timeout.

Додавання ресурсів за допомогою змінних середовища ОС та застосунку OTP

З двома увімкненими стандартними детекторами ресурсів ви можете встановити атрибути ресурсів за допомогою змінної середовища ОС OTEL_RESOURCE_ATTRIBUTES:

OTEL_RESOURCE_ATTRIBUTES="deployment.environment=development"

Альтернативно, використовуйте змінну середовища resource застосунку OTP у конфігурації застосунку opentelemetry у sys.config або runtime.exs:

%% sys.config {opentelemetry, {resource, #{deployment => #{environment => <<"development">>}}}}
## runtime.exs config :opentelemetry, resource: %{deployment: %{environment: "development" }}

Атрибути ресурсів у змінній середовища resource застосунку OTP розгортаються та обʼєднуються з . таким чином, що #{deployment => #{environment => <<"development">> } є тим самим, що і #{'deployment.environment' => <<"development">>}.

Користувацькі детектори ресурсів

Користувацькі детектори ресурсів можуть бути створені шляхом реалізації поведінки otel_resource_detector, яка містить єдиний зворотний виклик get_resource/1, що повертає otel_resource.

Зверніть увагу, що існують семантичні домовленості, визначені для resource, яких слід дотримуватися, якщо вони застосовуються при додаванні нових атрибутів ресурсів.


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