Daten werden nicht in Analyse-Dashboards angezeigt

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Symptom

Die Analyse-Dashboards (Proxy-Leistung, Zielleistung usw.) zeigen keine Daten in der Edge-Benutzeroberfläche an. In allen Dashboards wird die folgende Meldung angezeigt:

No traffic in the selected date range

Fehlermeldungen

Dieses Problem führt nicht zu beobachtbaren Fehlern.

Mögliche Ursachen

In der folgenden Tabelle sind die möglichen Ursachen dieses Problems aufgeführt:

Ursache Für
Kein API-Traffic für die Organisationsumgebung Edge für Private Cloud-Nutzer
Daten sind in der Postgres-Datenbank verfügbar, werden aber nicht in der UI angezeigt Edge für Private Cloud-Nutzer
Analytics-Daten werden nicht in die Postgres-Datenbank übertragen Edge für Private Cloud-Nutzer
Falsche Analytics-Bereitstellung Edge für Private Cloud-Nutzer
Veraltete UUIDs des Analytics Servers Edge für Private Cloud-Nutzer

Kein API-Traffic für die Organisationsumgebung

Diagnose

  1. Prüfen Sie mit einer der folgenden Methoden, ob für die API-Proxys in der spezifischen Organisationsumgebung für den Zeitraum, in dem Sie versuchen, die Analysedaten aufzurufen, Traffic vorhanden ist:
    1. Aktivieren Sie das Trace für alle APIs, die derzeit von Ihren Nutzern verwendet werden, und prüfen Sie, ob Sie Anfragen im Trace erhalten können.
    2. Rufen Sie die NGINX-Zugriffslogs auf (/opt/apigee/var/log/edge-router/nginx/logs/access.log) und prüfen Sie, ob für die angegebene Dauer neue Einträge für API-Proxys vorhanden sind).
    3. Wenn Sie Informationen von API-Proxys an einen Logserver wie Syslog, Splunk, Loggly usw. protokollieren, können Sie prüfen, ob auf diesen Logservern Einträge für API-Proxys für die angegebene Dauer vorhanden sind.
  2. Wenn es für die angegebene Dauer kein Traffic (keine API-Anfragen) gibt, sind keine Analysedaten verfügbar. Im Analyse-Dashboard wird „Kein Traffic im ausgewählten Zeitraum“ angezeigt.

Auflösung

  1. Führen Sie einige Aufrufe an einen oder mehrere API-Proxys in der spezifischen Organisationsumgebung aus.
  2. Warten Sie einige Sekunden und sehen Sie sich dann die Analyse-Dashboards auf dem Tab „Stunde“ an und prüfen Sie, ob die Daten angezeigt werden.
  3. Wenn das Problem weiterhin besteht, fahren Sie mit Daten in der Postgres-Datenbank verfügbar, aber nicht in der UI angezeigt fort.

Daten sind in der Postgres-Datenbank verfügbar, werden aber nicht in der Benutzeroberfläche angezeigt

Symptom

Ermitteln Sie zuerst, ob die neuesten Analytics-Daten in der Postgres-Datenbank verfügbar sind.

So prüfen Sie, ob die neuesten Analytics-Daten im Postgres-Masterknoten verfügbar sind:

  1. Melden Sie sich bei jedem der Postgres-Server an und führen Sie den folgenden Befehl aus, um zu prüfen, ob Sie sich im Postgres-Master-Knoten befinden:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    
  2. Melden Sie sich auf dem Master Postgres-Knoten bei PostgreSQL an:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    
  3. Prüfen Sie mit der folgenden SQL-Abfrage in der Postgres-Datenbank, ob die Tabelle für Ihre Organisationsumgebung vorhanden ist:
    \d analytics."orgname.envname.fact"
    
  4. Prüfen Sie mit der folgenden SQL-Abfrage, ob die neuesten Daten in der Postgres-Datenbank verfügbar sind:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
    
  5. Wenn der letzte Zeitstempel sehr alt (oder null) ist, weist dies darauf hin, dass in der Postgres-Datenbank keine Daten verfügbar sind. Die wahrscheinliche Ursache für dieses Problem wäre, dass die Daten nicht vom Qpid-Server in die Postgres-Datenbank übertragen werden. Fahren Sie mit dem Schritt Analytics-Daten werden nicht in Postgres-Datenbank übertragen fort.
  6. Wenn die neuesten Daten in der Postgres-Datenbank auf dem Masterknoten verfügbar sind, führen Sie die folgenden Schritte aus, um zu diagnostizieren, warum die Daten nicht in der Edge-Benutzeroberfläche angezeigt werden.

Diagnose

  1. Aktivieren Sie in Ihrem Chrome-Browser die Entwicklertools und lassen Sie die API über eines der Analyse-Dashboards nutzen. Gehen Sie dazu so vor:
    1. Wählen Sie in den Entwicklertools den Tab „Network“ (Netzwerk) aus.
    2. Aufnahme starten.
    3. Aktualisieren Sie das Analytics-Dashboard.
    4. Wählen Sie im linken Bereich in den Entwicklertools die Zeile mit "apiproxy?_optimized...".
    5. Wählen Sie im rechten Bereich in den Entwicklertools den Tab „Headers“ aus und notieren Sie sich die „Request URL“ (Anfrage-URL).
  2. Hier sehen Sie eine Beispielausgabe der Entwicklertools:

    Beispielausgabe mit der API, die im Proxy Performance-Dashboard auf dem Tab „Network“ des Dashboards „Developer Tools for Proxy Performance“ verwendet wird

  3. Führen Sie den Verwaltungs-API-Aufruf direkt aus und prüfen Sie, ob Sie die Ergebnisse erhalten. Hier ist ein Beispiel für einen API-Aufruf für den Tab „Tag“ im Proxy-Leistungs-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. Wenn Sie eine erfolgreiche Antwort ohne Daten erhalten, bedeutet dies, dass der Management Server die Daten aufgrund von Problemen mit der Netzwerkverbindung nicht vom Postgres-Server abrufen kann.
  5. Prüfen Sie, ob Sie vom Verwaltungsserver aus eine Verbindung zum Postgres-Server herstellen können:
    telnet Postgres_server_IP_address 5432
    
  6. Wenn Sie keine Verbindung zum Postgres-Server herstellen können, prüfen Sie, ob Firewall-Einschränkungen für Port 5432 bestehen.
  7. Wenn Firewalleinschränkungen bestehen, kann das der Grund dafür sein, dass der Management Server die Daten nicht vom Postgres-Server abrufen kann.

Auflösung

  1. Entfernen Sie gegebenenfalls Firewalleinschränkungen, damit der Management Server mit dem Postgres-Server kommunizieren kann.
  2. Wenn keine Firewall-Einschränkungen vorliegen, kann das Problem auf einen Netzwerkfehler zurückzuführen sein.
  3. Wenn auf dem Verwaltungsserver ein Netzwerkfehler aufgetreten ist, kann das Problem durch einen Neustart behoben werden.
  4. Starten Sie alle Verwaltungsserver nacheinander mit dem folgenden Befehl neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. Prüfen Sie, ob Sie die Analysedaten in der Edge-Benutzeroberfläche sehen können.

Wenn Sie die Daten immer noch nicht sehen, wenden Sie sich an den Apigee Edge-Support.

Analysedaten werden nicht in die Postgres-Datenbank übertragen

Diagnose

Wenn die Daten nicht vom Qpid-Server in die Postgres-Datenbank übertragen werden, wie unter In der Postgres-Datenbank verfügbare Daten, aber nicht in der UI angezeigt angegeben, führen Sie die folgenden Schritte aus:

  1. Prüfen Sie mit dem folgenden Befehl, ob jeder der Qpid-Server aktiv ist:
    /opt/apigee/bin/apigee-service edge-qpid-server status
    
  2. Wenn ein Qpid-Server ausfällt, starten Sie ihn neu. Fahren Sie andernfalls mit Schritt 5 fort.
    /opt/apigee/bin/apigee-service edge-qpid-server restart
    
  3. Warten Sie einige Zeit und prüfen Sie dann noch einmal, ob die neuesten Daten in der Postgres-Datenbank verfügbar sind.
    1. Bei PostgreSQL anmelden:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
      
    2. Führen Sie die folgende SQL-Abfrage aus, um zu prüfen, ob die neuesten Daten verfügbar sind:
      select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
      
  4. Wenn die aktuellen Daten verfügbar sind, überspringen Sie die folgenden Schritte und fahren Sie mit dem letzten Schritt im Abschnitt „Lösung“ fort. Wenn nicht die neuesten Daten verfügbar sind, fahren Sie mit den folgenden Schritten fort.
  5. Überprüfen Sie, ob die Nachrichten aus den Qpid-Serverwarteschlangen in die Postgres-Datenbank übertragen werden.
    1. Führen Sie qpid-stat -q command aus und prüfen Sie die Werte der Spalten msgIn und msgOut.
    2. In der folgenden Beispielausgabe sind „msgIn“ und „msgOut“ nicht identisch. Dies weist darauf hin, dass keine Nachrichten vom Qpid-Server zur Postgres-Datenbank übertragen werden.

  6. Wenn die Spalten msgIn und msgOut nicht übereinstimmen, prüfen Sie die Qpid-Serverprotokolle /opt/apigee/var/log/edge-qpid-server/system.log auf Fehler.
  7. Möglicherweise werden Fehlermeldungen wie „PG ist immer noch nicht verfügbar“ oder „Fatal: Es wurden bereits zu viele Clients vorhanden“ angezeigt (siehe Abbildung unten):
    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)
    

