[feat] add observability runtime

This commit is contained in:
Azamat 2026-03-20 21:38:42 +03:00
parent cb4560db5c
commit 741e63e978
5 changed files with 335 additions and 0 deletions

View file

@ -0,0 +1,54 @@
from types import TracebackType
from usecase.interface import Attrs, AttrValue
class NoopMetrics:
def increment(
self,
name: str,
value: int = 1,
attrs: Attrs | None = None,
) -> None:
return None
def record(
self,
name: str,
value: float,
attrs: Attrs | None = None,
) -> None:
return None
class NoopSpan:
def set_attribute(self, name: str, value: AttrValue) -> None:
return None
def record_error(self, error: Exception) -> None:
return None
class NoopSpanContext:
def __init__(self) -> None:
self._span = NoopSpan()
def __enter__(self) -> NoopSpan:
return self._span
def __exit__(
self,
exc_type: type[BaseException] | None,
exc: BaseException | None,
traceback: TracebackType | None,
) -> bool | None:
return None
class NoopTracer:
def start_span(
self,
name: str,
attrs: Attrs | None = None,
) -> NoopSpanContext:
return NoopSpanContext()