I dati non vengono visualizzati nelle dashboard di analisi

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

Sintomo

Le dashboard di analisi (Prestazioni proxy, Prestazioni target e così via) non mostrano dati nella UI perimetrale. Tutte le dashboard mostrano il seguente messaggio:

No traffic in the selected date range

Messaggi di errore

Questo problema non genera errori osservabili.

Possibili cause

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

Causa Per
Nessun traffico API per l'ambiente organizzazione Edge per utenti di cloud privato
Dati disponibili nel database Postgres, ma non visualizzati nella UI Edge per utenti di cloud privato
I dati di Analytics non vengono inviati al database Postgres Edge per utenti di cloud privato
Implementazione di Analytics non corretta Edge per utenti di cloud privato
UUID di server di analisi inattivi Edge per utenti di cloud privato

Nessun traffico API per l'ambiente-organizzazione

Diagnostica

  1. Controlla se c'è traffico per i proxy API nell'ambiente dell'organizzazione specifico per la durata specifica in cui stai tentando di visualizzare i dati di analisi utilizzando uno dei seguenti metodi:
    1. Abilita la traccia per una delle tue API attualmente utilizzate dagli utenti e controlla se riesci a ricevere richieste nella traccia.
    2. Visualizza i log degli accessi NGINX (/opt/apigee/var/log/edge-router/nginx/logs/access.log) e controlla se ci sono nuove voci per i proxy API per la durata specifica).
    3. Se registri le informazioni dai proxy API a un server di log come Syslog, Splunk, Loggly e così via, puoi verificare se in questi server di log sono presenti voci per i proxy API per la durata specifica.
  2. In assenza di traffico (nessuna richiesta API) per la durata specifica, i dati di analisi non sono disponibili. Nella dashboard di Analytics verrà visualizzato il messaggio "Nessun traffico nell'intervallo di date selezionato".

Risoluzione

  1. Effettua alcune chiamate a uno o più proxy API nell'ambiente dell'organizzazione specifico.
  2. Attendi qualche secondo, quindi visualizza le dashboard di analisi nella scheda Ora e controlla se i dati vengono visualizzati.
  3. Se il problema persiste, passa a Dati disponibili nel database Postgres, ma non visualizzati nell'interfaccia utente.

Dati disponibili nel database Postgres, ma non visualizzati nella UI

Sintomo

In primo luogo, determina la disponibilità degli ultimi dati di Analytics nel database Postgres.

Per verificare se i dati di Analytics più recenti sono disponibili nel nodo master Postgres:

  1. Accedi a ciascuno dei server Postgres ed esegui questo comando per verificare che ti trovi sul nodo Master Postgres:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master
    
  2. Nel nodo Master Postgres, accedi a PostgreSQL:
    psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
    
  3. Controlla se la tabella esiste per il tuo ambiente org utilizzando la seguente query SQL nel database Postgres:
    \d analytics."orgname.envname.fact"
    
  4. Controlla se nel database Postgres sono disponibili i dati più recenti utilizzando la seguente query SQL:
    select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
    
  5. Se il timestamp più recente è molto vecchio (o nullo), significa che i dati non sono disponibili nel database Postgres. La causa più probabile di questo problema è che non viene eseguito il push dei dati dal server Qpid al database Postgres. Passa al passaggio del trasferimento dei dati di Analytics al database Postgres.
  6. Se nel database Postgres sono disponibili i dati più recenti sul nodo master, segui i passaggi riportati di seguito per diagnosticare il motivo per cui i dati non vengono visualizzati nella UI Edge.

