Le dimensioni personalizzate non vengono visualizzate quando sono stati configurati più gruppi di assi

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Sintomo

La variabile personalizzata creata utilizzando il criterio Raccoglitore statistiche non è visibile in Dimensioni personalizzate nei report personalizzati di Analytics nell'interfaccia utente Edge.

Messaggio di errore

Il log di sistema edge-postgres-server conterrà il seguente errore dopo un riavvio per ogni combinazione organizzazione/ambiente in cui il percorso non è presente:

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

Possibili cause

Causa Descrizione Istruzioni per la risoluzione dei problemi applicabili per
Manca il percorso delle proprietà Zookeeper per la combinazione di organizzazione e ambiente. Se manca il percorso ZooKeeper /organizations//environments//properties non è possibile creare dimensioni personalizzate. Utenti del cloud privato perimetrale

Causa: manca il percorso delle proprietà ZooKeeper per la combinazione di organizzazione e ambiente

Diagnostica

Analytics è abilitato per una combinazione organizzazione-ambiente tramite l' API di analisi, che compila il campo /organizations//environments//properties nell'albero ZooKeeper. In caso di errore di questa API, il componente edge-postgres-server non può creare dimensioni personalizzate e il seguente errore verrà visualizzato nel relativo system.log:

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

In genere questo accade quando l'onboarding di un'organizzazione è stato eseguito in un momento in cui esisteva più di un gruppo di analisi che utilizzava gli stessi UUID del server postgres. Per verificare quanti gruppi di analisi esistono, esegui la seguente chiamata API:

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

Se questa API restituisce più gruppi, è molto probabile che sia la causa del problema. Nell'esempio seguente, tieni presente che esistono due gruppi, distinti solo con un trattino: axgroup-001 e 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" : {
  }

Nello specifico, il problema si verifica se l'UUID del server postgres configurato per ogni gruppo di assi è lo stesso. Un modo rapido per determinare la situazione consiste nell'eseguire quanto segue:

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

Il seguente output di esempio confronta rapidamente gli UUID postgres-server per determinare che sono uguali:

{  "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" ],

Risoluzione

Lo stesso insieme di server PostgreSQL non può essere assegnato a due axgroups. Il modo più rapido per risolvere il problema è eliminare le informazioni del server postgres da un gruppo axgroup e assegnare tutti gli ambiti (combinazioni di organizzazione e ambiente) all'altro gruppo. A tale scopo, procedi nel seguente modo:

  1. Rimuovi i componenti del server postgres da uno dei due axgroups utilizzando le istruzioni riportate in Aggiungere ed eliminare i componenti di analisi nei gruppi di analisi. Se riscontri problemi solo con ambiti non di produzione, scegli axgroup che NON ha alcun ambito di produzione per questo esercizio. Altrimenti, scegli l'axgroup con il numero minimo di ambiti.
  2. Rimuovi da axgroup tutti gli ambiti che non hanno più server postgres e quelli per cui riscontri il problema di dimensione personalizzata dal relativo axgroup. Supponendo che axgroup-001 dell'esempio precedente sia il gruppo che vuoi utilizzare, devi utilizzare quanto segue per rimuovere l'ambito per l'organizzazione myorg e per l'ambiente prod:
    curl -u username:password -X DELETE 'http://management-server-host:8080/v1/analytics/groups/ax/axgroup001/scopes?org=myorg&env=prod'
    
  3. Abilita l'analisi utilizzando l'API di analisi.
  4. Riavvia il componente edge-postgres-server sul nodo master postgres e tutti i componenti edge-qpid-server che potresti aver installato, utilizzando i seguenti comandi:
     /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    
     /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
    
  5. Verifica che l'errore specificato nella sezione Messaggio di errore sopra non si verifichi più nel file di log del server Postgres /opt/apigee/var/log/edge-postgres-server/logs/system.log.
  6. Verifica se le dimensioni personalizzate vengono visualizzate nell'UI di Edge.

Se il problema persiste, consulta la pagina Devi raccogliere informazioni diagnostiche.

Raccogliere informazioni diagnostiche

Se il problema persiste anche dopo aver seguito le istruzioni precedenti, raccogli le seguenti informazioni diagnostiche. Contatta e inviale all'assistenza Apigee Edge:

  1. L'edge-postgres-server /opt/apigee/var/log/edge-postgres-server/logs/system.log dal momento dell'ultimo riavvio.
  2. L'output della seguente chiamata API Management:
    curl -u username:password "http://management-server-host:8080/v1/analytics/groups/ax"
    
  3. L'output dell'albero ZooKeeper ottenuto utilizzando il seguente comando:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt