Skip to the content.

Task 93 — Mesh observability & centralized logs

Phase: 7 Initiative: 48 Status: done Owner: — Slug: web-mesh-observability

Goal

MeshObservabilityController (task_065) и ObservabilityController (task_054 centralized-observability) дают counters по routing_decision, retry_attempt, circuit_breaker_state_change плюс доступ к traces/logs. Web показывает только агрегированный MeshDashboardDto; сырые counters и список последних spans/log-entries не выведены. Нужна отдельная панель для детальной диагностики.

Acceptance criteria

Sub-tasks

Implementation notes

Round 1 (this tick) — completed

Mesh observability & centralized logs panel для src/pages/observability.astro (Phase 7 task_093).

Backend (src/agent):

1. Mesh/Observability/MeshDiagnosticsService.cs (new)

2. Mesh/Observability/InMemoryActivityListener.cs (new)

3. Mesh/Observability/InMemoryLogSink.cs (new)

4. Mesh/Observability/MeshObservabilityService.cs (modified)

5. Mesh/Resilience/ResilientTransport.cs (modified)

6. Hercules.WebApi/Controllers/MeshObservabilityController.cs (rewritten)

7. Mesh/MeshServiceExtensions.cs (modified)

Tests: tests/Hercules.Agent.Tests/Phase4Tests/Observability/MeshDiagnosticsServiceTests.cs — 16 unit-тестов:

Frontend (src/hercules-web):

1. src/lib/api.ts (modified)

2. src/components/MeshObservabilityPanel.astro (new)

3. src/pages/observability.astro (new) — новая страница с Layout active=”observability”.

4. src/layouts/Layout.astro (modified) — добавлена active?: "observability" + nav link /observability.

5. README.md (modified) — добавлены MeshObservabilityPanel.astro и observability.astro в «Структура», 5 новых эндпойнтов в «Backend API».

Round 1 — validation

Notes / Risks