Anti-pattern: aggiungi informazioni personalizzate allo schema di proprietà di Apigee nel database Postgres

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

Edge API Analytics è una funzionalità integrata molto potente fornita da Apigee Edge. Raccoglie e analizza un'ampia gamma di dati che passano attraverso le API. I dati di analisi acquisiti possono fornire approfondimenti molto utili. Ad esempio, qual è l'andamento del volume di traffico API in un determinato periodo di tempo? Qual è l'API più utilizzata? Quali API hanno tassi di errore elevati?

L'analisi regolare di questi dati e approfondimenti può essere utilizzata per intraprendere azioni appropriate, come la pianificazione della capacità futura delle API in base all'utilizzo attuale, alle decisioni aziendali e di investimento future e molto altro ancora.

Dati di analisi e relativo spazio di archiviazione

API Analytics acquisisce molti tipi diversi di dati, ad esempio:

  • Informazioni su un'API: URI della richiesta, indirizzo IP client, codici di stato della risposta e così via.
  • Prestazioni del proxy API: tasso di successo/errore, tempo di elaborazione di richieste e risposte e così via.
  • Prestazioni del server di destinazione: tasso di successo/errore, tempo di elaborazione.
  • Informazioni sugli errori: numero di errori, codice di errore, norma non riuscita, numero di errori causati da Apigee e dal server di destinazione.
  • Altre informazioni: numero di richieste effettuate da sviluppatori, app per sviluppatori e così via.

Tutti questi dati vengono archiviati in uno analytics schema creato e gestito all'interno di un database Postgres da Apigee Edge.

In genere, in un'installazione di Edge standard, Postgres avrà i seguenti schemi:

Lo schema denominato analytics viene utilizzato da Edge per archiviare tutti i dati di analisi per ogni organizzazione e ambiente. Se è installata la monetizzazione, sarà presente uno rkms schema. Gli altri schemi sono destinati agli interni di Postgres.

Lo schema analytics continuerà a cambiare man mano che Apigee Edge aggiungerà dinamicamente nuove tabelle dei fatti in fase di runtime. Il componente server Postgres aggregherà i dati dei fatti in tabelle aggregate che vengono caricate e visualizzate nell'interfaccia utente di Edge.

Antipattern

L'aggiunta di colonne, tabelle e/o visualizzazioni personalizzate a uno degli schemi di proprietà di Apigee nel database Postgres negli ambienti Private Cloud direttamente utilizzando le query SQL non è consigliabile, in quanto può avere implicazioni negative.

Facciamo un esempio per spiegare questo aspetto in dettaglio.

Supponiamo che sia stata creata una tabella personalizzata denominata account nello schema di analisi, come mostrato di seguito:

Dopo un po' di tempo, supponiamo che sia necessario eseguire l'upgrade di Apigee Edge da una versione precedente a una successiva versione. L'upgrade di Apigee Edge Private Cloud comporta l'upgrade di Postgres, tra molti altri componenti. Se sono state aggiunte colonne, tabelle o visualizzazioni personalizzate al database Postgres, l'upgrade di Postgres non riesce e vengono visualizzati errori che fanno riferimento agli oggetti personalizzati perché non sono stati creati da Apigee Edge. Di conseguenza, anche l'upgrade di Apigee Edge non riesce e non può essere completato.

Allo stesso modo, possono verificarsi errori durante le attività di manutenzione di Apigee Edge, in cui vengono eseguiti il backup e il ripristino dei componenti Edge, incluso il database Postgres.

Impatto

  • L'upgrade di Apigee Edge non può essere completato perché l'upgrade del componente Postgres non riesce e vengono visualizzati errori che fanno riferimento a oggetti personalizzati non creati da Apigee Edge.
  • Incoerenze (e errori) durante l'esecuzione della manutenzione del servizio Apigee Analytics (backup/ripristino).

Best practice

  • Non aggiungere informazioni personalizzate sotto forma di colonne, tabelle, visualizzazioni, funzioni e procedure direttamente a uno degli schemi di proprietà di Apigee, come analytics e così via.
  • Se è necessario supportare informazioni personalizzate, queste possono essere aggiunte come colonne (campi) utilizzando una norma Statistics Collector allo schema analytics.

Per approfondire