Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation weitere Informationen
Symptom
Die mit der Statistik-Collector-Richtlinie erstellte benutzerdefinierte Variable ist in den benutzerdefinierten Analytics-Berichten in der Edge-Benutzeroberfläche nicht unter „Benutzerdefinierte Dimensionen“ sichtbar.
Fehlermeldung
Das Systemlog des Edge-Postgres-Servers enthält nach einem Neustart für jede Kombination aus Organisation und Umgebung, bei der der Pfad fehlt, den folgenden Fehler:
KeeperErrorCode = NoNode for /organizations/<ORG>/environments/<ENV>/properties 2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER - ZooKeeperServiceImpl.getData() : Could not get data for path: /organizations//environments/ /properties, reason: KeeperErrorCode = NoNode for /organizations/ /environments/ /properties
Mögliche Ursachen
Ursache | Beschreibung | Geltende Anleitungen zur Fehlerbehebung |
---|---|---|
Der Zookeeper-Attributpfad für die Kombination aus Organisation und Umgebung fehlt. | Wenn der ZooKeeper-Pfad /organizations/ fehlt, können keine benutzerdefinierten Dimensionen erstellt werden. |
Edge Private Cloud-Nutzer |
Grund: Der ZooKeeper-Attributpfad für die Kombination aus Organisation und Umgebung fehlt
Diagnose
Analytics wird für eine Kombination aus Organisation und Umgebung über die
Analytics API aktivieren aktiviert, die die /organizations/
im ZooKeeper-Baum füllt. Wenn diese API fehlschlägt, kann die Edge-Postgres-Server-Komponente keine benutzerdefinierten Dimensionen erstellen und der folgende Fehler wird in der Datei system.log angezeigt:
KeeperErrorCode = NoNode for /organizations/example/environments/prod/properties 2018-03-29 16:14:48,980 pool-10-thread-2 ERROR ZOOKEEPER - ZooKeeperServiceImpl.getData() : Could not get data for path: /organizations/example/environments/prod/properties, reason: KeeperErrorCode = NoNode for /organizations/digi/environments/sandbox/properties
Dies geschieht in der Regel, wenn eine Organisation zu einem Zeitpunkt aufgenommen wurde, als mehrere Analysegruppen vorhanden waren, die dieselben Postgres-Server-UUIDs verwendet haben. Führen Sie den folgenden API-Aufruf aus, um zu prüfen, wie viele Analysegruppen vorhanden sind:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
Wenn diese API mehrere Gruppen zurückgibt, ist dies höchstwahrscheinlich die Ursache des Problems. Beachten Sie im folgenden Beispiel, dass zwei Gruppen vorhanden sind, die sich nur durch einen Bindestrich unterscheiden: axgroup-001 und axgroup001.
[ { "name" : "axgroup-001", "properties" : { }, "scopes" : [ "VALIDATE~test" ], "uuids" : { "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ], "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ], "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ], "properties" : { } } ], "data-processors" : { } }, { "name" : "axgroup001", "properties" : { }, "scopes" : [ "example~prod" ], "uuids" : { "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ], "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ] }, "consumer-groups" : [ { "name" : "consumer-group-001", "consumers" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ], "datastores" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ], "properties" : { } } ], "data-processors" : { }
Das Problem wird insbesondere verursacht, wenn die UUID des Postgres-Servers für jede axgroup identisch ist. Dies lässt sich schnell feststellen, indem Sie folgenden Befehl ausführen:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"
In der folgenden Beispielausgabe werden die UUIDs des Postgres-Servers schnell verglichen, um festzustellen, ob sie identisch sind:
{ "name" : "axgroup-001", "properties" : { }, "scopes" : [ "VALIDATE~test" ], "uuids" : { "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ], "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ]-- "name" : "axgroup001", "properties" : { }, "scopes" : [ "myorg~prod" ], "uuids" : { "qpid-server" : [ "94c96375-1ca7-412d-9eee-80fda94f6e07" ], "aries-datastore" : [ ], "postgres-server" : [ "8ee86b70-5b33-44b6-b2f8-1b0ec0ec8d77" ],
Auflösung
Derselbe Satz PostgreSQL-Server kann nicht zwei axgroups zugewiesen werden. Der schnellste Weg zur Lösung besteht darin, die Informationen zum Postgres-Server aus einer axgroup zu löschen und alle Bereiche (Organisation, Umgebungskombinationen) der anderen Gruppe zuzuweisen. Gehen Sie dazu so vor:
- Entfernen Sie die Postgres-Serverkomponenten aus einer der beiden axgroups. Folgen Sie dazu der Anleitung unter Hinzufügen und Löschen von Analysekomponenten in Analysegruppen. Wenn Probleme nur für Nicht-Produktionsbereiche auftreten, wählen Sie die Axgruppe aus, die für diese Übung KEINEN Produktionsbereich hat. Wählen Sie andernfalls die axgroup mit der geringsten Anzahl von Bereichen aus.
- Entfernen Sie alle Bereiche aus der axgroup, für die keine Postgres-Server mehr vorhanden sind, und aus den Bereichen, für die das Problem mit der benutzerdefinierten Dimension auftritt. Wenn die Gruppe
axgroup-001
aus dem Beispiel oben die Gruppe ist, die Sie verwenden möchten, müssen Sie den Bereich für die Organisation myorg und die prod-Umgebung mit folgendem Befehl entfernen:curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
- Aktivieren Sie Analytics mithilfe der Analytics API aktivieren.
- Starten Sie die Edge-Postgres-Server-Komponente auf dem Postgres-Master-Knoten und alle Edge-qpid-Server-Komponenten, die Sie möglicherweise installiert haben, mit den folgenden Befehlen neu:
/opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
- Prüfen Sie, ob der im Abschnitt Fehlermeldung oben angegebene Fehler nicht mehr in der Logdatei
/opt/apigee/var/log/edge-postgres-server/logs/system.log
des Postgres-Servers auftritt. - Prüfen Sie, ob die benutzerdefinierten Dimensionen in der Edge-Benutzeroberfläche angezeigt werden.
Wenn das Problem weiterhin besteht, lesen Sie den Artikel Diagnoseinformationen müssen erfasst werden.
Diagnoseinformationen müssen erfasst werden
Wenn das Problem trotz Befolgen der vorherigen Anleitung weiterhin besteht, stellen Sie die folgenden Diagnoseinformationen zusammen. Kontaktieren Sie sie und geben Sie sie für den Apigee Edge-Support frei:
- Der Edge-Postgres-Server
/opt/apigee/var/log/edge-postgres-server/logs/system.log
seit dem letzten Neustart. - Die Ausgabe des folgenden Management API-Aufrufs:
curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
- Die Ausgabe des ZooKeeper-Baums, die mit dem folgenden Befehl abgerufen wird:
/opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt