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

Коли ви розробляєте застосунок, ви можете використовувати сторонні бібліотеки та фреймворки, щоб прискорити свою роботу. Якщо ви потім інструментуєте свій застосунок за допомогою 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 без коду.