rename Test file and add init file for metric backend to import all at once
This commit is contained in:
@@ -1,7 +1,4 @@
|
||||
from .backends.Template import StoreTemplate
|
||||
|
||||
from .backends.Memory import MemoryMetricsStore
|
||||
from .backends.Redis import RedisMetricsStore
|
||||
from .backends import StoreTemplate, MemoryMetricsStore, RedisMetricsStore
|
||||
|
||||
from .MetricsCollector import MetricsCollector
|
||||
|
||||
|
||||
@@ -1,13 +1,19 @@
|
||||
from typing import Any, Awaitable, cast
|
||||
import inspect, os
|
||||
import inspect, time, os
|
||||
|
||||
class StoreTemplate:
|
||||
def __init__(self, backend:str="memory", key_prefix:str="snake:metrics:worker", worker_id:str|None=None, **kwargs):
|
||||
self.backend = (backend or "memory").strip().lower()
|
||||
self.key_prefix = key_prefix
|
||||
self.worker_id = worker_id or f"{os.getpid()}"
|
||||
self.worker_id = worker_id or f"{os.getpid()}-{int(time.time() * 1000)}"
|
||||
self.store = self
|
||||
|
||||
async def publish(self, worker_id:str, snapshot:dict) -> None:
|
||||
raise NotImplementedError
|
||||
|
||||
async def load_all(self) -> list[dict]:
|
||||
raise NotImplementedError
|
||||
|
||||
async def publish_only(self, snapshot:dict) -> None:
|
||||
await self.store.publish(self.worker_id, snapshot)
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
from .Template import StoreTemplate
|
||||
from .Memory import MemoryMetricsStore
|
||||
from .Redis import RedisMetricsStore
|
||||
@@ -1,4 +1,5 @@
|
||||
import unittest
|
||||
|
||||
from typing import Any, cast
|
||||
|
||||
from server.metrics import (
|
||||
@@ -162,6 +163,7 @@ class TestMetricsStoreTemplate(unittest.IsolatedAsyncioTestCase):
|
||||
allowed = await manager.acquire_startup_cleanup_lock(180)
|
||||
self.assertTrue(allowed)
|
||||
self.assertEqual(fake_store.calls, [("snake:metrics:worker:startup_cleanup_lock", 180)])
|
||||
|
||||
await manager.close()
|
||||
|
||||
if __name__ == "__main__":
|
||||
Reference in New Issue
Block a user