Benutzerdefinierte Dimensionen werden nicht angezeigt, wenn mehrere Axgroups konfiguriert wurden

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//environments//properties 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//environments//properties 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:

  1. 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.
  2. 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'
    
  3. Aktivieren Sie Analytics mithilfe der Analytics API aktivieren.
  4. 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
    
  5. 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.
  6. 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:

  1. Der Edge-Postgres-Server /opt/apigee/var/log/edge-postgres-server/logs/system.log seit dem letzten Neustart.
  2. Die Ausgabe des folgenden Management API-Aufrufs:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. Die Ausgabe des ZooKeeper-Baums, die mit dem folgenden Befehl abgerufen wird:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt