Logowanie to fantastyczna funkcja, która pozwala nam szybko i łatwo prześledzić wszelkie problemy na serwerze. Niestety, chociaż Cassandra zapewnia obszerne funkcje rejestrowania, domyślnie nie rejestruje zapytań wykonanych na węzłach.
Za pośrednictwem tego postu odkryjesz, jak włączyć i wyłączyć śledzenie zapytania w węzłach Cassandra.
Cassandra Command
Cassandra zapewnia nam polecenie śledzenia, które można wykonać w skorupce CQL. To polecenie pozwala włączyć lub wyłączyć śledzenie wszystkich zapytań wykonanych w węzłach danego klastra.
Śledzenie pozwala na zbieranie dzienników dowolnej transakcji przeprowadzonej na serwerze. Dzienniki śledzenia są następnie przechowywane w klawiszach System_Traces, które wygasną po danym czasie trwania TTL. Domyślnie ślady są przechowywane w tabeli przez 24 godziny. Możesz jednak zmodyfikować wartość TTL lub przenieść ślady do innego kluczowego miejsca.
Ponadto klawisze System_Traces zawiera tabele takie jak sesja, która zawiera informacje o sesji, oraz tabela zdarzeń, która zawiera szczegółowe informacje o zapytaniach.
Składnia polecenia śledzenia jest jak pokazano:
Śledzenie [on | WYŁĄCZONY]
Przykład
Poniższy przykład pokazuje, jak włączyć śledzenie w klastrze z czterema węzłami. Następnie przetestujemy możliwości śledzenia, tworząc przykładowe dane.
Aby włączyć śledzenie, uruchom polecenie:
CQLSH> Śledzenie;
Teraz śledzenie jest włączone
CQLSH>
Następnie utwórzmy miejsce na klawisze i tabelę próbkową.
CQLSH> Utwórz KeysPace Store z replikacją = 'class': „SimpleStrategy”, „Replikacja_factor”: 4;
Po uruchomieniu powyższego polecenia powłoka CQL powinna zwrócić komunikaty śledzące polecenie, jak pokazano poniżej:
Sesja śledzenia: 0DE9B970-3407-11ED-9723-61BF090829C9
aktywność | znacznik czasu | Źródło | Źródło_elapsed | klient
---------------------------------------------------------------------------------------------------------------------------------------+----------------------------+-----------+----------------+-----------
Wykonaj zapytanie CQL3 | 2022-09-14 11:27:22.119000 | 127.0.0.1 | 0 | 127.0.0.1
Parsing Utwórz sklep klawiszowy z replikacją = 'class': 'simpleStrategy', 'replikacja_factor': 4; [Native-Transport-Requests-1] | 2022-09-14 11:27:22.119000 | 127.0.0.1 | 657 | 127.0.0.1
Przygotowanie oświadczenia [Native-Transport-Requests-1] | 2022-09-14 11:27:22.121000 | 127.0.0.1 | 2168 | 127.0.0.1
Dołączenie do Commitlog [Migracja STAGE: 1] | 2022-09-14 11:27:22.132000 | 127.0.0.1 | 13136 | 127.0.0.1
Dodanie do KeysPaces MemTable [Migracja STAGE: 1] | 2022-09-14 11:27:22.133000 | 127.0.0.1 | 13941 | 127.0.0.1
Dołączenie do Commitlog [CompactionExecutor: 3] | 2022-09-14 11:27:22.400000 | 127.0.0.1 | 280829 | 127.0.0.1
Dodawanie do memetbilda compaction_history [compactionExecutor: 3] | 2022-09-14 11:27:22.400000 | 127.0.0.1 | 281512 | 127.0.0.1
Dołączenie do Commitlog [CompactionExecutor: 4] | 2022-09-14 11:27:22.498000 | 127.0.0.1 | 379253 | 127.0.0.1
Dodawanie do memetbilda compaction_history [compactionExecutor: 4] | 2022-09-14 11:27:22.498000 | 127.0.0.1 | 379782 | 127.0.0.1
Dołączenie do Commitlog [CompactionExecutor: 3] | 2022-09-14 11:27:22.627000 | 127.0.0.1 | 508643 | 127.0.0.1
Dodawanie do memetbilda compaction_history [compactionExecutor: 3] | 2022-09-14 11:27:22.628000 | 127.0.0.1 | 509209 | 127.0.0.1
Dołączenie do Commitlog [CompactionExecutor: 4] | 2022-09-14 11:27:22.778000 | 127.0.0.1 | 659647 | 127.0.0.1
Dodawanie do memetbilda compaction_history [compactionExecutor: 4] | 2022-09-14 11:27:22.779000 | 127.0.0.1 | 660218 | 127.0.0.1
Wykonanie skanowania SEQ na 2 sstables dla (min (-9223372036854775808), min (-9223372036854775808)] [Migracja STAGE: 1] | 2022-09-14 11:27:22.846000 | 127.0.0.1 | 726928 | 127.0.0.1
Przeczytaj 66 żywych wierszy i 0 komórek nagrobka [Migracja STAGE: 1] | 2022-09-14 11:27:22.851000 | 127.0.0.1 | 732009 | 127.0.0.1
Dołączenie do Commitlog [CompactionExecutor: 3] | 2022-09-14 11:27:22.852000 | 127.0.0.1 | 733610 | 127.0.0.1
-----------------Wyjście obcięte-------------------
Następnie możemy utworzyć tabelę i wykonać operację zapisu, jak pokazano:
CQLSH> Utwórz sklep z tabelami.Inwentaryzacja (ID int, Product_name Text, Price Int, klucz podstawowy (id));
Podobnie polecenie powinno zwrócić dziennik śledzenia jako:
Możemy wstawić przykładowe dane jako:
cqlsh> wstaw do sklepu.Inwentaryzacja (Id, nazwa_produktu, cena) Wartości (1, „Product1”, 10);
Żądanie zapisu tworzy ślad, jak pokazano:
Na koniec możemy wybrać elementy z tabeli, które powinny zwrócić ślad dla sekwencyjnego skanowania, jak pokazano:
CQLSH> Wybierz* ze sklepu.spis;
Wyjście śladu:
Wniosek
W tym artykule omówiono, w jaki sposób możesz włączyć śledzenie zapytania w klastrze Cassandra za pomocą polecenia śledzenia.