Dane nie wyświetlają się w panelach statystyk

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Krótki opis problemu

Panele informacyjne Analytics (Skuteczność proxy, Skuteczność celu itp.) nie wyświetlają żadnych danych w interfejsie Edge. Na wszystkich panelach informacyjnych wyświetla się ten komunikat:

No traffic in the selected date range

Komunikaty o błędach

Ten problem nie powoduje widocznych błędów.

Możliwe przyczyny

W tabeli poniżej znajdziesz możliwe przyczyny tego problemu:

Przyczyna Dla
Brak ruchu związanego z interfejsem API w przypadku organizacji i środowiska Użytkownicy Edge for Private Cloud
Dane dostępne w bazie danych Postgres, ale nie są wyświetlane w interfejsie Użytkownicy Edge for Private Cloud
Dane Analytics nie są przesyłane do bazy danych Postgres Użytkownicy Edge for Private Cloud
Nieprawidłowe wdrożenie Analytics Użytkownicy Edge for Private Cloud
Nieaktualne identyfikatory UUID serwera Analytics Użytkownicy Edge for Private Cloud

Brak ruchu związanego z interfejsem API w przypadku organizacji i środowiska

Diagnostyka

  1. Sprawdź, czy w przypadku proxy interfejsu API w określonej organizacji i środowisku występuje ruch w określonym czasie, w którym próbujesz wyświetlić dane Analytics, korzystając z jednej z tych metod:
    1. Włącz śledzenie w przypadku dowolnego interfejsu API, który jest obecnie używany przez użytkowników, i sprawdź, czy możesz uzyskać jakieś żądania w śledzeniu.
    2. Wyświetl dzienniki dostępu NGINX (/opt/apigee/var/log/edge-router/nginx/logs/access.log) i sprawdź, czy w określonym czasie są jakieś nowe wpisy dotyczące proxy interfejsu API.
    3. Jeśli informacje z proxy interfejsu API są logowane na serwerze logów, takim jak Syslog, Splunk, Loggly, itp., możesz sprawdzić, czy w tych serwerach logów znajdują się wpisy dotyczące proxy interfejsu API w określonym czasie.
  2. Jeśli w określonym czasie nie ma ruchu (brak żądań do interfejsu API), dane Analytics są niedostępne. W panelu informacyjnym Analytics zobaczysz komunikat „Brak ruchu w wybranym zakresie dat”.

Rozdzielczość

  1. Wykonaj kilka wywołań co najmniej 1 proxy interfejsu API w określonej organizacji i środowisku.
  2. Poczekaj kilka sekund, a następnie wyświetl panele informacyjne Analytics na karcie Godzina i sprawdź, czy dane się pojawiają.
  3. Jeśli problem nadal występuje, przejdź do sekcji Dane dostępne w bazie danych Postgres, ale nie są wyświetlane w interfejsie.

Dane dostępne w bazie danych Postgres, ale nie są wyświetlane w interfejsie

Krótki opis problemu

Najpierw sprawdź dostępność najnowszych danych Analytics w bazie danych Postgres.

Aby sprawdzić, czy najnowsze dane Analytics są dostępne w węźle głównym Postgres node:

  1. Zaloguj się na każdym serwerze Postgres i uruchom to polecenie, aby sprawdzić, czy jesteś w węźle głównym Postgres:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
  2. W węźle głównym Postgres zaloguj się w PostgreSQL:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
  3. Sprawdź, czy tabela istnieje w przypadku Twojej organizacji i środowiska, używając tego zapytania SQL w bazie danych Postgres database:
    \d analytics."orgname.envname.fact"
  4. Sprawdź, czy najnowsze dane są dostępne w bazie danych Postgres, używając tego zapytania SQL query:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  5. Jeśli najnowszy sygnatura czasowa jest bardzo stara (lub ma wartość null), oznacza to, że dane nie są dostępne w bazie danych Postgres. Prawdopodobną przyczyną tego problemu jest to, że dane nie są przesyłane z serwera Qpid do bazy danych Postgres. Przejdź do sekcji Dane Analytics nie są przesyłane do bazy danych Postgres.
  6. Jeśli najnowsze dane są dostępne w bazie danych Postgres w węźle głównym, wykonaj te czynności, aby zdiagnozować, dlaczego dane nie są wyświetlane w interfejsie Edge.

