73 lines
2.3 KiB
Python
73 lines
2.3 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
"""Anonymous usage telemetry for LMCache.
|
|
|
|
Phone-home usage statistics, described in this package's ``README.md``.
|
|
|
|
- The wire schema of every message lives in :mod:`.messages` — the single
|
|
source of truth for what LMCache can phone home.
|
|
- Context reporting (:mod:`.context`, :mod:`.mp`) sends a
|
|
snapshot of the environment and configuration at startup.
|
|
- Continuous reporting (:mod:`.continuous`) flushes interval counters
|
|
(hit/stored tokens) and a cache-lifespan histogram periodically.
|
|
|
|
Every outgoing payload is stamped with a :class:`UsageIdentity` (per-process
|
|
``session_id`` plus persistent ``machine_id``) so the stats backend can join
|
|
continuous messages with the one-shot context that describes the deployment.
|
|
|
|
Every entry point called from serving code is wrapped with
|
|
:func:`lmcache.usage_telemetry.guard.swallow_telemetry_errors`: a failure
|
|
anywhere in telemetry can never affect caching or serving functionality.
|
|
|
|
Users can opt out at any time; see :func:`is_usage_tracking_enabled`.
|
|
"""
|
|
|
|
# First Party
|
|
from lmcache.usage_telemetry.context import (
|
|
InitializeUsageContext,
|
|
UsageContext,
|
|
UsageContextBase,
|
|
)
|
|
from lmcache.usage_telemetry.continuous import ContinuousUsageContext
|
|
from lmcache.usage_telemetry.env_probe import collect_env_message
|
|
from lmcache.usage_telemetry.identity import (
|
|
UsageIdentity,
|
|
get_usage_identity,
|
|
is_usage_tracking_enabled,
|
|
)
|
|
from lmcache.usage_telemetry.messages import (
|
|
USAGE_SCHEMA_VERSION,
|
|
CacheLifespanMessage,
|
|
ContinuousContextMessage,
|
|
DeploymentMode,
|
|
EngineMessage,
|
|
EnvMessage,
|
|
MetadataMessage,
|
|
MPServerMessage,
|
|
UsageMessage,
|
|
)
|
|
from lmcache.usage_telemetry.mp import InitializeMPUsageContext, MPUsageContext
|
|
from lmcache.usage_telemetry.transport import UsageMessageSender
|
|
|
|
__all__ = [
|
|
"USAGE_SCHEMA_VERSION",
|
|
"CacheLifespanMessage",
|
|
"ContinuousContextMessage",
|
|
"ContinuousUsageContext",
|
|
"DeploymentMode",
|
|
"EngineMessage",
|
|
"EnvMessage",
|
|
"InitializeMPUsageContext",
|
|
"InitializeUsageContext",
|
|
"MPServerMessage",
|
|
"MPUsageContext",
|
|
"MetadataMessage",
|
|
"UsageContext",
|
|
"UsageContextBase",
|
|
"UsageIdentity",
|
|
"UsageMessage",
|
|
"UsageMessageSender",
|
|
"collect_env_message",
|
|
"get_usage_identity",
|
|
"is_usage_tracking_enabled",
|
|
]
|