Wie man Logfire mit OpenObserve-Backend verwendet
In unserem vorherigen Beitrag Logfire-Beispiel, das sich mit SigNoz statt mit Logfire verbindet haben wir gezeigt, wie man Logfire mit SigNoz als Backend verwendet. In diesem Beitrag werden wir demonstrieren, wie man Logfire konfiguriert, um Logs an ein OpenObserve-Backend zu senden.
Siehe OpenObserve 5-Minuten Docker + Traefik-Setup für unser empfohlenes OpenObserve-Setup.
Konfiguriere zuerst OTLP für OpenObserve, indem du https://openobserve.mydomain.com/web/ingestion/recommended/traces?org_identifier=default besuchst.
Du benötigst sowohl den HTTP Endpoint: als auch den Authorization:-Header.
Hier ist der vollständige Beispielcode, um Logs von Logfire an OpenObserve zu senden:
#!/usr/bin/env python3
import os
import logfire
# Umgebungsvariablen konfigurieren
os.environ['OTEL_EXPORTER_OTLP_ENDPOINT'] = 'https://openobserve.mydomain.com/api/default' # Hier den OpenObserve "HTTP Endpoint" einfügen
os.environ['OTEL_EXPORTER_OTLP_HEADERS'] = 'Authorization=Basic W280PMn2Y6rnxZURbS1XEQONEZ0GtKpErE6A+sae' # Hier den "Authorization"-Header einfügen
# Logfire konfigurieren
logfire.configure(
service_name='order-processing-service',
send_to_logfire=False,
)
# Beispielfunktion mit verschachtelten Spans
def process_order(order_id: str, user_id: str):
with logfire.span('validate_order'):
# Validierung simulieren
print(f"Validating order {order_id} for user {user_id}")
with logfire.span('process_payment'):
# Zahlungsabwicklung simulieren
print(f"Processing payment for order {order_id}")
with logfire.span('call_payment_gateway'):
# Beispiel für verschachtelten Span
print("Calling payment gateway API")
with logfire.span('fulfill_order'):
# Auftragsabwicklung simulieren
print(f"Fulfilling order {order_id}")
# Hauptausführung
if __name__ == '__main__':
with logfire.span('main'):
process_order('12345', 'user-67890')So sieht es in OpenObserve aus (Traces im linken Menü, dann Run Query oben rechts, dann klicke auf den Trace, um Details zu sehen):
