2026-09-29 14:25:04 +02:00
2026-09-29 14:25:04 +02:00
2026-09-29 12:36:11 +02:00
2026-09-29 14:25:04 +02:00
2026-09-29 14:25:04 +02:00

🌊 Network Aquarium

Živý network traffic vizualizovaný ako podmorské akvárium v .NET 10.
Každý request, stream a chyba v tvojej infraštruktúre ožíva ako morský tvor s nulovou záťažou na produkčný server.


🐠 Morská hierarchia (Traffic Taxonomy)

Tvor Sieťový traffic Vizuál a fyzika
🐟 Rybky (Klauni, Tetry, Skaláre) Štandardný HTTP GET / POST / PUT / DELETE Farba podľa metódy (GET = Cyan, POST = Emerald, PUT = Violet, DELETE = Rose). Rýchlosť plávania = Latencia (nízky ping = blesková rybka).
🐬 Delfíny WebSockets / SSE / Live Streamy Plávajú v sínusoidách, skáču k hladine a pri každom data frame emitujú sonarové vlny.
🐋 Veľryby Veľké downloady & payloady (> 500 KB – 10 MB+) Majestátne, obrovské, pomalé tvory s vodným gejzírom z dýchacieho otvoru.
🪼 Medúzy (Červené / Jantárové) Chyby klienta (4xx) & Chyby servera (5xx) Svietiace pulzujúce medúzy vznášajúce sa nahor s dlhými chápadlami.
🦈 Žraloky Rate Limits (429) & DDoS / Traffic Spikes Rýchle dravce križujúce stredné hĺbky pri preťažení servera.
🦀 Krabíci Databázové dotazy & Background Cron / Workers Sliedia po piesočnatom dne a prenášajú dáta.

🏛️ Architektúra (.NET 10 Solution)

Riešenie VrbaOneProjects.slnx obsahuje 3 projekty:

  1. Aquarium.Shared (.NET 10 Class Library)
    • Modely TrafficEvent, CreatureSpawnDto, AquariumStats.
    • CreatureClassifier – inteligentné pravidlá mapovania trafficu na biómy, rýchlosť, škálovanie a farby.
  2. Aquarium.Server (.NET 10 ASP.NET Core Minimal API + SignalR)
    • TrafficTelemetryMiddleware – zachytáva live HTTP požiadavky bez blokovania.
    • ITrafficEventChannel – in-memory System.Threading.Channels fronta (zero-allocation, mikrosekundový throughput).
    • TrafficBroadcasterService – agreguje RPS, latenciu a vysiela eventy cez SignalR do pripojených klientov.
    • TrafficSimulatorService – generuje realistický traffic pre testovanie a demo účely.
  3. Aquarium.Client (.NET 10 Blazor WebAssembly Standalone)
    • 60 FPS HTML5 Canvas 2D engine (aquarium.js) s realistickými časticami, lomom svetla (caustics) a morskými prúdmi.
    • Click-to-Inspect HUD: Kliknutím na akéhokoľvek tvora sa otvorí detailný cyberpunkový drawer s metrikami (Method, Path, Status, Latency, Size, Client IP/Country, Trace ID).
    • Syntetizované audio efekty (Web Audio API) s možnosťou stlmenia.
    • Offline / Standalone Demo Fallback – ak backend nebeží, klient sa automaticky prepne do lokálnej simulácie.

🚀 Spustenie projektu

1. Spustenie Backend Servera (Port 5050)

cd src/Aquarium.Server
dotnet run --urls "http://localhost:5050"

2. Spustenie Blazor WASM Klienta (Port 5100)

cd src/Aquarium.Client
dotnet run --urls "http://localhost:5100"

Otvorte prehliadač na http://localhost:5100.


🔌 Ako napojiť reálny server

Máte 2 jednoduché spôsoby:

Možnosť A: Vloženie Middleware do existujúcej ASP.NET Core aplikácie

Pridajte referenciu na Aquarium.Server alebo vložte TrafficTelemetryMiddleware:

app.UseMiddleware<TrafficTelemetryMiddleware>();

Možnosť B: Externé posielanie cez REST Ingestion API

Akákoľvek reverzná proxy (Nginx, Caddy, Cloudflare Worker, Node.js) môže poslať event priamo na endpoint servera:

curl -X POST http://localhost:5050/api/telemetry/event \
  -H "Content-Type: application/json" \
  -d '{
    "method": "GET",
    "path": "/api/v1/users",
    "statusCode": 200,
    "durationMs": 42.5,
    "bytes": 12400,
    "clientCountry": "SK",
    "clientCity": "Bratislava",
    "clientIp": "178.40.12.8"
  }'
S
Description
No description provided
Readme
697 MiB
Languages
C# 40.1%
JavaScript 24.5%
HTML 18.3%
CSS 16.7%
Dockerfile 0.4%