[Bugfix] fix is_usage_stats_enabled when disable it

Signed-off-by: Andy Xie <andy.xning@gmail.com>
This commit is contained in:
Andy Xie 2025-08-24 19:14:24 +08:00
parent 68a349114f
commit 5d74421263
3 changed files with 24 additions and 3 deletions

0
tests/usage/__init__.py Normal file
View File

21
tests/usage/test_usage.py Normal file
View File

@ -0,0 +1,21 @@
# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
from vllm.usage.usage_lib import is_usage_stats_enabled
def test_is_usage_stats_enabled(monkeypatch):
with monkeypatch.context() as m:
# Reset the global state to ensure test isolation.
# The original value will be restored after the test.
monkeypatch.setattr("vllm.usage.usage_lib._USAGE_STATS_ENABLED", False)
m.setattr("vllm.envs.VLLM_DO_NOT_TRACK", True)
m.setattr("vllm.envs.VLLM_NO_USAGE_STATS", True)
m.setattr("os.path.exists", lambda x: True)
assert is_usage_stats_enabled() is False
m.setattr("vllm.envs.VLLM_DO_NOT_TRACK", False)
m.setattr("vllm.envs.VLLM_NO_USAGE_STATS", False)
m.setattr("os.path.exists", lambda x: False)
assert is_usage_stats_enabled() is True

View File

@ -29,7 +29,7 @@ logger = init_logger(__name__)
_config_home = envs.VLLM_CONFIG_ROOT
_USAGE_STATS_JSON_PATH = os.path.join(_config_home, "usage_stats.json")
_USAGE_STATS_DO_NOT_TRACK_PATH = os.path.join(_config_home, "do_not_track")
_USAGE_STATS_ENABLED = None
_USAGE_STATS_ENABLED = False
_USAGE_STATS_SERVER = envs.VLLM_USAGE_STATS_SERVER
_GLOBAL_RUNTIME_DATA = dict[str, Union[str, int, bool]]()
@ -51,7 +51,7 @@ def set_runtime_usage_data(key: str, value: Union[str, int, bool]) -> None:
_GLOBAL_RUNTIME_DATA[key] = value
def is_usage_stats_enabled():
def is_usage_stats_enabled() -> bool:
"""Determine whether or not we can send usage stats to the server.
The logic is as follows:
- By default, it should be enabled.
@ -63,7 +63,7 @@ def is_usage_stats_enabled():
- $HOME/.config/vllm/do_not_track
"""
global _USAGE_STATS_ENABLED
if _USAGE_STATS_ENABLED is None:
if not _USAGE_STATS_ENABLED:
do_not_track = envs.VLLM_DO_NOT_TRACK
no_usage_stats = envs.VLLM_NO_USAGE_STATS
do_not_track_file = os.path.exists(_USAGE_STATS_DO_NOT_TRACK_PATH)