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 import StoreTemplate, MemoryMetricsStore, RedisMetricsStore
|
||||||
|
|
||||||
from .backends.Memory import MemoryMetricsStore
|
|
||||||
from .backends.Redis import RedisMetricsStore
|
|
||||||
|
|
||||||
from .MetricsCollector import MetricsCollector
|
from .MetricsCollector import MetricsCollector
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,19 @@
|
|||||||
from typing import Any, Awaitable, cast
|
from typing import Any, Awaitable, cast
|
||||||
import inspect, os
|
import inspect, time, os
|
||||||
|
|
||||||
class StoreTemplate:
|
class StoreTemplate:
|
||||||
def __init__(self, backend:str="memory", key_prefix:str="snake:metrics:worker", worker_id:str|None=None, **kwargs):
|
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.backend = (backend or "memory").strip().lower()
|
||||||
self.key_prefix = key_prefix
|
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
|
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:
|
async def publish_only(self, snapshot:dict) -> None:
|
||||||
await self.store.publish(self.worker_id, snapshot)
|
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
|
import unittest
|
||||||
|
|
||||||
from typing import Any, cast
|
from typing import Any, cast
|
||||||
|
|
||||||
from server.metrics import (
|
from server.metrics import (
|
||||||
@@ -162,6 +163,7 @@ class TestMetricsStoreTemplate(unittest.IsolatedAsyncioTestCase):
|
|||||||
allowed = await manager.acquire_startup_cleanup_lock(180)
|
allowed = await manager.acquire_startup_cleanup_lock(180)
|
||||||
self.assertTrue(allowed)
|
self.assertTrue(allowed)
|
||||||
self.assertEqual(fake_store.calls, [("snake:metrics:worker:startup_cleanup_lock", 180)])
|
self.assertEqual(fake_store.calls, [("snake:metrics:worker:startup_cleanup_lock", 180)])
|
||||||
|
|
||||||
await manager.close()
|
await manager.close()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
Reference in New Issue
Block a user