Dane Analytics utknęły w kolejce niedostarczonych wiadomości w Qpidd

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Krótki opis problemu

W interfejsie Edge brakuje danych Analytics, ponieważ serwer Qpidd nie przesyła wiadomości analitycznych do PostgreSQL. W Edge komponent edge-qpid-server odpowiada serwerowi Qpidd.

Narzędzie Qpidd przechowuje 2 kolejki dla każdej grupy statystyk:

  • ax-q-axgroup001-consumer-group-001

    W tej kolejce znajdują się wiadomości analityczne przekazane z procesorów i routerów wiadomości. Wiadomości są pobierane z tego miejsca przez usługę edge-qpid-server, która analizuje wiadomości i wstawia je do PostgreSQL. Po przetworzeniu wiadomości są usuwane z kolejki.

  • ax-q-axgroup001-consumer-group-001-dl

    Ta kolejka to kolejka niedostarczonych wiadomości. Działa jako miejsce docelowe dla wiadomości, których edge-qpid-server nie przetworzył i z tego powodu nie chce już ich otrzymywać. To pole jest zwykle wypełniane po przekroczeniu maksymalnej liczby dostarczania lub gdy PostgreSQL odrzucił(a) wstawienie nowych danych z powodu błędów czasu działania.

Komunikat o błędzie

Główną przyczyną mogą być różne błędy działania wywoływane przez komponent edge-qpid-server. Zwykle, jeśli edge-qpid-server otrzyma błąd środowiska wykonawczego z PostgreSQL, tworzy kolejkę niedostarczonych wiadomości (jeśli jeszcze nie istnieje), a następnie wysyła do niej następujący komunikat:

yyyy-MM-dd HH:mm:ss,SSS ax-q-axgroup001-consumer-group-001-persistpool-thread-6 WARN c.a.a.m.MessageConsumer - MessageConsumer.process() : Sending message batch to the DLQ.

Możliwe przyczyny

Przyczyna Opis Instrukcje dotyczące rozwiązywania problemów dotyczące
Wiadomości utknęły w kolejce niedostarczonych wiadomości w qpidd edge-qpid-server nie może rozpoznać wiadomości, które odczytał od brokera Qpidd, lub nie mógł utrwalić wiadomości w PostgreSQL. Użytkownicy Edge Private Cloud

Najczęstsze kroki diagnostyki

Uruchom następujące polecenie, aby wyświetlić statystyki kolejki Qpidd:

qpid-stat -q

Dane wyjściowe zwracają zestaw kolejek zarejestrowanych u brokera. Jeśli kolejka o nazwie kończącej się na „-dl” jeśli wiadomości są już wypełnione, to niektóre wiadomości utknęły w kolejce niedostarczonych wiadomości.

Queues
  queue                                     dur  autoDel  excl  msg   msgIn  msgOut  bytes  bytesIn  bytesOut   cons  bind
  ========================================================================================================================
  ax-q-axgroup-001-consumer-group-001       Y                   0     185    185     0       13.8m   13.8m      6      2
  ax-q-axgroup-001-consumer-group-001-dl    Y                   0     70     70      0        3.9m    3.9m      0      2

Przyczyna: wiadomości utknęły w kolejce niedostarczonych wiadomości w qpidd

Diagnostyka

Ten warunek może wystąpić w tych sytuacjach:

  1. Uaktualnienie miało miejsce w przeszłości, w tym czasie usługa PostgreSQL nie działała.
  2. Tymczasowa przerwa w działaniu PostgreSQL z powodu problemów z siecią.
  3. Instancja edge-qpid-server próbowała wysłać wiadomość do PostgreSQL, ale PostgreSQL zwróciła błąd środowiska wykonawczego.

Rozdzielczość

  1. Zanotuj nazwy kolejek podane w Najczęstszych krokach diagnostyki. Na przykład:

    • ax-q-axgroup-001-consumer-group-001
    • ax-q-axgroup-001-consumer-group-001-dl
  2. Uruchom polecenie qpid-tool, aby wpisać interaktywny prompt qpid:

    qpid-tool

    To polecenie zwraca następujące wyniki:

    Management Tool for QPID
    qpid:
  3. Uruchom list broker, aby uzyskać listę aktywnych brokerów:

    list broker

    To polecenie zwraca następujące wyniki:

    Object Summary:
    ID   Created   Destroyed  Index
    =======================================
    125  21:00:00  -          amqp-broker

    Gdzie kolumna ID określa identyfikator brokera.

  4. Zanotuj identyfikator brokera. W tym przykładzie jest to 125.

  5. Uruchom następujące polecenie, aby przenieść wiadomości z kolejki niedostarczonych wiadomości z powrotem do rzeczywistej kolejki:

    call 125 queueMoveMessages ax-q-axgroup-001-consumer-group-001-dl ax-q-axgroup-001-consumer-group-001 100000 {}

    To polecenie zwraca następujące wyniki:

    OK (0) - {}

    Jeśli nie ma danych wyjściowych, nie było żadnych działań i nie było żadnych wiadomości do przeniesienia. Jeśli nie widzisz OK(0), skontaktuj się z zespołem pomocy Apigee Edge.

  6. Zamknij terminal qpid-tool.

    quit
  7. Odczekaj 5 minut, a następnie ponownie wykonaj kroki diagnostyki opisane w sekcji Najczęstsze czynności diagnostyczne. Sprawdź, czy wiadomości w rzeczywistej kolejce są przetwarzane, i upewnij się, że liczba niedostarczonych komunikatów wynosi 0.

Jeśli problem nie ustąpi, przejdź do następnej sekcji.

Musi zbierać informacje diagnostyczne

Jeśli po wykonaniu powyższych czynności problem nie ustąpi, zbierz poniższe informacje diagnostyczne. skontaktuj się z nimi i udostępnij je zespołowi pomocy Apigee Edge:

  • Logi Qpidd: /opt/apigee/var/log/apigee-qpidd/apigee-qpidd.log
  • Logi Postgresql: /opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log
  • Logi Edge-qpid-server: /opt/apigee/var/log/edge-qpid-server/logs/system.log
  • Logi Edge-postgres-server:/opt/apigee/var/log/edge-postgres-server/logs/system.log
  • Statystyki kolejki Qpidd:

    qpid-stat -q
  • Grupa Analytics zwrócona przez to polecenie curl:

    curl -u sysadminEmail:password http://mgmt:8080/v1/analytics/groups/ax