Використання бібліотек інструментування

Під час розробки застосунку ви можете використовувати сторонні бібліотеки та фреймворки для прискорення роботи. Якщо ви потім інструментуєте свій застосунок за допомогою OpenTelemetry, ви можете не витрачати додатковий час на ручне додавання трейсів, логів та метрик до сторонніх бібліотек та фреймворків, які ви використовуєте.

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

Якщо ви інструментуєте застосунок або сервіс, який використовує сторонні бібліотеки або фреймворки, дотримуйтесь цих інструкцій, щоб дізнатися, як використовувати вбудовані бібліотеки інструментування та бібліотеки інструментування для ваших залежностей.

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

Якщо бібліотека стандартно постачається з підтримкою OpenTelemetry, ви можете отримувати трейси, метрики та логи, що генеруються цією бібліотекою, додавши та налаштувавши OpenTelemetry SDK у вашому застосунку.

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

Використання бібліотек інструментування

Якщо бібліотека не підтримує OpenTelemetry нативно, ви можете використовувати бібліотеки інструментування для генерації даних телеметрії для бібліотеки або фреймворку.

Наприклад, бібліотека інструментування для HTTPX автоматично створює відрізки на основі HTTP-запитів.

Налаштування

Ви можете встановити кожну бібліотеку інструментування окремо за допомогою pip. Наприклад:

pip install opentelemetry-instrumentation-{instrumented-library}

У попередньому прикладі, {instrumented-library} — це назва бібліотеки інструментування.

Щоб встановити версію для розробки, клонувати або зробити форк репозиторію opentelemetry-python-contrib і виконати наступну команду для редагованої установки:

pip install -e ./instrumentation/opentelemetry-instrumentation-{integration}

Після встановлення, вам потрібно ініціалізувати бібліотеку інструментування. Кожна бібліотека зазвичай має свій спосіб ініціалізації.

Приклад з інструментуванням HTTPX

Ось як ви можете інструментувати HTTP-запити, зроблені за допомогою бібліотеки httpx.

Спочатку встановіть бібліотеку інструментування за допомогою pip:

pip install opentelemetry-instrumentation-httpx

Далі, використовуйте інструментування для автоматичного трасування запитів від усіх клієнтів:

import httpx
from opentelemetry.instrumentation.httpx import HTTPXClientInstrumentor

url = "https://some.url/get"
HTTPXClientInstrumentor().instrument()

with httpx.Client() as client:
     response = client.get(url)

async with httpx.AsyncClient() as client:
     response = await client.get(url)

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

Якщо потрібно, ви можете відключити інструментування для конкретних клієнтів або всіх клієнтів за допомогою методу uninstrument_client. Наприклад:

import httpx
from opentelemetry.instrumentation.httpx import HTTPXClientInstrumentor

HTTPXClientInstrumentor().instrument()
client = httpx.Client()

# Відключити інструментування для конкретного клієнта
HTTPXClientInstrumentor.uninstrument_client(client)

# Відключити інструментування для всіх клієнтів
HTTPXClientInstrumentor().uninstrument()

Доступні бібліотеки інструментування

Повний список бібліотек інструментування, створених OpenTelemetry, доступний у репозиторії opentelemetry-python-contrib.

Ви також можете знайти більше інструментів у реєстрі.

Наступні кроки

Після налаштування бібліотек інструментування, ви можете додати власне інструментування до вашого коду, щоб збирати власні дані телеметрії.

Ви також можете налаштувати відповідний експортер для експорту ваших даних телеметрії до одного або більше бекендів телеметрії.

Ви також можете перевірити Інструментування для Python без коду.


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