Variabile personalizzata non visibile ai report personalizzati di Analytics

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

Sintomo

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

Messaggi di errore

Non sono stati rilevati errori.

Possibili cause

Nella tabella seguente sono elencate le possibili cause di questo problema:

Causa Per
Variabile personalizzata non conforme alle linee guida standard Utenti di cloud privato e pubblico Edge
Nessun traffico sul proxy API che implementa il criterio StatisticsCollector Utenti di cloud privato e pubblico Edge
La variabile personalizzata non è stata inviata al server Postgres Utenti del cloud privato perimetrale

Fai clic su un link nella tabella per visualizzare le possibili soluzioni a tale causa.

Variabile personalizzata non conforme alle linee guida standard

Diagnostica

Se il nome della variabile personalizzata utilizzato nel criterio StatisticsCollector non rispetta le linee guida standard (vedi Risoluzione), non verrà visualizzato nei report personalizzati.

Lo snippet di codice riportato di seguito indica che il nome della variabile "ID prodotto" contiene uno spazio, pertanto non verrà visualizzato nella Dimensione personalizzata del report personalizzato.

  <StatisticsCollector name="publishPurchaseDetails">
    <Statistics>
      <Statistic name="productID" ref="product id" type="string">999999</Statistic>
    </Statistics>
  </StatisticsCollector>

Risoluzione

I nomi delle variabili personalizzate utilizzati nel criterio StatisticsCollector all'interno del proxy API devono rispettare le seguenti linee guida:

  • I nomi possono includere [a-z][0-9] e "_".
  • I nomi non possono includere spazi. Ad esempio, nell'esempio di codice mostrato sopra, il nome della variabile deve essere modificato in "product_id".
  • Maiuscole/minuscole vengono ignorate.
  • Non sono consentite le parole chiave riservate elencate nella tabella al link riportato di seguito. Ad esempio, il termine "utente" non è consentito. Per maggiori informazioni, consulta Parole chiave SQL.

Se il problema persiste, passa a Nessun traffico sul proxy API che implementa il criterio StatisticsCollector.

Nessun traffico sul proxy API che implementa il criterio StatisticsCollector

Diagnostica

Se sul proxy API non è presente traffico che implementa il criterio StatisticsCollector, la variabile personalizzata non verrà visualizzata nei report personalizzati.

Risoluzione

Effettua alcune chiamate al proxy API che implementa il criterio StatisticsCollector.

Attendi un po' di tempo e verifica se le variabili personalizzate vengono visualizzate nelle dimensioni personalizzate del report personalizzato.

Se il problema persiste, passa a La variabile personalizzata non è stata inviata al server Postgres.

La variabile personalizzata non è stata inviata al server Postgres

Diagnostica

Quando viene creata una variabile personalizzata nel proxy API e vengono effettuate chiamate API, la variabile viene prima archiviata in memoria sul processore di messaggi. Il processore di messaggi invia quindi le informazioni sulla nuova variabile a ZooKeeper, che a sua volta le invia al server Postgres per aggiungerla come colonna nel database Postgres.

A volte, la notifica di ZooKeeper potrebbe non raggiungere il server Postgres a causa di problemi di rete. A causa di questo errore, la variabile personalizzata potrebbe non essere visualizzata nel report personalizzato.

Per identificare la posizione in cui manca la variabile personalizzata:

  1. Genera la struttura ad albero di ZooKeeper utilizzando il seguente comando:
    /opt/apigee/apigee-zookeeper/contrib/zk-tree.sh > zktree-output.txt
  2. Cerca la variabile personalizzata nell'output ad albero di ZooKeeper.
  3. Se la variabile personalizzata esiste nell'albero di ZooKeeper, esegui i comandi seguenti per verificare se è stata aggiunta al database Postgres:
    1. Sul nodo Postgres, accedi a PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    2. Esegui la seguente query SQL:
      select column_name, data_type, character_maximum_length from INFORMATION_SCHEMA.COLUMNS
        where table_name = 'orgname.envname.fact';
  4. Molto probabilmente noterai che la colonna della variabile personalizzata non sarà presente nella tabella dei fatti, motivo per cui non viene visualizzata nelle dimensioni personalizzate.

Risoluzione

Soluzione 1: riavvia il server Postgres

  1. Riavvia il server Postgres per forzarlo a leggere tutte le informazioni pertinenti ad Analytics da Zookeeper:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart

    Se il problema persiste, applica la soluzione n. 2.

Soluzione 2: attiva il forceonboard della proprietà

Attiva la proprietà forceonboard seguendo questi passaggi:

  1. Crea il file /opt/apigee/customer/application/postgres-server.properties sulla macchina server Postgres, se non esiste già.
  2. Aggiungi la seguente riga a questo file:
    conf_pg-agent_forceonboard=true
  3. Assicurati che questo file sia di proprietà di Apigee utilizzando il seguente comando:
    chown apigee:apigee /opt/apigee/customer/application/postgres-server.properties
  4. Riavvia il server Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
  5. Se disponi di più server Postgres, ripeti i passaggi precedenti su tutti i server Postgres.
  6. Annulla il deployment del proxy API che utilizza il criterio StatisticsCollector ed eseguine il deployment.
  7. Eseguire le chiamate API.
  8. Verifica se le variabili personalizzate vengono visualizzate nelle dimensioni personalizzate del report personalizzato.

Se il problema persiste, contatta l'assistenza Apigee Edge.