API для просмотра логов
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user