import uuid
from datetime import datetime, timezone, timedelta
import scale_gp_beta.lib.tracing as tracing
now = datetime.now(timezone.utc)
# Example: Flushing a single span immediately after creation
single_span = tracing.create_span("critical_single_operation", trace_id=str(uuid.uuid4()))
single_span.start_time = now.isoformat()
single_span.end_time = (now + timedelta(seconds=1)).isoformat()
single_span.output = {"status": "completed"}
single_span.flush() # This span is sent to the backend immediately
# Example: Flushing a trace's root span
my_trace = tracing.create_trace(name="important_trace")
my_trace.root_span.start_time = now.isoformat()
# ... perform operations within the trace ...
my_trace.root_span.end_time = (now + timedelta(seconds=5)).isoformat()
my_trace.flush()