Skip to content

Class swarmauri_standard.tracing.SimpleTracer.SimpleTracer

swarmauri_standard.tracing.SimpleTracer.SimpleTracer

SimpleTracer()

Bases: ITracer

Source code in swarmauri_standard/tracing/SimpleTracer.py
17
18
19
20
21
22
def __init__(self):
    if SimpleTracer._instance is not None:
        raise RuntimeError(
            "SimpleTracer is a singleton. Use SimpleTracer.instance()."
        )
    self.trace_stack = []

trace_stack instance-attribute

trace_stack = []

instance classmethod

instance()
Source code in swarmauri_standard/tracing/SimpleTracer.py
11
12
13
14
15
@classmethod
def instance(cls):
    if cls._instance is None:
        cls._instance = cls()
    return cls._instance

start_trace

start_trace(name, initial_attributes=None)
Source code in swarmauri_standard/tracing/SimpleTracer.py
24
25
26
27
28
29
30
def start_trace(
    self, name: str, initial_attributes: Optional[Dict[str, Any]] = None
) -> SimpleTraceContext:
    trace_id = str(uuid.uuid4())
    trace_context = SimpleTraceContext(trace_id, name, initial_attributes)
    self.trace_stack.append(trace_context)
    return trace_context

end_trace

end_trace()
Source code in swarmauri_standard/tracing/SimpleTracer.py
32
33
34
35
36
37
38
39
def end_trace(self):
    if self.trace_stack:
        completed_trace = self.trace_stack.pop()
        completed_trace.close()
        # Example of simply printing the completed trace; in practice, you might log it or store it elsewhere
        print(
            f"Trace Completed: {completed_trace.name}, Duration: {completed_trace.start_time} to {completed_trace.end_time}, Attributes: {completed_trace.attributes}"
        )

annotate_trace

annotate_trace(key, value)
Source code in swarmauri_standard/tracing/SimpleTracer.py
41
42
43
44
45
46
def annotate_trace(self, key: str, value: Any):
    if not self.trace_stack:
        print("No active trace to annotate.")
        return
    current_trace = self.trace_stack[-1]
    current_trace.add_attribute(key, value)