Benutzerdefinierte Dimensionen werden nicht angezeigt, wenn mehrere Axgroups konfiguriert wurden

Sie lesen gerade die Dokumentation zu Apigee Edge.
Zur Dokumentation zuApigee X wechseln.
info

Symptom

Die mit der Statistics Collector policy erstellte benutzerdefinierte Variable ist in der New Edge UI unter „Benutzerdefinierte Dimensionen“ in den benutzerdefinierten Analytics-Berichten nicht sichtbar.

Fehlermeldung

Im Systemprotokoll des Edge-Postgres-Servers wird nach einem Neustart für jede Organisations-/Umgebungskombination, bei der der Pfad fehlt, der folgende Fehler angezeigt:

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 Anleitungen zur Fehlerbehebung gelten für
Der Pfad zu den ZooKeeper-Eigenschaften fehlt für die Organisations- und Umgebungskombination. Wenn der ZooKeeper-Pfad /organizations//environments//properties fehlt, können keine benutzerdefinierten Dimensionen erstellt werden. Edge Private Cloud-Nutzer

Ursache: Der Pfad zu den ZooKeeper-Eigenschaften fehlt für die Organisations- und Umgebungskombination

Diagnose

Analytics wird für eine Organisations-/Umgebungskombination über die API zum Aktivieren von Analytics aktiviert. Dadurch wird /organizations//environments//properties in der ZooKeeper-Struktur ausgefüllt. Wenn diese API fehlschlägt, kann die edge-postgres-server-Komponente keine benutzerdefinierten Dimensionen erstellen und der folgende Fehler wird im Systemlog 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 eingeführt wurde, als mehrere Analytics-Gruppen vorhanden waren, die dieselben postgres-server-UUIDs verwendeten. Führen Sie den folgenden API-Aufruf aus, um zu prüfen, wie viele Analytics-Gruppen 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. Im folgenden Beispiel sind zwei Gruppen vorhanden, 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 tritt auf, wenn die für jede axgroup konfigurierte postgres-server-UUID identisch ist. Sie können dies schnell mit dem folgenden Befehl prüfen:

curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"|grep -B7 "postgres-server"

In der folgenden Beispielausgabe werden die postgres-server-UUIDs schnell verglichen, um festzustellen, dass 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 von PostgreSQL-Servern kann nicht zwei axgroups zugewiesen werden. Die schnellste Lösung besteht darin, die Informationen zum Postgres-Server aus einer axgroup zu löschen und alle Bereiche (Organisations-/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 Analytics-Komponenten in Analytics-Gruppen hinzufügen und löschen. Wenn Probleme nur bei Nicht-Produktionsbereichen auftreten, wählen Sie die axgroup aus, die keinen Produktionsbereich hat. Andernfalls wählen Sie die axgroup mit der geringsten Anzahl von Bereichen aus.
  2. Entfernen Sie alle Bereiche aus der axgroup, die keine Postgres-Server mehr hat, und die Bereiche bei denen das Problem mit der benutzerdefinierten Dimension auftritt, aus der jeweiligen axgroup. Wenn axgroup-001 aus dem obigen Beispiel die Gruppe ist, die Sie verwenden möchten, müssen Sie den folgenden Befehl verwenden, um den Bereich für die Organisation myorg und die Umgebung prod zu 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 mit der API zum Aktivieren von Analytics.
  4. Starten Sie die edge-postgres-server-Komponente auf dem Postgres-Masterknoten und alle installierten edge-qpid-server-Komponenten 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 des Postgres-Servers /opt/apigee/var/log/edge-postgres-server/logs/system.log auftritt.
  6. Prüfen Sie, ob die benutzerdefinierten Dimensionen in der neuen Edge-UI angezeigt werden.

Wenn das Problem weiterhin besteht, lesen Sie unten den Abschnitt Erfassen von Diagnoseinformationen erforderlich.

Erfassen von Diagnoseinformationen erforderlich

Wenn das Problem auch nach dem Ausführen der vorherigen Schritte weiterhin besteht, erfassen Sie die folgenden Diagnoseinformationen. Wenden Sie sich an den Apigee Edge-Support und teilen Sie ihm die Informationen mit:

  1. Das edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log vom Zeitpunkt des letzten Neustarts.
  2. Die Ausgabe des folgenden Management API-Aufrufs:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. Die Ausgabe der ZooKeeper-Struktur, die mit dem folgenden Befehl abgerufen wurde:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt