Sie lesen gerade die Dokumentation zu Apigee Edge.
Rufen Sie die
Dokumentation zu Apigee X auf. info
Symptom
In den Analytics-Dashboards (Proxy Performance, Target Performance usw.) werden auf der Edge-Benutzeroberfläche keine Daten angezeigt. 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 mögliche Ursachen für dieses Problem aufgeführt:
| Ursache | Für |
|---|---|
| Kein API-Traffic für Organisation-Umgebung | Nutzer von Edge for Private Cloud |
| Daten in der Postgres-Datenbank verfügbar, werden aber nicht auf der Benutzeroberfläche angezeigt | Nutzer von Edge for Private Cloud |
| Analytics-Daten werden nicht an die Postgres-Datenbank gesendet | Nutzer von Edge for Private Cloud |
| Falsche Analytics-Bereitstellung | Nutzer von Edge for Private Cloud |
| Veraltete UUIDs des Analytics-Servers | Nutzer von Edge for Private Cloud |
Kein API-Traffic für Organisation-Umgebung
Diagnose
- Prüfen Sie, ob für die API-Proxys in der jeweiligen Organisation-Umgebung für
den angegebenen Zeitraum Traffic vorhanden ist. Verwenden Sie dazu eine der folgenden
Methoden:
- Aktivieren Sie die Trace-Funktion für eine Ihrer APIs, die derzeit von Ihren Nutzern verwendet wird, und prüfen Sie, ob Sie Anfragen im Trace erhalten.
- Sehen Sie sich die NGINX-Zugriffslogs
(
/opt/apigee/var/log/edge-router/nginx/logs/access.log)an und prüfen Sie, ob es für den angegebenen Zeitraum neue Einträge für API-Proxys gibt. - Wenn Sie Informationen von API-Proxys auf einem Log-Server wie Syslog, Splunk oder Loggly protokollieren, können Sie prüfen, ob es auf diesen Log-Servern Einträge für API-Proxys für den angegebenen Zeitraum gibt.
- Wenn für den angegebenen Zeitraum kein Traffic (keine API-Anfragen) vorhanden ist, sind keine Analytics-Daten verfügbar. Im Analytics Dashboard wird die Meldung „No traffic in the selected date range“ (Kein Traffic im ausgewählten Zeitraum) angezeigt.
Auflösung
- Führen Sie einige Aufrufe an einen oder mehrere API-Proxys in der jeweiligen Organisation-Umgebung aus.
- Warten Sie einige Sekunden und sehen Sie sich dann die Analytics-Dashboards auf dem Tab „Hour“ (Stunde) an. Prüfen Sie, ob die Daten angezeigt werden.
- Wenn das Problem weiterhin besteht, fahren Sie mit Daten in der Postgres Datenbank verfügbar, werden aber nicht auf der Benutzeroberfläche angezeigt fort.
Daten in der Postgres-Datenbank verfügbar, werden aber nicht auf der Benutzeroberfläche angezeigt
Symptom
Prüfen 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-Master Knoten verfügbar sind:
- Melden Sie sich auf jedem der Postgres-Server an und führen Sie den folgenden Befehl aus, um zu prüfen, ob Sie sich
auf dem Postgres-Masterknoten befinden:
/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
- Melden Sie sich auf dem Postgres-Masterknoten in PostgreSQL an:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- Prüfen Sie mit der folgenden SQL-Abfrage in der Postgres
Datenbank, ob die Tabelle für Ihre Organisation-Umgebung vorhanden ist:
\d analytics."orgname.envname.fact"
- 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";
- Wenn der letzte Zeitstempel sehr alt (oder null) ist, sind keine Daten in der Postgres-Datenbank verfügbar. Die wahrscheinliche Ursache für dieses Problem ist, dass die Daten nicht vom Qpid-Server an die Postgres-Datenbank gesendet werden. Fahren Sie mit Analytics-Daten werden nicht an die Postgres-Datenbank gesendet fort.
- Wenn die neuesten Daten in der Postgres-Datenbank auf dem Masterknoten verfügbar sind, führen Sie die folgenden Schritte aus, um zu ermitteln, warum die Daten nicht auf der Edge-Benutzeroberfläche angezeigt werden.
Diagnose
- Aktivieren Sie die Entwicklertools
in Ihrem Chrome-Browser und rufen Sie die API ab, die in einem der Analytics-Dashboards verwendet wird. Gehen Sie dazu so vor:
- Wählen Sie in den Entwicklertools den Tab „Network“ (Netzwerk) aus.
- Starten Sie die Aufnahme.
- Laden Sie das Analytics-Dashboard neu.
- Wählen Sie im linken Bereich der Entwicklertools die Zeile mit "apiproxy?_optimized...". aus.
- Wählen Sie im rechten Bereich der Entwicklertools den Tab „Headers“ (Header) aus und notieren Sie die „Request URL“ (Anfrage-URL).
- Hier sehen Sie eine Beispielausgabe der Entwicklertools:
Beispielausgabe der API, die im Dashboard „Proxy Performance“ verwendet wird (Tab „Network“ der Entwicklertools für das Dashboard „Proxy Performance“)

- Führen Sie den Management API-Aufruf direkt aus und prüfen Sie, ob Sie Ergebnisse erhalten. Hier sehen Sie einen Beispiel-API
Aufruf für den Tab „Day“ (Tag) im Dashboard „Proxy Performance“:
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"
- Wenn Sie eine erfolgreiche Antwort ohne Daten sehen, kann der Management Server die Daten aufgrund von Problemen mit der Netzwerk verbindung nicht vom Postgres-Server abrufen.
- Prüfen Sie, ob Sie vom Management Server aus eine Verbindung zum Postgres-Server herstellen können:
telnet Postgres_server_IP_address 5432
- Wenn Sie keine Verbindung zum Postgres-Server herstellen können, prüfen Sie, ob für Port 5432 Firewall Einschränkungen gelten.
- Wenn Firewall-Einschränkungen vorhanden sind, kann der Management Server die Daten möglicherweise nicht vom Postgres-Server abrufen.
Auflösung
- Wenn Firewall-Einschränkungen vorhanden sind, entfernen Sie sie, damit der Management Server mit dem Postgres-Server kommunizieren kann.
- Wenn keine Firewall-Einschränkungen vorhanden sind, kann dieses Problem auf einen Netzwerkfehler zurückzuführen sein.
- Wenn auf dem Management Server ein Netzwerkfehler aufgetreten ist, kann das Problem möglicherweise durch einen Neustart behoben werden.
- Starten Sie alle Management Server einzeln mit dem folgenden Befehl neu:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Prüfen Sie, ob die Analytics-Daten auf der Edge-Benutzeroberfläche angezeigt werden.
Wenn die Daten weiterhin nicht angezeigt werden, wenden Sie sich an den Apigee Edge-Support.
Analytics-Daten werden nicht an die Postgres-Datenbank gesendet
Diagnose
Wenn die Daten nicht vom Qpid-Server an die Postgres-Datenbank gesendet werden (wie unter Daten in der Postgres-Datenbank verfügbar, werden aber nicht auf der Benutzeroberfläche angezeigt beschrieben), führen Sie die folgenden Schritte aus:
- Prüfen Sie mit dem folgenden Befehl, ob alle Qpid-Server ausgeführt werden:
/opt/apigee/apigee-service/bin edge-qpid-server status
- Wenn ein Qpid-Server nicht ausgeführt wird, starten Sie ihn neu. Andernfalls fahren Sie mit Schritt 5 fort.
/opt/apigee/apigee-service/bin edge-qpid-server restart
- Warten Sie einige Zeit und prüfen Sie dann noch einmal, ob die neuesten Daten in der Postgres-Datenbank verfügbar sind.
- Melden Sie sich in PostgreSQL an:
psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
- 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";
- Melden Sie sich in PostgreSQL an:
- Wenn die neuesten Daten verfügbar sind, überspringen Sie die folgenden Schritte und fahren Sie mit dem letzten Schritt im Abschnitt „Auflösung“ fort. Wenn die neuesten Daten nicht verfügbar sind, fahren Sie mit den folgenden Schritten fort.
- Prüfen Sie, ob die Nachrichten aus den Qpid-Serverwarteschlangen an die Postgres-Datenbank gesendet werden.
- Führen Sie den Befehl
qpid-stat -q commandaus und prüfen Sie die Werte in den Spalten msgIn und msgOut. - Hier sehen Sie eine Beispielausgabe, in der die Werte für „msgIn“ und „msgOut“ nicht gleich sind. Das bedeutet,
dass Nachrichten nicht vom Qpid-Server an die Postgres-Datenbank gesendet werden.

