连接到 SigNoz 而非 Logfire 的 Logfire 示例
下面的脚本是一个测试脚本,用于使用 Logfire 库将 trace 发送到 SigNoz 实例,而不是 Logfire 自带的后端。它演示了如何为 OpenTelemetry Protocol (OTLP) 导出器设置环境变量以指向 SigNoz 端点,以及如何为假设的订单处理函数的不同部分创建嵌套 span。
关于 SigNoz 的部署,请参见使用 Traefik 配置的 SigNoz 独立 docker-compose。
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,
)
# 带嵌套 span 的示例函数
def process_order(order_id: str, user_id: str):
with logfire.span('validate_order'):
# 模拟验证
print(f"Validating order {order_id} for user {user_id}")
with logfire.span('process_payment'):
# 模拟支付处理
print(f"Processing payment for order {order_id}")
with logfire.span('call_payment_gateway'):
# 嵌套 span 示例
print("Calling payment gateway API")
with logfire.span('fulfill_order'):
# 模拟订单履行
print(f"Fulfilling order {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