Diagnostica

  1. Attiva gli Strumenti per sviluppatori nel browser Chrome e utilizza l'API da una delle dashboard di analisi seguendo i passaggi riportati di seguito:
    1. Seleziona la scheda Rete dagli Strumenti per sviluppatori.
    2. Avvia registrazione.
    3. Ricarica la dashboard di Analytics.
    4. Nel riquadro a sinistra negli Strumenti per sviluppatori, seleziona la riga con "apiproxy?_optimized...".
    5. Nel riquadro a destra degli Strumenti per sviluppatori, seleziona la scheda "Intestazioni" e annota il campo "Richiedi URL".
  2. Di seguito è riportato un esempio di output degli Strumenti per sviluppatori:

    Output di esempio che mostra l'API utilizzata nella dashboard Prestazioni proxy della scheda Rete della dashboard Strumenti per sviluppatori per la dashboard delle prestazioni proxy

  3. Esegui direttamente la chiamata API di gestione e controlla se ottieni i risultati. Ecco una chiamata API di esempio per la scheda Giorno nella dashboard del rendimento del proxy:
    curl -u username:password
      "http://management_server_IP_address:8080/v1/organizations/
      org_name/environments/env_name/stats/apiproxy?limit=14400&
      select=sum(message_count),sum(is_error),avg(total_response_time),
      avg(target_response_time)&sort=DESC&sortby=sum(message_count),sum(is_error),
      avg(total_response_time),avg(target_response_time)&timeRange=08%2F9%2F2017+
      18:00:00~08%2F10%2F2017+18:00:00&timeUnit=hour&tsAscending=true"
    
  4. Se vedi una risposta riuscita ma senza dati, significa che il server di gestione non è in grado di recuperare i dati dal server Postgres a causa di problemi di connettività di rete.
  5. Verifica se riesci a connetterti al server Postgres dal server di gestione:
    telnet Postgres_server_IP_address 5432
    
  6. Se non riesci a connetterti al server Postgres, verifica se sono presenti limitazioni del firewall sulla porta 5432.
  7. L'eventuale presenza di limitazioni del firewall potrebbe impedire al server di gestione di eseguire il pull dei dati dal server Postgres.

Risoluzione

  1. Se sono presenti limitazioni del firewall, rimuovile in modo che il server di gestione possa comunicare con il server Postgres.
  2. Se non sono presenti limitazioni del firewall, il problema potrebbe essere dovuto a un problema di rete.
  3. Se si è verificato un problema di rete sul server di gestione, il riavvio potrebbe risolvere il problema.
  4. Riavvia tutti i server di gestione uno alla volta utilizzando il comando seguente:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. Verifica se riesci a visualizzare i dati di analisi nell'interfaccia utente Edge.

Se continui a non vedere i dati, contatta l'assistenza Apigee Edge.

Dati di analisi che non vengono inviati al database Postgres

Diagnostica

