Przyczyny problemów
Ciągłość operacji bez trwałego identyfikatora
Rezultat: Wieloetapowe operacje można prześledzić etap po etapie i wskazać, gdzie powstaje opóźnienie, także gdy nie łączy ich jeden identyfikator.
01 / Zagadnienie
Diagnostyka wieloetapowych operacji wymagała odtworzenia przebiegu pojedynczej operacji przez kolejne systemy — od jej rozpoczęcia do potwierdzenia.
Zakładano, że jeden identyfikator łączy wszystkie komunikaty operacji. Od tego założenia zależała wiarygodność każdego wniosku o tym, na którym etapie powstaje problem.
02 / Metodologia
Analizę oparłem na czterech zasadach:
- Weryfikacja założenia o identyfikacji — przed wyciąganiem wniosków o przebiegu operacji sprawdzenie, czy zakładany identyfikator rzeczywiście łączy wszystkie komunikaty jednej operacji.
- Interpretacja pól w kontekście etapu — ta sama informacja może zmieniać postać między stanami albo zostać zastąpiona innymi danymi, dlatego identyfikacja uwzględnia znaczenie pól na konkretnym etapie przetwarzania, a nie tylko ich wartości.
- Korelacja oparta na przejściach między stanami — kolejne komunikaty są wiązane na podstawie informacji z warstwy transportowej i aplikacyjnej, kontekstu źródła operacji, jej rodzaju i zależności między etapami. Czas wykonania, sesja ani pojedyncza wartość identyfikacyjna nie są samodzielnym dowodem przynależności do tej samej operacji.
- Weryfikacja na większym zbiorze — reguły rozpoznane na początkowej próbie są sprawdzane na znacznie większym zbiorze danych, aby wykluczyć, że wynikają ze specyfiki małej próby.
03 / Autorskie rozwiązanie i rezultat
Zbudowałem narzędzie analizujące komunikaty binarne na poziomie bajtów, z interpretacją pól zweryfikowaną względem dostępnej specyfikacji.
Analiza wykazała, że zakładany identyfikator zmieniał się we wszystkich kompletnych przypadkach. Tylko niewielka część operacji pozwalała na prostą korelację od początku do końca, a zestaw pól dostępnych w komunikatach zmieniał się między etapami.
Na tej podstawie zaprojektowałem i wdrożyłem mechanizm odtwarzania ciągłości operacji na podstawie przejść między stanami. Raportowanie wskazuje, na jakiej podstawie powiązano komunikaty. Mechanizm umożliwia analizę czasów poszczególnych etapów przetwarzania oraz rozpoznawanie opóźnień i zawieszeń także w operacjach, których nie łączy jeden identyfikator.
Na podstawie około 2000 przypadków rozpoznałem, jak zmieniają się identyfikatory, i opracowałem reguły korelacji, a następnie zweryfikowałem je na ponad 170 tys. przypadków. Proporcje obserwowanych zjawisk pozostały stabilne, co potwierdziło, że zależności nie wynikały ze specyfiki początkowej próby.
Wartość: diagnostyka wieloetapowych operacji opiera się na zweryfikowanym modelu komunikacji, a nie na niepotwierdzonym założeniu o identyfikatorze.
- Obszary technologiczne
- Programowanie · Analiza komunikatów binarnych · Korelacja zdarzeń · Rekonstrukcja stanów · Diagnostyka systemów rozproszonych