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 -Richtlinie erstellte benutzerdefinierte Variable ist in der 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 Kombination aus Organisation und Umgebung, 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 Kombination aus Organisation und Umgebung. 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 Kombination aus Organisation und Umgebung

Diagnose

Analytics wird für eine Kombination aus Organisation und Umgebung über die Enable analytics API aktiviert. Dadurch wird /organizations//environments//properties in der ZooKeeper-Struktur aufgefü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 eingebunden 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 feststellen, indem Sie Folgendes ausführen:

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

Im 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 (Kombinationen aus Organisation und Umgebung) 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 ihrer axgroup. Wenn axgroup-001 aus dem obigen Beispiel die Gruppe ist, die Sie verwenden möchten, müssen Sie Folgendes 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 Enable analytics API.
  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 Protokolldatei des Postgres-Servers /opt/apigee/var/log/edge-postgres-server/logs/system.log auftritt.
  6. Prüfen Sie, ob die benutzerdefinierten Dimensionen in der 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. Die Datei „/opt/apigee/var/log/edge-postgres-server/logs/system.log “ des Edge-Postgres-Servers 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