""" PD-Sep Lifecycle Profiler — patch for mooncake_connector.py + scheduler.py Activated by env var: VLLM_PD_PROFILE_LOG=/path/to/events.jsonl Each line is one event: {"t_ns": , "event": "", "req_id": "", "transfer_id": "", "role": "", "data": {...event-specific fields...}} This module is imported by the patched mooncake_connector.py and scheduler.py to centralize event emission. """ import os import json import time import threading from typing import Any _LOG_FILE = os.environ.get("VLLM_PD_PROFILE_LOG", "") _LOCK = threading.Lock() _HANDLE = None _ENABLED = bool(_LOG_FILE) def _get_handle(): global _HANDLE if _HANDLE is None and _ENABLED: _HANDLE = open(_LOG_FILE, "a", buffering=1) # line-buffered return _HANDLE def emit(event: str, req_id: str = "", transfer_id: str = "", role: str = "", **data: Any) -> None: """Record a profile event. No-op if VLLM_PD_PROFILE_LOG is not set.""" if not _ENABLED: return record = { "t_ns": time.perf_counter_ns(), "event": event, "req_id": str(req_id), "transfer_id": str(transfer_id), "role": role, "data": data, } try: h = _get_handle() if h: with _LOCK: h.write(json.dumps(record, default=str) + "\n") except Exception: pass # never let profiling break vLLM def enabled() -> bool: return _ENABLED