Як використовувати 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:
#!/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 у правому верхньому куті, потім натисніть на трейс, щоб переглянути деталі):