Dies kann passieren, wenn der Postgres-Server zu viele SQL-Abfragen ausführt oder die CPU zu hoch wird und daher nicht auf den Qpid-Server antworten kann.

Auflösung

  1. Starten Sie den Postgres-Server und PostgreSQL wie unten gezeigt neu:
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. Durch diesen Neustart wird sichergestellt, dass alle vorherigen SQL-Abfragen gestoppt werden und neue Verbindungen zur Postgres-Datenbank zugelassen werden.
  3. Aktualisieren Sie die Analytics-Dashboards und prüfen Sie, ob die Analytics-Daten angezeigt werden.

Wenn das Problem weiterhin besteht, wenden Sie sich an den Apigee Edge-Support.

Falsche Analytics-Bereitstellung

Diagnose

  1. Rufen Sie den Bereitstellungsstatus der Analyse mit dem folgenden API-Aufruf ab:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
    
  2. Prüfen Sie den Status der Qpid- und Postgres-Server anhand der Ergebnisse des API-Aufrufs.
    1. Wenn für den Status der Qpid- und Postgres-Server „SUCCESS“ angezeigt wird, bedeutet dies, dass die Analyseserver ordnungsgemäß verkabelt sind. Weiter mit Veraltete UUIDs des Analytics Servers.
    2. Wenn der Status von Qpid/Postgres-Servern als "UNKNOWN" oder "FAILURE" angezeigt wird, weist dies auf ein Problem mit dem entsprechenden Server hin.

      Das folgende Szenario zeigt beispielsweise den Status der Postgres-Server als "UNKNOWN":

      Das kann passieren, wenn beim Onboarding von Analytics ein Fehler auftritt. Dieser Fehler verhindert, dass die Nachrichten von Managementservern die Postgres-Server erreichen.

Auflösung

Dieses Problem kann in der Regel durch einen Neustart der Server behoben werden, bei denen „FAILURE“ oder „UNKNOWN“ angezeigt wurde.

  1. Starten Sie alle Server neu, deren Status der Analyseverkabelung „FAILURE“ oder „UNKNOWN“ anzeigt. Verwenden Sie dazu den folgenden Befehl:
    /opt/apigee/apigee-service/bin/apigee-service component restart
    
  2. Beispiel:
    1. Wenn das Problem auf Qpid-Servern auftritt, starten Sie die Qpid-Server neu:
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
      
    2. Wenn das Problem auf Postgres-Servern auftritt, starten Sie sowohl den Master- als auch den Slave-Postgres-Server-Knoten neu:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
      
  3. Im obigen Beispiel wird die Meldung „UNKNOWN“ für die Postgres-Server angezeigt. Daher müssen Sie sowohl den Master als auch den Slave Postgres-Server neu starten:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    

Veraltete UUIDs des Analytics-Servers

Diagnose

  1. Rufen Sie die Analysekonfiguration mit dem folgenden API-Aufruf ab:
    curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax
    

    Hier sehen Sie eine Beispielausgabe der obigen 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. Prüfen Sie, ob die folgenden Informationen in der Ausgabe korrekt sind:
    1. org-env-Namen, die im Element „scopes“ aufgeführt sind.
    2. UUIDs der Postgres- und Qpid-Server.
      • Rufen Sie die UUIDs des Postgres-Servers ab. Führen Sie dazu den folgenden Befehl auf jedem der Postgres-Serverknoten aus:
        curl 0:8084/v1/servers/self/uuid
        
      • Rufen Sie die UUIDs des Qpid-Servers ab. Führen Sie dazu den folgenden Befehl auf jedem der Qpid-Serverknoten aus:
        curl 0:8083/v1/servers/self/uuid
        
  3. Wenn alle Informationen korrekt sind, fahren Sie mit Analysedaten werden nicht in die Postgres-Datenbank übertragen fort.
  4. Wenn die UUIDs der Postgres- und/oder Qpid-Server falsch sind, verweisen die Management Server möglicherweise auf veraltete UUIDs.

Auflösung

Wenn Sie die veralteten UUIDs entfernen und die korrekten UUIDs der Server hinzufügen möchten, wenden Sie sich an den Apigee Edge-Support.