API для просмотра логов

This commit is contained in:
2026-04-28 14:57:09 +03:00
parent 2cedacfbe5
commit 85fcaae31b
10 changed files with 489 additions and 18 deletions
+12
View File
@@ -5,6 +5,8 @@ from time import monotonic, sleep
from app_runtime.config.providers import FileConfigProvider
from app_runtime.contracts.application import ApplicationModule
from app_runtime.control.base import ControlActionRequest
from app_runtime.control.base import TraceQueryRequest
from app_runtime.contracts.trace import TraceLogView
from app_runtime.control.service import ControlPlaneService
from app_runtime.core.configuration import ConfigurationManager
from app_runtime.core.registration import ModuleRegistry
@@ -12,6 +14,7 @@ from app_runtime.core.service_container import ServiceContainer
from app_runtime.core.types import HealthPayload, LifecycleState
from app_runtime.health.registry import HealthRegistry
from app_runtime.logging.manager import LogManager
from app_runtime.tracing.reader import build_trace_log_reader
from app_runtime.tracing.service import TraceService
from app_runtime.workers.supervisor import WorkerSupervisor
@@ -127,6 +130,15 @@ class RuntimeManager:
self._refresh_state()
return self._state.value
async def trace_logs(self, trace_id: str, request: TraceQueryRequest) -> TraceLogView:
reader = build_trace_log_reader(self.traces.transport)
if reader is None:
raise RuntimeError("trace log reader is not configured")
trace_view = reader.read_trace(trace_id, request.levels)
if trace_view is None:
raise KeyError(trace_id)
return trace_view
def _register_core_services(self) -> None:
if self._core_registered:
return