Como usar Logfire com backend OpenObserve

No nosso post anterior Exemplo Logfire que se conecta ao SigNoz em vez de Logfire mostramos como usar Logfire com SigNoz como backend. Neste post, demonstraremos como configurar o Logfire para enviar logs para um backend OpenObserve.

Veja Configuração OpenObserve 5 minutos com Docker + Traefik para nossa configuração recomendada do OpenObserve.

Primeiro, configure OTLP para OpenObserve visitando https://openobserve.mydomain.com/web/ingestion/recommended/traces?org_identifier=default.

Você precisa tanto do HTTP Endpoint: quanto do cabeçalho Authorization:.

Aqui está o código de exemplo completo para enviar logs do Logfire para OpenObserve:

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

# Configurar variáveis de ambiente
os.environ['OTEL_EXPORTER_OTLP_ENDPOINT'] = 'https://openobserve.mydomain.com/api/default' # Insira o "HTTP Endpoint" do OpenObserve aqui
os.environ['OTEL_EXPORTER_OTLP_HEADERS'] = 'Authorization=Basic W280PMn2Y6rnxZURbS1XEQONEZ0GtKpErE6A+sae' # Insira o cabeçalho "Authorization" aqui

# Configurar Logfire
logfire.configure(
    service_name='order-processing-service',
    send_to_logfire=False,
)

# Função de exemplo com spans aninhados
def process_order(order_id: str, user_id: str):
    with logfire.span('validate_order'):
        # Simular validação
        print(f"Validating order {order_id} for user {user_id}")

    with logfire.span('process_payment'):
        # Simular processamento de pagamento
        print(f"Processing payment for order {order_id}")

        with logfire.span('call_payment_gateway'):
            # Exemplo de span aninhado
            print("Calling payment gateway API")

    with logfire.span('fulfill_order'):
        # Simular fulfillment do pedido
        print(f"Fulfilling order {order_id}")

# Execução principal
if __name__ == '__main__':
    with logfire.span('main'):
        process_order('12345', 'user-67890')

É assim que aparece no OpenObserve (Traces no menu esquerdo, depois Run Query no canto superior direito, depois clique no trace para ver detalhes):

OpenObserve Trace Example


Check out similar posts by category: Monitoring, Python