| import logging |
| from typing import Any |
|
|
| from ...utils import get_supabase_client |
| from .domains.agent_metrics import AgentMetrics |
| from .domains.knowledge_metrics import KnowledgeMetrics |
| from .domains.marketing_metrics import MarketingMetrics |
| from .domains.system_metrics import SystemMetrics |
|
|
| logger = logging.getLogger(__name__) |
|
|
|
|
| class MetricsManager: |
| """ |
| Handles technical metrics, trends, and ROI calculations for Archon. |
| Physical Realization of Phase 4.6.24 modularization standard. |
| Acts as a Coordinator delegating to domain-specific metric classes. |
| """ |
|
|
| def __init__(self, supabase_client=None): |
| self.supabase = supabase_client or get_supabase_client() |
| self.agent_metrics = AgentMetrics(self.supabase) |
| self.knowledge_metrics = KnowledgeMetrics(self.supabase) |
| self.system_metrics = SystemMetrics(self.supabase) |
| self.marketing_metrics = MarketingMetrics(self.supabase) |
|
|
| async def get_commander_trends(self) -> list[dict[str, Any]]: |
| return await self.agent_metrics.get_commander_trends() |
|
|
| async def get_force_readiness(self) -> dict[str, Any]: |
| return await self.agent_metrics.get_force_readiness() |
|
|
| async def get_knowledge_roi(self) -> dict[str, Any]: |
| return await self.knowledge_metrics.get_knowledge_roi() |
|
|
| async def get_sla_reliability(self) -> dict[str, Any]: |
| return await self.system_metrics.get_sla_reliability() |
|
|
| async def get_detailed_ai_usage(self, days: int = 30) -> dict[str, Any]: |
| return await self.system_metrics.get_detailed_ai_usage(days) |
|
|
| async def get_recent_token_usage(self, limit: int = 20) -> list[dict[str, Any]]: |
| return await self.system_metrics.get_recent_token_usage(limit) |
|
|
| async def get_marketing_intelligence(self, user_id: str | None = None) -> dict[str, Any]: |
| return await self.marketing_metrics.get_marketing_intelligence(user_id) |
|
|