Пример Logfire, который подключается к SigNoz вместо Logfire
Следующий скрипт — это тестовый скрипт для использования библиотеки Logfire для отправки трассировок в экземпляр SigNoz вместо собственного бэкенда Logfire. Он демонстрирует, как настроить переменные окружения для экспортёра OpenTelemetry Protocol (OTLP), чтобы указать на конечную точку SigNoz, и как создать вложенные спаны для трассировки различных частей гипотетической функции обработки заказа.
Для настройки SigNoz см. Автономный docker-compose SigNoz с конфигурацией Traefik.
logfire_signoz_example.py
#!/usr/bin/env python3
import os
import logfire
# Настройка переменных окружения
os.environ['OTEL_EXPORTER_OTLP_ENDPOINT'] = 'https://http.signoz.mydomain.com/'
# Настройка Logfire
logfire.configure(
send_to_logfire=False,
)
# Пример функции с вложенными спанами
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'):
# Пример вложенного спана
print("Вызов API платёжного шлюза")
with logfire.span('fulfill_order'):
# Имитация выполнения заказа
print(f"Выполнение заказа {order_id}")
# Основное выполнение
if __name__ == '__main__':
with logfire.span('main'):
process_order('12345', 'user-67890')Так это выглядит в SigNoz:

Check out similar posts by category:
Python, Monitoring
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow