mirror of
https://github.com/logos-storage/bittorrent-benchmarks.git
synced 2026-01-02 21:13:11 +00:00
40 lines
937 B
Python
40 lines
937 B
Python
from contextlib import contextmanager
|
|
import logging
|
|
|
|
from benchmarks.core.experiments.experiments import Experiment
|
|
from benchmarks.logging.logging import ExperimentStage, EventBoundary
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@contextmanager
|
|
def experiment_stage(experiment: Experiment, name: str):
|
|
logger.info(
|
|
ExperimentStage(
|
|
name=experiment.experiment_id() or "",
|
|
stage=name,
|
|
type=EventBoundary.start,
|
|
)
|
|
)
|
|
|
|
try:
|
|
yield
|
|
except Exception as exc:
|
|
logger.info(
|
|
ExperimentStage(
|
|
name=experiment.experiment_id() or "",
|
|
stage=name,
|
|
type=EventBoundary.end,
|
|
error=str(exc),
|
|
)
|
|
)
|
|
raise
|
|
|
|
logger.info(
|
|
ExperimentStage(
|
|
name=experiment.experiment_id() or "",
|
|
stage=name,
|
|
type=EventBoundary.end,
|
|
)
|
|
)
|