Ресурси
Ресурс представляє сутність, що генерує телеметрію у вигляді атрибутів ресурсу. Наприклад, процес, що виробляє телеметрію і працює в контейнері на Kubernetes, має імʼя процес, імʼя podʼа, простір імен і, можливо, імʼя розгортання. Всі ці чотири атрибути можуть бути включені в ресурс.
У вашій системі спостереження ви можете використовувати інформацію про ресурси для кращого дослідження цікавих поведінкових аспектів. Наприклад, якщо ваші дані трасування або метрики вказують на затримку в системі, ви можете звузити її до конкретного контейнера, podʼа або розгортання Kubernetes.
Виявлення ресурсів
PHP SDK виявляє ресурси з різних джерел і стандартно використовує всі доступні детектори ресурсів:
- середовище (
OTEL_RESOURCE_ATTRIBUTES
,OTEL_SERVICE_NAME
) - інформація про хост
- операційна система хоста
- поточний процес
- середовище виконання
Вимкнення виявлення ресурсів
Стандартно використовуються всі детектори ресурсів SDK, але ви можете використовувати змінну середовища OTEL_PHP_RESOURCE_DETECTORS
, щоб увімкнути лише певні детектори або повністю вимкнути їх:
env
host
os
process
process_runtime
sdk
sdk_provided
all
- увімкнути всі детектори ресурсівnone
- вимкнути виявлення ресурсів
Наприклад, щоб увімкнути лише детектори env
, host
та sdk
:
env OTEL_PHP_RESOURCE_DETECTORS=env,host,sdk \
php example.php
Власні детектори ресурсів
Детектори ресурсів для загальних платформ або специфічних для постачальників середовищ можуть бути встановлені як пакунки composer.
Наприклад, щоб встановити та увімкнути детектор ресурсів container
:
composer require open-telemetry/detector-container
env OTEL_PHP_RESOURCE_DETECTORS=container \
php example.php
Зверніть увагу, що встановлені детектори автоматично включаються до стандартного списку детекторів ресурсів all
.
Додавання ресурсів за допомогою змінних середовища
Якщо для потрібного вам ресурсу немає детектора SDK, ви можете додати довільні ресурси через змінну середовища OTEL_RESOURCE_ATTRIBUTES
, яка інтерпретується детектором env
. Ця змінна приймає список пар ключ=значення, розділених комами, наприклад:
env OTEL_RESOURCE_ATTRIBUTES="service.name=my_service,service.namespace=demo,service.version=1.0,deployment.environment=development" \
php example.php
Додавання ресурсів у коді
Власні ресурси також можуть бути налаштовані у вашому коді. Тут стандартні ресурси (виявлені, як описано вище) обʼєднуються з власними ресурсами. Ресурси потім передаються провайдеру трасувальника, де вони будуть асоціюватися з усіма створеними відрізками.
$resource = ResourceInfoFactory::defaultResource()->merge(ResourceInfo::create(Attributes::create([
ResourceAttributes::SERVICE_NAMESPACE => 'foo',
ResourceAttributes::SERVICE_NAME => 'bar',
ResourceAttributes::SERVICE_INSTANCE_ID => 1,
ResourceAttributes::SERVICE_VERSION => '0.1',
ResourceAttributes::DEPLOYMENT_ENVIRONMENT => 'development',
])));
$tracerProvider = new TracerProvider(
new SimpleSpanProcessor(
(new ConsoleSpanExporterFactory())->create()
),
null,
$resource
);
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!