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

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",
]