Skip to content

Instantly share code, notes, and snippets.

@mkopa
Created August 19, 2025 21:09
Show Gist options
  • Select an option

  • Save mkopa/74c4e0a0a855c8bb02d73a9fbbd8ecb2 to your computer and use it in GitHub Desktop.

Select an option

Save mkopa/74c4e0a0a855c8bb02d73a9fbbd8ecb2 to your computer and use it in GitHub Desktop.

Revisions

  1. mkopa created this gist Aug 19, 2025.
    54 changes: 54 additions & 0 deletions CHRONOS.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,54 @@
    ### Zasady Projektowe Schematu

    1. **Wielowymiarowość (Multi-faceted):** Wektor musi przechwytywać ortogonalne aspekty połączenia – nie tylko opóźnienie, ale jego rozkład, charakterystykę częstotliwościową, niezawodność i kontekst systemowy.
    2. **Interpretowalność (Interpretable):** Każdy wymiar musi mieć jasne znaczenie fizyczne lub statystyczne, aby klastry wektorów i anomalie były zrozumiałe dla człowieka.
    3. **Normalizacja (Normalizable):** Wartości muszą być możliwe do znormalizowania (np. przez skalowanie min-max lub standaryzację Z-score), aby algorytm odległości (jak L2 w HNSW) działał poprawnie.
    4. **Rozszerzalność (Extensible):** Schemat powinien pozwalać na przyszłe dodawanie wymiarów bez unieważniania całej koncepcji.

    ---

    ### Proponowany Schemat: Link Signature Vector (LSV), v1.0

    20-wymiarowy wektor, podzielony na cztery logiczne grupy. Każdy wektor jest generowany w oknie czasowym (np. 1 sekunda) na podstawie zebranych próbek RTT.

    | Wymiar | Nazwa | Typ Danych | Opis i Uzasadnienie |
    | :----- | :---------------------------------- | :--------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Grupa 1: Profil Rozkładu Opóźnienia (Latency Distribution Profile) - Co się dzieje?** |
    | 1 | `latency_p50_us` | `float` | **Mediana opóźnienia (50. percentyl) w mikrosekundach.** Bardziej odporna na skrajne wartości odstające niż średnia. Stanowi bazowy, stabilny wskaźnik wydajności. |
    | 2 | `latency_p95_us` | `float` | **95. percentyl opóźnienia.** Kluczowy dla systemów o wysokich wymaganiach (HFT, VoIP). Reprezentuje wydajność w "złych, ale jeszcze akceptowalnych" warunkach. |
    | 3 | `latency_p99_us` | `float` | **99. percentyl opóźnienia.** Wskaźnik "najgorszego doświadczenia". Nagły wzrost tego wymiaru, przy stabilnym p50, jest sygnaturą problemów z buforowaniem (bufferbloat). |
    | 4 | `latency_iqr_us` | `float` | **Rozstęp międzykwartylowy (p75 - p25).** Miara "rozproszenia środka" rozkładu. W odróżnieniu od odchylenia standardowego, jest niewrażliwa na skrajne ogony. |
    | **Grupa 2: Sygnatura Jittera i Niestabilności (Jitter & Instability Signature) - Jaki jest charakter problemu?** |
    | 5 | `jitter_stddev_us` | `float` | **Odchylenie standardowe opóźnienia.** Klasyczna miara jittera. To jest moduł `r` z naszej pierwotnej koncepcji – "jak bardzo" połączenie jest niestabilne. |
    | 6 | `latency_skewness` | `float` | **Skośność rozkładu opóźnień.** Wartość > 0 (rozkład prawostronnie skośny) jest typowa dla sieci i wskazuje na istnienie "długiego ogona" wysokich opóźnień. Zmiana skośności to ważny sygnał. |
    | 7 | `fft_power_low_freq` | `float` | **Znormalizowana moc widmowa dla niskich częstotliwości (np. 0.1-2 Hz).** Wskazuje na wolne, cykliczne problemy (np. zadania w tle, "duże" cykle GC). |
    | 8 | `fft_power_mid_freq` | `float` | **Znormalizowana moc widmowa dla średnich częstotliwości (np. 2-20 Hz).** Może korelować z interakcjami systemowymi, mniejszymi cyklami GC, przełączaniem zadań. |
    | 9 | `fft_power_high_freq` | `float` | **Znormalizowana moc widmowa dla wysokich częstotliwości (>20 Hz).** Sygnatura problemów na poziomie sprzętowym, sterowników lub mikro-burstów w przełącznikach sieciowych. |
    | 10 | `entropy_change_rate` | `float` | **Tempo zmiany entropii Shannona w sekwencji opóźnień.** Wskaźnik nieprzewidywalności. Nagły wzrost oznacza przejście ze stanu stabilnego w chaotyczny. |
    | **Grupa 3: Profil Integralności Pakietów (Packet Integrity Profile) - Czy połączenie jest niezawodne?** |
    | 11 | `packet_loss_rate_pct` | `float` | **Procent utraconych pakietów.** Podstawowa metryka niezawodności. |
    | 12 | `loss_burstiness_factor` | `float` | **Współczynnik "wybuchowości" utraty pakietów.** Wartość > 1 wskazuje, że pakiety są tracone w seriach (bursts), co jest znacznie gorsze niż losowa utrata. |
    | 13 | `reorder_rate_pct` | `float` | **Procent pakietów, które dotarły poza kolejnością.** Kluczowe dla protokołów wrażliwych na kolejność. Wskazuje na problemy z routingiem lub wieloma ścieżkami. |
    | 14 | `ecn_ce_rate` | `float` | **Częstotliwość znaczników ECN Congestion Experienced (CE).** Nowoczesna, proaktywna metryka. Wskazuje na początki zatłoczenia, *zanim* dojdzie do utraty pakietów. |
    | **Grupa 4: Kontekst Systemu Źródłowego (Source System Context) - Jakie mogą być przyczyny źródłowe?** |
    | 15 | `cpu_core_load_pct` | `float` | **Obciążenie rdzenia CPU obsługującego przerwania sieciowe.** Bezpośrednia korelacja z opóźnieniami generowanymi przez hosta. |
    | 16 | `ctx_switch_rate` | `float` | **Liczba przełączeń kontekstu na sekundę na danym rdzeniu.** Wysoka wartość jest znanym źródłem jittera na poziomie systemu operacyjnego. |
    | 17 | `nic_queue_depth_pct` | `float` | **Procentowe zapełnienie kolejki TX/RX na karcie sieciowej.** Wskaźnik presji na sprzęt sieciowy. Wzrost powyżej progu zwiastuje utratę pakietów. |
    | 18 | `memory_bus_contention` | `float` | **Wskaźnik rywalizacji o magistralę pamięci.** Zaawansowana metryka (z perf counters). Nagły wzrost może wyjaśnić skok opóźnień, nawet przy niskim CPU. |
    | 19 | `clock_correction_rate` | `float` | **Tempo korekcji lokalnego zegara (np. przez chrony/ntpd).** Wskazuje na stabilność lokalnego oscylatora, co jest metadaną dla samego serwera czasu. |
    | 20 | `temperature_celsius` | `float` | **Temperatura CPU/SoC.** Ekstremalne temperatury mogą prowadzić do throttlingu, który w subtelny sposób wpływa na jitter. Czasem to jest właśnie "root cause". |

    ---

    ### Innowacyjność i Wartość Tego Schematu

    1. **"Co" i "Dlaczego":** Klasyczne systemy monitoringu mówią, że "opóźnienie wzrosło" (wymiar 1-3). Nasz wektor mówi *jak* wzrosło: "opóźnienie wzrosło, głównie w 99. percentylu (3), rozkład stał się prawostronnie skośny (6), a analiza FFT wskazuje na cykliczny problem o niskiej częstotliwości (7), który koreluje ze wzrostem przełączeń kontekstu (16)". **To jest odcisk palca problemu, a nie tylko symptom.**

    2. **Unikalne Sygnatury Problemów:**
    * **Problem z GC w Javie:** Wysokie `latency_p99_us`, `latency_skewness`, `fft_power_low_freq`.
    * **Mikro-bursty na przełączniku:** Stabilne `latency_p50_us`, ale skaczące `latency_p99_us`, wysokie `fft_power_high_freq` i `loss_burstiness_factor`.
    * **CPU Throttling z powodu przegrzania:** Wzrost wszystkich metryk opóźnienia, korelujący z `temperature_celsius` (20) i spadkiem `cpu_core_load_pct` (15) mimo presji.

    3. **Predykcja i Wczesne Ostrzeganie:** Wymiary takie jak `ecn_ce_rate` (14) i `nic_queue_depth_pct` (17) to sygnały wyprzedzające. "Orion" może nauczyć się, że wektory z podwyższonymi wartościami w tych wymiarach często poprzedzają wektory oznaczające pełną awarię (wysoka utrata pakietów).

    Wielowymiarową narrację o stanie sieci. Jest to fundament, na którym "Orion" może budować wiedzę, rozpoznawać wzorce i ostatecznie przewidywać przyszłość.