Se il push dei dati non viene eseguito da Qpid Server al database Postgres, come stabilito in Dati disponibili nel database Postgres, ma non visualizzati nell'interfaccia utente, esegui questi passaggi:

  1. Controlla se ciascuno dei server Qpid è attivo e in esecuzione eseguendo questo comando:
    /opt/apigee/bin/apigee-service edge-qpid-server status
    
  2. Se un server Qpid non è attivo, riavvialo. In caso contrario, vai al passaggio 5.
    /opt/apigee/bin/apigee-service edge-qpid-server restart
    
  3. Attendi un po' di tempo e ricontrolla se i dati più recenti sono disponibili nel database di Postgres.
    1. Accedi a PostgreSQL:
      psql -h /opt/apigee/var/run/apigee-postgresql -U apigee apigee
      
    2. Esegui la query SQL seguente per verificare se sono disponibili i dati più recenti:
      select max(client_received_start_timestamp) from analytics."orgname.envname.fact";
      
  4. Se sono disponibili i dati più recenti, salta i passaggi seguenti e vai all'ultimo passaggio della sezione Risoluzione. Se i dati più recenti non sono disponibili, procedi con i seguenti passaggi.
  5. Verifica se viene eseguito il push dei messaggi dalle code del server Qpid al database Postgres.
    1. Esegui qpid-stat -q command e controlla i valori delle colonne msgIn e msgOut.
    2. Di seguito è riportato un output di esempio che mostra che msgIn e msgOut non sono uguali. Ciò indica che non viene eseguito il push dei messaggi da Qpid Server al database Postgres.

  6. Se le colonne msgIn e msgOut non corrispondono, controlla i log del server Qpid /opt/apigee/var/log/edge-qpid-server/system.log e controlla se sono presenti errori.
  7. Potresti visualizzare messaggi di errore come "Probabilmente PG non è ancora attivo" o "FATAL: spiacenti, troppi client sono già entrati" come mostrato nella figura seguente:
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee Initial referenced UUID when
      execution started in this thread was a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d
      Probably PG is still down. PG set used - [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:39,896 ax-q-axgroup001-persistpool-thread-3
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.postgresql.util.PSQLException: FATAL: sorry, too many clients already
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Found the exception to be
      retriable - . Error observed while trying to connect to
      jdbc:postgresql://PG_IP_address:5432/apigee
      Initial referenced UUID when execution started in this thread was
      a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d Probably PG is still down. PG set used -
      [a1ddf72f-ac77-49c0-a1fc-d0db6bf9991d]
    2017-07-28 09:56:53,617 pool-7-thread-1
      WARN c.a.a.d.c.ServerHandle - ServerHandle.logRetry() : Could not get JDBC Connection;
      nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot create
      PoolableConnectionFactory (FATAL: sorry, too many clients already)
    

Questo può accadere se il server Postgres esegue troppe query SQL o se la CPU è in esaurimento e quindi non è in grado di rispondere a Qpid Server.

Risoluzione

  1. Riavvia il server Postgres e PostgreSQL come mostrato di seguito:
    /opt/apigee/bin/apigee-service edge-postgres-server restart
    
    /opt/apigee/bin/apigee-service apigee-postgresql restart
    
  2. Questo riavvio garantisce che tutte le query SQL precedenti vengano arrestate e debba consentire nuove connessioni al database Postgres.
  3. Ricarica le dashboard di Analytics e controlla se i dati di Analytics vengono visualizzati.

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

Implementazione non corretta di Analytics

Diagnostica

  1. Ottieni lo stato del deployment di Analytics utilizzando la seguente chiamata API:
    curl -u user_email:password http://management_server_host:port
    /v1/organizations/orgname/environments/envname/provisioning/axstatus
    
  2. Controlla lo stato dei server Qpid e Postgres dai risultati della chiamata API.
    1. Se lo stato dei server Qpid e Postgres è visualizzato come "SUCCESS", significa che i server di analisi sono collegati correttamente. Vai alla sezione UUID di server di analisi inattivi.
    2. Se lo stato dei server Qpid/Postgres è visualizzato come "UNKNOWN" o "FAILED", significa che si è verificato un problema con il server corrispondente.

      Ad esempio, il seguente scenario mostra lo stato dei server Postgres come "SCONOSCIUTO":

      Questo può accadere se si verifica un errore durante l'onboarding di Analytics. Questo errore impedisce che i messaggi dei server di gestione raggiungano i server Postgres.

Risoluzione

Questo problema può essere in genere risolto riavviando i server sui quali è stato visualizzato "ERRORE" o "UNKNOWN".

  1. Riavvia ciascuno dei server il cui stato del cablaggio di analisi ha indicato "ERRORE" o "SCONOSCIUTO" utilizzando il seguente comando:
    /opt/apigee/apigee-service/bin/apigee-service component restart
    
  2. Ad esempio:
    1. Se riscontri il problema sui server Qpid, riavvia i server Qpid:
      /opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
      
    2. Se riscontri il problema sui server Postgres, riavvia entrambi i nodi del server Postgres master e Slave:
      /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
      
  3. Nell'esempio precedente, per i server Postgres viene mostrato il messaggio "UNKNOWN", quindi devi riavviare entrambi i server Master e Slave Postgres:
    /opt/apigee/apigee-service/bin/apigee-service edge-postgres-server restart
    

UUID di server di analisi inattivi

Diagnostica

  1. Ottieni la configurazione di analisi utilizzando la seguente chiamata API:
    curl -u user_email:password http://management-server-host:port/v1/analytics/groups/ax
    

    Ecco un esempio di output dell'API indicata sopra:

    [ {
      "name" : "axgroup001",
      "properties" : {
        "consumer-type" : "ax"
      },
      "scopes" : [ "myorg~prod", "myorg~test" ],
      "uuids" : {
        "aries-datastore" : [ ],
        "postgres-server" : [ "6777...2db14" ],
        "dw-server" : [ ],
        "qpid-server" : [ "774e...fb23", "29f3...8c11" ]
      },
      "consumer-groups" : [ {
        "name" : "consumer-group-001",
        "consumers" : [ "774e...8c11" ],
        "datastores" : [ "6777...db14" ],
        "properties" : {
        }
      } ],
      "data-processors" : {
      }
    } ]
    
  2. Assicurati che le seguenti informazioni nell'output siano corrette:
    1. nomi org-env elencati nell'elemento "scopes".
    2. UUID dei server Postgres e Qpid.
      • Ottieni gli UUID del server Postgres eseguendo questo comando su ciascuno dei nodi del server Postgres:
        curl 0:8084/v1/servers/self/uuid
        
      • Ottieni gli UUID del server Qpid eseguendo il comando seguente su ciascuno dei nodi del server Qpid:
        curl 0:8083/v1/servers/self/uuid
        
  3. Se tutte le informazioni sono corrette, consulta la sezione sul mancato trasferimento dei dati di Analytics al database Postgres.
  4. Se gli UUID dei server Postgres e/o Qpid non sono corretti, è possibile che i server di gestione facciano riferimento a UUID inattivi.

Risoluzione

Per rimuovere gli UUID inattivi e aggiungere gli UUID corretti dei server, contatta l'assistenza Apigee Edge.