[HiCache] fix: StorageMetricsCollector was initialized twice (#18354)
This commit is contained in:
@@ -195,8 +195,14 @@ class HiRadixCache(RadixCache):
|
|||||||
self.page_size / 1024 * prefetch_timeout_per_ki_token
|
self.page_size / 1024 * prefetch_timeout_per_ki_token
|
||||||
)
|
)
|
||||||
|
|
||||||
storage_metrics_collector = None
|
self.enable_storage = enable_storage
|
||||||
if enable_storage_metrics:
|
self.prefetch_threshold = prefetch_threshold
|
||||||
|
self.prefetch_timeout_base = prefetch_timeout_base
|
||||||
|
self.prefetch_timeout_per_page = prefetch_timeout_per_page
|
||||||
|
self.hicache_storage_pass_prefix_keys = hicache_storage_pass_prefix_keys
|
||||||
|
self.enable_storage_metrics = enable_storage_metrics
|
||||||
|
|
||||||
|
if self.enable_storage_metrics:
|
||||||
labels = {
|
labels = {
|
||||||
"storage_backend": storage_backend,
|
"storage_backend": storage_backend,
|
||||||
"tp_rank": self.cache_controller.tp_rank,
|
"tp_rank": self.cache_controller.tp_rank,
|
||||||
@@ -206,19 +212,18 @@ class HiRadixCache(RadixCache):
|
|||||||
}
|
}
|
||||||
if extra_metric_labels:
|
if extra_metric_labels:
|
||||||
labels.update(extra_metric_labels)
|
labels.update(extra_metric_labels)
|
||||||
self.storage_metrics_collector = StorageMetricsCollector(labels=labels)
|
existing_collector = getattr(self, "storage_metrics_collector", None)
|
||||||
storage_metrics_collector = StorageMetricsCollector(labels=labels)
|
if existing_collector is None:
|
||||||
|
self.storage_metrics_collector = StorageMetricsCollector(labels=labels)
|
||||||
self.enable_storage = enable_storage
|
elif set(existing_collector.labels.keys()) == set(labels.keys()):
|
||||||
self.prefetch_threshold = prefetch_threshold
|
existing_collector.labels = labels
|
||||||
self.prefetch_timeout_base = prefetch_timeout_base
|
else:
|
||||||
self.prefetch_timeout_per_page = prefetch_timeout_per_page
|
logger.warning(
|
||||||
self.hicache_storage_pass_prefix_keys = hicache_storage_pass_prefix_keys
|
"Storage metrics labels changed (%s -> %s). Keep existing labels to "
|
||||||
self.enable_storage_metrics = enable_storage_metrics
|
"avoid duplicate metric registration.",
|
||||||
if self.enable_storage_metrics:
|
sorted(existing_collector.labels.keys()),
|
||||||
self.storage_metrics_collector = storage_metrics_collector
|
sorted(labels.keys()),
|
||||||
else:
|
)
|
||||||
self.storage_metrics_collector = None
|
|
||||||
|
|
||||||
def attach_storage_backend(
|
def attach_storage_backend(
|
||||||
self,
|
self,
|
||||||
@@ -366,8 +371,6 @@ class HiRadixCache(RadixCache):
|
|||||||
|
|
||||||
self.enable_storage = False
|
self.enable_storage = False
|
||||||
self.enable_storage_metrics = False
|
self.enable_storage_metrics = False
|
||||||
if hasattr(self, "storage_metrics_collector"):
|
|
||||||
self.storage_metrics_collector = None
|
|
||||||
return True, "Detached HiCache storage backend successfully."
|
return True, "Detached HiCache storage backend successfully."
|
||||||
|
|
||||||
def _force_release_pending_storage_ops(self):
|
def _force_release_pending_storage_ops(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user