Variabile personalizzata non visibile ai report personalizzati di Analytics

Stai visualizzando la documentazione di Apigee Edge.
Consulta la documentazione di Apigee X.
info

Sintomo

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

Messaggi di errore

Non vengono rilevati errori.

Possibili cause

La tabella seguente elenca le possibili cause di questo problema:

Causa Per
La variabile personalizzata non rispetta le linee guida standard Utenti di Edge Private Cloud e Public Cloud
Nessun traffico sul proxy API che implementa la policy StatisticsCollector Utenti di Edge Private Cloud e Public Cloud
Variabile personalizzata non inviata al server Postgres Utenti di Edge Private Cloud

Fai clic su un link nella tabella per visualizzare le possibili risoluzioni per quella causa.

La variabile personalizzata non rispetta le linee guida standard

Diagnosi

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

Lo snippet di codice riportato di seguito mostra che il nome della variabile "product id" contiene uno spazio, quindi non verrà visualizzato in Dimensioni personalizzate nel 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 nella policy 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".
  • Non viene fatta distinzione tra maiuscole e minuscole.
  • Le parole chiave riservate elencate nella tabella al seguente link non sono consentite. Ad esempio, "user" non è consentito. Per saperne di più, consulta Parole chiave SQL.

Se il problema persiste, vai a Nessun traffico sul proxy API che implementa la policy StatisticsCollector.

Nessun traffico sul proxy API che implementa la policy StatisticsCollector

Diagnosi

Se non c'è traffico sul proxy API che implementa la policy StatisticsCollector, la variabile personalizzata non verrà visualizzata nei report personalizzati.

Risoluzione

Effettua alcune chiamate al proxy API che implementa la policy StatisticsCollector.

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

Se il problema persiste, vai a Variabile personalizzata non inviata al server Postgres.

Variabile personalizzata non inviata al server Postgres

Diagnosi

Quando viene creata una variabile personalizzata nel proxy API e vengono effettuate chiamate API, la variabile viene prima memorizzata 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 dove manca la variabile personalizzata:

  1. Genera l'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 dell'albero di ZooKeeper.
  3. Se la variabile personalizzata esiste nell'albero di ZooKeeper, esegui i seguenti comandi per verificare se la variabile personalizzata è 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 vedrai che la colonna della variabile personalizzata non è presente nella tabella dei fatti, motivo per cui non viene visualizzata in Dimensioni personalizzate.

Risoluzione

Soluzione 1: riavvia il server Postgres

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

    Se il problema persiste, applica la soluzione 2.

Soluzione 2: attiva la proprietà forceonboard

Attiva la proprietà forceonboard seguendo questi passaggi:

  1. Crea il file /opt/apigee/customer/application/postgres-server.properties sulla macchina del 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 hai più di un server Postgres, ripeti i passaggi precedenti su tutti i server Postgres.
  6. Annulla il deployment e il deployment del proxy API che utilizza la policy StatisticsCollector.
  7. Esegui le chiamate API.
  8. Controlla se le variabili personalizzate vengono visualizzate nelle dimensioni personalizzate nel report personalizzato.

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