- Führen Sie den Befehl
- Wenn die Werte in den Spalten msgIn und msgOut nicht übereinstimmen, prüfen Sie die Qpid
Serverlogs
/opt/apigee/var/log/edge-qpid-server/system.logund suchen Sie nach Fehlern. - Möglicherweise werden Fehlermeldungen wie "Probably PG is still down" oder
"FATAL: sorry, too many clients already" angezeigt, wie in der folgenden Abbildung zu sehen:
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-Auslastung zu hoch ist und er daher nicht auf den Qpid-Server reagieren kann.
Auflösung
- Starten Sie den Postgres-Server und PostgreSQL neu, wie unten gezeigt:
/opt/apigee/bin/apigee-service edge-postgres-server restart
/opt/apigee/bin/apigee-service apigee-postgresql restart
- Durch diesen Neustart werden alle vorherigen SQL-Abfragen beendet und neue Verbindungen zur Postgres-Datenbank sollten möglich sein.
- Laden Sie die Analytics-Dashboards neu 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
- Rufen Sie den Bereitstellungsstatus von Analytics mit dem folgenden API-Aufruf ab:
curl -u user_email:password http://management_server_host:port /v1/organizations/orgname/environments/envname/provisioning/axstatus
- Prüfen Sie den Status der Qpid- und Postgres-Server anhand der Ergebnisse des API-Aufrufs.
- Wenn der Status der Qpid- und Postgres-Server als „SUCCESS“ (Erfolg) angezeigt wird, sind die Analytics-Server ordnungsgemäß verbunden. Fahren Sie mit Veraltete UUIDs des Analytics-Servers fort.
- Wenn der Status der Qpid-/Postgres-Server als „UNKNOWN“ (Unbekannt) oder „FAILURE“ (Fehler) angezeigt wird, dann
liegt ein Problem mit dem entsprechenden Server vor.
Im folgenden Beispiel wird der Status der Postgres-Server als „UNKNOWN“ angezeigt:

Dies kann passieren, wenn bei der Einrichtung von Analytics ein Fehler auftritt. Dieser Fehler verhindert, dass die Nachrichten von den Management Servern die Postgres-Server erreichen.
Auflösung
Dieses Problem lässt sich in der Regel beheben, indem Sie die Server neu starten, bei denen „FAILURE“ (Fehler) oder „UNKNOWN“ (Unbekannt) angezeigt wurde.
- Starten Sie jeden der Server, bei denen der Status der Analytics-Verbindung „FAILURE“ (Fehler) oder „UNKNOWN“ (Unbekannt) angezeigt wurde,
mit dem folgenden Befehl neu:
/opt/apigee/apigee-service/bin/apigee-service component restart
- Beispiel:
- Wenn das Problem auf Qpid-Servern auftritt, starten Sie die Qpid-Server neu:
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- Wenn das Problem auf Postgres-Servern auftritt, starten Sie sowohl den Master- als auch den Slave
Postgres-Serverknoten neu:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
- Wenn das Problem auf Qpid-Servern auftritt, starten Sie die Qpid-Server neu:
- Im obigen Beispiel wird die Meldung „UNKNOWN“ (Unbekannt) für die Postgres-Server angezeigt. Sie müssen also
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
- Rufen Sie die Analytics-Konfiguration 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 oben genannten 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" : { } } ]
- Prüfen Sie, ob die folgenden Informationen in der Ausgabe korrekt sind:
- Namen der Organisation-Umgebung im Element „scopes“.
- UUIDs der Postgres- und Qpid-Server.
- Rufen Sie die UUIDs des Postgres-Servers ab, indem Sie den folgenden Befehl auf jedem der
Postgres-Serverknoten ausführen:
curl 0:8084/v1/servers/self/uuid
- Rufen Sie die UUIDs des Qpid-Servers ab, indem Sie den folgenden Befehl auf jedem der Qpid
Serverknoten ausführen:
curl 0:8083/v1/servers/self/uuid
- Rufen Sie die UUIDs des Postgres-Servers ab, indem Sie den folgenden Befehl auf jedem der
Postgres-Serverknoten ausführen:
- Wenn alle Informationen korrekt sind, fahren Sie mit Analytics-Daten werden nicht an die Postgres-Datenbank gesendet fort.
- 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.