praval.observability.tracing.tracer

OpenTelemetry-compatible Tracer implementation.

Functions

generate_span_id()

Generate a span ID (16-character hex string).

generate_trace_id()

Generate a trace ID (32-character hex string).

get_tracer([name])

Get the global tracer instance.

reset_tracer()

Reset the global tracer to None.

Classes

Tracer([name])

OpenTelemetry-compatible tracer for Praval.

praval.observability.tracing.tracer.generate_trace_id()[source]

Generate a trace ID (32-character hex string).

Return type:

str

Returns:

Trace ID string

praval.observability.tracing.tracer.generate_span_id()[source]

Generate a span ID (16-character hex string).

Return type:

str

Returns:

Span ID string

class praval.observability.tracing.tracer.Tracer(name='praval')[source]

Bases: object

OpenTelemetry-compatible tracer for Praval.

Creates and manages spans for distributed tracing.

Parameters:

name (str)

__init__(name='praval')[source]

Initialize tracer.

Parameters:

name (str) – Tracer name

start_span(name, parent=None, kind=SpanKind.INTERNAL, attributes=None)[source]

Start a new span.

Parameters:
  • name (str) – Span name

  • parent (Optional[TraceContext]) – Parent trace context (optional)

  • kind (SpanKind) – Span kind (default: INTERNAL)

  • attributes (Optional[dict]) – Initial attributes (optional)

Return type:

Span

Returns:

New Span instance or NoOpSpan if disabled

start_as_current_span(name, parent=None, kind=SpanKind.INTERNAL, attributes=None)[source]

Start a new span and set it as current.

This is a context manager that automatically sets the span as current and clears it when done.

Parameters:
  • name (str) – Span name

  • parent (Optional[TraceContext]) – Parent trace context (optional)

  • kind (SpanKind) – Span kind (default: INTERNAL)

  • attributes (Optional[dict]) – Initial attributes (optional)

Returns:

Context manager for the span

get_current_span()[source]

Get the currently active span.

Return type:

Optional[Span]

Returns:

Current span or None

praval.observability.tracing.tracer.get_tracer(name='praval')[source]

Get the global tracer instance.

Parameters:

name (str) – Tracer name (default: “praval”)

Return type:

Tracer

Returns:

Tracer instance

praval.observability.tracing.tracer.reset_tracer()[source]

Reset the global tracer to None.

This is primarily used for testing to ensure test isolation.

Return type:

None