Diagnostyka

  1. Włącz Narzędzia deweloperskie w przeglądarce Chrome i uzyskaj dostęp do interfejsu API używanego w jednym z paneli informacyjnych Analytics, wykonując te czynności:
    1. W Narzędziach deweloperskich kliknij kartę Sieć.
    2. Rozpocznij nagrywanie.
    3. Ponownie załaduj panel informacyjny Analytics.
    4. W panelu po lewej stronie Narzędzi deweloperskich wybierz wiersz zawierający „apiproxy?_optimized...”.
    5. W panelu po prawej stronie Narzędzi deweloperskich kliknij kartę „Nagłówki” i zanotuj „Adres URL żądania”.
  2. Oto przykładowe dane wyjściowe z Narzędzi deweloperskich:

    Przykładowe dane wyjściowe pokazujące interfejs API używany w panelu informacyjnym Skuteczność proxy na karcie Sieć w Narzędziach deweloperskich w przypadku panelu informacyjnego Skuteczność proxy

  3. Uruchom bezpośrednio wywołanie interfejsu Management API i sprawdź, czy otrzymujesz wyniki. Oto przykładowe wywołanie interfejsu API call for the Day tab in the Proxy Performance dashboard:
    curl -u username:password
      "http://management_server_IP_address:8080/v1/organizations/
      org_name/environments/env_name/stats/apiproxy?limit=14400&
      select=sum(message_count),sum(is_error),avg(total_response_time),
      avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error),
      avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+
      18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
  4. Jeśli widzisz odpowiedź z informacją o powodzeniu, ale bez danych, oznacza to, że serwer zarządzania nie może pobrać danych z serwera Postgres z powodu problemów z połączeniem sieciowym.
  5. Sprawdź, czy możesz połączyć się z serwerem Postgres z serwera zarządzania:
    telnet Postgres_server_IP_address 5432
  6. Jeśli nie możesz połączyć się z serwerem Postgres, sprawdź, czy na porcie 5432 nie ma żadnych ograniczeń zapory sieciowej.
  7. Jeśli występują ograniczenia zapory sieciowej, może to być przyczyną, dla której serwer zarządzania nie może pobrać danych z serwera Postgres.

Rozdzielczość

  1. Jeśli występują ograniczenia zapory sieciowej, usuń je, aby serwer zarządzania mógł komunikować się z serwerem Postgres.
  2. Jeśli nie ma ograniczeń zapory sieciowej, problem może być spowodowany awarią sieci.
  3. Jeśli na serwerze zarządzania wystąpiła awaria sieci, ponowne uruchomienie serwera może rozwiązać problem.
  4. Uruchom ponownie wszystkie serwery zarządzania jeden po drugim za pomocą tego polecenia:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. Sprawdź, czy dane Analytics są widoczne w interfejsie Edge.

Jeśli nadal nie widzisz danych, skontaktuj się z zespołem pomocy Apigee Edge.

Dane Analytics nie są przesyłane do bazy danych Postgres

Diagnostyka

