Як використовувати Logfire з бекендом OpenObserve

У нашому попередньому дописі Logfire example which connects to SigNoz instead of Logfire ми показали, як використовувати Logfire з SigNoz як бекенд. У цьому дописі ми продемонструємо, як налаштувати Logfire для надсилання журналів до бекенду OpenObserve.

Дивіться OpenObserve 5-minute Docker + Traefik setup для нашої рекомендованої установки OpenObserve.

Спочатку налаштуйте OTLP для OpenObserve, відвідавши https://openobserve.mydomain.com/web/ingestion/recommended/traces?org_identifier=default.

Вам потрібні як HTTP Endpoint:, так і заголовок Authorization:.

Ось повний приклад коду для надсилання журналів із Logfire до OpenObserve:

test-openobserve.py
#!/usr/bin/env python3
import os
import logfire

# Налаштування змінних середовища
os.environ['OTEL_EXPORTER_OTLP_ENDPOINT'] = 'https://openobserve.mydomain.com/api/default' # Вставте сюди "HTTP Endpoint" OpenObserve
os.environ['OTEL_EXPORTER_OTLP_HEADERS'] = 'Authorization=Basic W280PMn2Y6rnxZURbS1XEQONEZ0GtKpErE6A+sae' # Вставте сюди заголовок "Authorization"

# Налаштування Logfire
logfire.configure(
    service_name='order-processing-service',
    send_to_logfire=False,
)

# Приклад функції з вкладеними spans
def process_order(order_id: str, user_id: str):
    with logfire.span('validate_order'):
        # Імітація перевірки
        print(f"Перевірка замовлення {order_id} для користувача {user_id}")

    with logfire.span('process_payment'):
        # Імітація обробки платежу
        print(f"Обробка платежу для замовлення {order_id}")

        with logfire.span('call_payment_gateway'):
            # Приклад вкладеного span
            print("Виклик API платіжного шлюзу")

    with logfire.span('fulfill_order'):
        # Імітація виконання замовлення
        print(f"Виконання замовлення {order_id}")

# Основне виконання
if __name__ == '__main__':
    with logfire.span('main'):
        process_order('12345', 'user-67890')

Так це виглядає в OpenObserve (Traces у лівому меню, потім Run Query у правому верхньому куті, потім натисніть на трейс, щоб переглянути деталі):

OpenObserve Trace Example


Дивіться схожі статті за категоріями: Monitoring, Python