Allow execution times over 1 second
This commit is contained in:
parent
7aeb015bb1
commit
fb601dfba1
1 changed files with 5 additions and 3 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
from contextvars import ContextVar
|
from contextvars import ContextVar
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
from time import perf_counter
|
||||||
from types import TracebackType
|
from types import TracebackType
|
||||||
from typing import Any, Dict, Generic, List, Literal, Optional, Type, TypeVar, cast
|
from typing import Any, Dict, Generic, List, Literal, Optional, Type, TypeVar, cast
|
||||||
from uuid import uuid4
|
from uuid import uuid4
|
||||||
|
|
@ -17,7 +18,8 @@ class TracingContext(Generic[T]):
|
||||||
self._models: List[Model] = []
|
self._models: List[Model] = []
|
||||||
self._values: Dict[str, Any] = {}
|
self._values: Dict[str, Any] = {}
|
||||||
self._trace: Optional[Trace[T]] = None
|
self._trace: Optional[Trace[T]] = None
|
||||||
self._start_time = datetime.utcnow()
|
self._start_datetime = datetime.utcnow()
|
||||||
|
self._start_time = perf_counter()
|
||||||
self._name = function_name
|
self._name = function_name
|
||||||
|
|
||||||
def log_value(self, name: str, value: Any) -> None:
|
def log_value(self, name: str, value: Any) -> None:
|
||||||
|
|
@ -31,12 +33,12 @@ class TracingContext(Generic[T]):
|
||||||
) -> Trace[T]:
|
) -> Trace[T]:
|
||||||
assert self._trace is None, "has been already finalised"
|
assert self._trace is None, "has been already finalised"
|
||||||
|
|
||||||
delta_time = (datetime.utcnow() - self._start_time).microseconds / 1000
|
delta_time = round((perf_counter() - self._start_time) * 1000, 4)
|
||||||
self._trace = cast(
|
self._trace = cast(
|
||||||
Trace[T],
|
Trace[T],
|
||||||
Trace( # avoid ValueError: "Trace" object has no field "__orig_class__"
|
Trace( # avoid ValueError: "Trace" object has no field "__orig_class__"
|
||||||
trace_id=str(uuid4()),
|
trace_id=str(uuid4()),
|
||||||
created=self._start_time.isoformat(),
|
created=self._start_datetime.isoformat(),
|
||||||
original_execution_time_ms=delta_time,
|
original_execution_time_ms=delta_time,
|
||||||
logged_values=self._values,
|
logged_values=self._values,
|
||||||
models=self._models,
|
models=self._models,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue