52 lines
1.3 KiB
Python
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()
|