Files
2026-07-13 12:24:33 +08:00

52 lines
1.3 KiB
Python

# SPDX-License-Identifier: Apache-2.0
"""
Abstract base class for request telemetry.
This module provides the interface for tracking request-level events
in LMCache, such as when a request finishes and its associated async
save operations complete.
"""
# Standard
from abc import ABC, abstractmethod
from typing import Any
class RequestTelemetry(ABC):
"""
Abstract base class for request telemetry.
This class defines the interface for capturing request-level telemetry
events. Implementations can log events, emit metrics, or perform other
actions when specific request lifecycle events occur.
"""
@abstractmethod
def __init__(self, config: dict[str, Any]) -> None:
pass
@abstractmethod
def on_request_store_finished(
self,
request_ids_set: set[str],
model_name: str,
world_size: int,
kv_rank: int,
) -> None:
"""
Callback when request finishes AND all its KV cache store ops completes.
This method ensures that request_ids_set is not empty.
Technically this function is implemented by inspecting the return value
of `get_finished` method.
"""
pass
@abstractmethod
def close(self) -> None:
pass
def __del__(self) -> None:
self.close()