Jeśli dane nie są przesyłane z serwera Qpid do bazy danych Postgres, jak ustalono w sekcji Dane dostępne w bazie danych Postgres, ale nie są wyświetlane w interfejsie, wykonaj te czynności:

  1. Sprawdź, czy każdy serwer Qpid jest uruchomiony. W tym celu wykonaj to polecenie:
    /opt/apigee/apigee-service/bin edge-qpid-server status
  2. Jeśli któryś serwer Qpid jest wyłączony, uruchom go ponownie. W przeciwnym razie przejdź do kroku 5.
    /opt/apigee/apigee-service/bin edge-qpid-server restart
  3. Poczekaj chwilę, a następnie ponownie sprawdź, czy najnowsze dane są dostępne w bazie danych Postgres.
    1. Zaloguj się w PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. Uruchom to zapytanie SQL, aby sprawdzić, czy najnowsze dane są dostępne:
      select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
  4. Jeśli najnowsze dane są dostępne, pomiń te czynności i przejdź do ostatniego kroku w sekcji Rozdzielczość. Jeśli najnowsze dane nie są dostępne, wykonaj te czynności.
  5. Sprawdź, czy wiadomości z kolejek serwera Qpid są przesyłane do bazy danych Postgres.
    1. Uruchom qpid-stat -q command i sprawdź wartości w kolumnach msgIn i msgOut.
    2. Oto przykładowe dane wyjściowe, które pokazują, że wartości msgIn i msgOut nie są równe. Oznacza to, że wiadomości nie są przesyłane z serwera Qpid do bazy danych Postgres.

  6. Jeśli występuje niezgodność w kolumnach msgIn i msgOut, sprawdź dzienniki serwera Qpid Serwer /opt/apigee/var/log/edge-qpid-server/system.log i zobacz, czy występują jakieś błędy.
  7. Możesz zobaczyć komunikaty o błędach, takie jak "Prawdopodobnie PG jest nadal wyłączony" lub "FATAL: sorry, too many clients already" (FATAL: przepraszamy, zbyt wielu klientów), jak pokazano na ilustracji poniżej:
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when
      execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d
      Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee
      Initial referenced UUID when execution started in this thread was
      a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used -
      [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create
      PoolableConnectionFactory (FATAL: sorry, too many clients already)

Może się tak zdarzyć, jeśli serwer Postgres wykonuje zbyt wiele zapytań SQL lub procesor jest mocno obciążony i dlatego nie może odpowiadać na serwer Qpid.

Rozdzielczość

  1. Uruchom ponownie serwer Postgres i PostgreSQL, jak pokazano poniżej:
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. To ponowne uruchomienie spowoduje zatrzymanie wszystkich poprzednich zapytań SQL i powinno umożliwić nowe połączenia z bazą danych Postgres.
  3. Ponownie załaduj panele informacyjne Analytics i sprawdź, czy dane Analytics są wyświetlane.

Jeśli problem nadal występuje, skontaktuj się z zespołem pomocy Apigee Edge.

Nieprawidłowe wdrożenie Analytics

Diagnostyka

  1. Uzyskaj stan wdrożenia Analytics za pomocą tego wywołania interfejsu API:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
  2. Sprawdź stan serwerów Qpid i Postgres na podstawie wyników wywołania interfejsu API.
    1. Jeśli stan serwerów Qpid i Postgres jest wyświetlany jako "SUCCESS" (POWODZENIE), oznacza to, serwery Analytics są prawidłowo połączone. Przejdź do sekcji Nieaktualne identyfikatory UUID serwera Analytics.
    2. Jeśli stan serwerów Qpid lub Postgres jest wyświetlany jako "UNKNOWN" (NIEZNANY) lub "FAILURE" (NIEPOWODZENIE), oznacza to problem z odpowiednim serwerem.

      Na przykład w tym scenariuszu stan serwerów Postgres jest wyświetlany jako "UNKNOWN":

      Może się tak zdarzyć, jeśli podczas wdrażania Analytics wystąpi błąd. Ten błąd uniemożliwia dotarcie wiadomości z serwerów zarządzania do serwerów Postgres.

Rozdzielczość

Ten problem można zwykle rozwiązać, ponownie uruchamiając serwery, które wyświetliły stan „FAILURE” (NIEPOWODZENIE) lub „UNKNOWN” (NIEZNANY).

  1. Uruchom ponownie każdy serwer, którego stan połączenia z Analytics wskazywał „FAILURE” (NIEPOWODZENIE) lub „UNKNOWN” (NIEZNANY) za pomocą tego polecenia:
    /opt/apigee/apigee-service/bin/apigee-service component restart
  2. Przykład:
    1. Jeśli problem występuje na serwerach Qpid, uruchom je ponownie:
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    2. Jeśli problem występuje na serwerach Postgres, uruchom ponownie węzły serwera głównego i serwera podrzędnego Postgres:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  3. W powyższym przykładzie w przypadku serwerów Postgres wyświetla się komunikat „UNKNOWN” (NIEZNANY), dlatego musisz ponownie uruchomić serwer główny i serwer podrzędny Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

Nieaktualne identyfikatory UUID serwera Analytics

Diagnostyka

  1. Uzyskaj konfigurację Analytics za pomocą tego wywołania interfejsu API:
    curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax

    Oto przykładowe dane wyjściowe z powyższego interfejsu API:

    [ {
      "name" : "axgroup001",
      "properties" : {
        "consumer-type" : "ax"
      },
      "scopes" : [ "myorg~prod", "myorg~test" ],
      "uuids" : {
        "aries-datastore" : [ ],
        "postgres-server" : [ "6777...2db14" ],
        "dw-server" : [ ],
        "qpid-server" : [ "774e...fb23", "29f3...8c11" ]
      },
      "consumer-groups" : [ {
        "name" : "consumer-group-001",
        "consumers" : [ "774e...8c11" ],
        "datastores" : [ "6777...db14" ],
        "properties" : {
        }
      } ],
      "data-processors" : {
      }
    } ]
  2. Sprawdź, czy te informacje w danych wyjściowych są prawidłowe:
    1. Nazwy organizacji i środowiska wymienione w elemencie „scopes” (zakresy).
    2. Identyfikatory UUID serwerów Postgres i Qpid.
      • Aby uzyskać identyfikatory UUID serwera Postgres, uruchom to polecenie w każdym z węzłów serwera Postgres:
        curl 0:8084/v1/servers/self/uuid
      • Aby uzyskać identyfikatory UUID serwera Qpid, uruchom to polecenie w każdym węźle serwera Qpid serwera:
        curl 0:8083/v1/servers/self/uuid
  3. Jeśli wszystkie informacje są prawidłowe, przejdź do sekcji Dane Analytics nie są przesyłane do bazy danych Postgres.
  4. Jeśli identyfikatory UUID serwerów Postgres lub Qpid są nieprawidłowe, może to oznaczać, że serwery zarządzania odwołują się do nieaktualnych identyfikatorów UUID.

Rozdzielczość

Aby usunąć nieaktualne identyfikatory UUID i dodać prawidłowe identyfikatory UUID serwerów, skontaktuj się z zespołem pomocy Apigee Edge.