Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
Apigee Edge registra un'ampia varietà di dati operativi e aziendali che passano per le API. Le metriche derivate da questi dati sono utile per il monitoraggio operativo e aziendale. Con l'analisi delle API Edge, puoi, ad esempio, Ad esempio, stabilire quali API hanno prestazioni soddisfacenti o scarse, quali sviluppatori offrono di valore più elevato e le app che causano il maggior numero di problemi per i tuoi servizi di backend.
Per facilitare l'accesso ai dati di queste metriche, Edge espone un'API RESTful. Puoi Utilizzare l'API Metrics quando devi automatizzare determinate funzioni di Analytics, ad esempio il recupero delle metriche periodicamente utilizzando un client o uno script per l'automazione. Puoi anche utilizzare l'API per creare il tuo visualizzazioni sotto forma di widget personalizzati che puoi incorporare in portali o app personalizzate.
Per scoprire come utilizzare Analytics nell'API Consulta la panoramica dell'analisi delle API per UI di gestione perimetrale.
Informazioni sulle API delle metriche
Edge fornisce due API per le metriche:
Visualizza metriche restituisce metriche per un'organizzazione e un ambiente per un determinato periodo di tempo, ad esempio un'ora, un giorno o una settimana.
Ad esempio, per la settimana precedente, vuoi ottenere:
- Il numero di errori dei criteri
- Il tempo di risposta medio
- Il traffico totale
Organizzare le metriche per dimensioni restituisce le metriche relative a un periodo di tempo per un'organizzazione e un ambiente raggruppati per dimensione.
Ad esempio, per la settimana precedente utilizzi le dimensioni per raggruppare le metriche per prodotto API, proxy API, e l'email dello sviluppatore per ottenere:
- Il numero di errori relativi alle norme per prodotto API
- Il tempo di risposta medio per proxy API
- Il traffico totale per email dello sviluppatore
La scheda Organizzare le metriche per dimensioni L'API supporta funzionalità aggiuntive non supportate da Ottieni metriche API, tra cui:
Informazioni sulle quote dell'API Metrics
Edge applica le quote seguenti a queste chiamate. La quota si basa sul sistema di backend gestisce la chiamata:
- Postgres: 40 chiamate al minuto
- BigQuery: 12 chiamate al minuto
Determina il sistema di backend che gestisce la chiamata esaminando l'oggetto di risposta.
Ogni oggetto risposta contiene una proprietà metaData
che elenca il servizio che ha gestito la chiamata
nella proprietà Source
. Ad esempio, per Postgres:
{ ... "metaData": { "errors": [], "notices": [ "Source:Postgres", "Table used: xxxxxx.yyyyy", "query served by:111-222-333" ] } }
Per BigQuery, la proprietà Source
è:
"Source:Big Query"
Se superi la quota di chiamate, l'API restituisce una risposta HTTP 429.
Recupero delle metriche con l'API di gestione
La differenza principale tra le due API è che l'opzione Ottieni metriche restituisce metriche non elaborate per l'intera organizzazione e l'intero ambiente, mentre Organizzare le metriche in base alle dimensioni ti consente di raggruppare le metriche in base a diversi tipi di entità, come prodotto API, sviluppatore e app.
L'URL della richiesta per l'API Get Metrics è:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats
Per Organizzare le metriche per dimensioni
API, includi una risorsa aggiuntiva nell'URL dopo /stats
che specifica la dimensione desiderata:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/dimension
Ad esempio, per ottenere le metriche raggruppate per proxy API, utilizzerai il seguente URL per chiamare l'API di gestione:
https://api.enterprise.apigee.com/v1/o/{org_name}/environments/{env_name}/stats/apiproxy
Specifica le metriche da restituire
Per entrambi i tipi
Ottieni metriche e
Organizzare le metriche in base alle dimensioni
API che usano il parametro di query select
per specificare le metriche
da recuperare e una funzione di aggregazione facoltativa, nella forma:
?select=metric
oppure:
?select=aggFunction(metric)
Dove:
- metric specifica i dati che vuoi restituire. Ad esempio:
il numero di richieste API, i successi della cache o gli errori dei criteri. Consulta le metriche
per una tabella che specifica il nome della metrica da utilizzare con il parametro di query
select
. aggFunction specifica la funzione di aggregazione facoltativa eseguita sulla metrica. Ad esempio, puoi utilizzare le seguenti funzioni di aggregazione con la metrica della latenza di elaborazione:
avg
: restituisce la latenza media di elaborazione.min
: restituisce la latenza di elaborazione minima.max
: restituisce la latenza massima di elaborazione.-
sum
: restituisce la somma di tutte le latenze di elaborazione.
Non tutte le metriche supportano tutte le funzioni di aggregazione. La documentazione su metrics contiene una tabella che specifica il nome della metrica e la funzione (
sum
,avg
,min
,max
) supportata dalla metrica.
Ad esempio, per restituire il numero medio di transazioni al secondo, ovvero richieste proxy API:
?select=tps
Tieni presente che questo esempio non richiede una funzione di aggregazione. Il prossimo esempio utilizza una funzione di aggregazione per restituire la somma degli hit della cache:
?select=sum(cache_hit)
Puoi restituire più metriche per una singola chiamata API. a ottenere metriche con la somma degli errori dei criteri
e la dimensione media della richiesta, imposta il parametro di query select
utilizzando
elenco di metriche:
?select=sum(policy_error),avg(request_size)
Specificare il periodo di tempo
L'API Metrics restituisce i dati relativi a un periodo di tempo specificato. Usa timeRange
parametro di query per specificare il periodo di tempo, nella forma seguente:
?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM
Osserva %20
prima di HH:MM
. Il parametro timeRange
richiede uno spazio con codifica URL prima di HH:MM
o un carattere +
,
ad esempio: MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM
.
Ad esempio:
?timeRange=03/01/2018%2000:00~03/30/2018%2023:59
Non usare le 24:00 come ora perché finiscono per le 00:00. Usa invece 23:59.
Utilizzo di un delimitatore
Per separare più dimensioni in una chiamata API, utilizza una virgola (,
) come delimitatore.
Ad esempio, nella chiamata API
curl https://api.enterprise.apigee.com/v1/o/myorg/e/prod/stats/apis,apps?select=sum(message_count)&timeRange=9/24/2018%2000:00~10/25/2018%2000:00&timeUnit=day
le dimensioni apis
e apps
sono separate da ,
.
Chiamate API di esempio
Questa sezione contiene esempi che utilizzano gli strumenti Ottieni metriche e Organizzare le metriche in base alle dimensioni su quelle di livello inferiore. Per ulteriori esempi, consulta gli esempi di API Metrics.
Restituisci il numero totale di chiamate effettuate alle tue API per un mese
Per visualizzare il numero totale di chiamate effettuate a tutte le API nella tua organizzazione e nel tuo ambiente in un mese, utilizza API Get Metrics:
curl -v "https://api.enterprise.apigee.com/v1/o/{org}/e/{env}/stats/?select=sum(message_count)&timeRange=03/01/2018%2000:00~03/31/2018%2023:59" \ -u email:password
Esempio di risposta:
{ "environments": [ { "metrics": [ { "name": "sum(message_count)", "values": [ "7.44944088E8" ] } ], "name": "prod" } ], ... }
Restituisci il numero totale di messaggi per proxy API per due giorni
In questo esempio, vengono restituite metriche per il numero di richieste ricevute da tutti i proxy API
nell'arco di due giorni. Il parametro di query select
definisce la funzione aggregata sum
per la metrica
message_count
sulla dimensione apiproxy
. Il report restituisce la velocità effettiva dei messaggi di richiesta.
per tutte le API per il traffico ricevuto tra l'inizio del 20/6/2018 e la fine del 21/6/2018, in
Ora UTC:
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59" \ -u email:password
Esempio di risposta:
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(message_count)", "values" : [ { "timestamp" : 1498003200000, "value" : "1100.0" } ] } ], "name" : "target-reroute" } ], "name" : "test" } ]... }
Questa risposta indica che sono stati ricevuti 1100 messaggi da un proxy API chiamato "target-reroute" in esecuzione nell'ambiente di test tra l'inizio del 20/6/2018 e la fine 21/06/2018.
Per ottenere metriche per altre dimensioni, specifica una dimensione diversa come parametro URI. Per
Ad esempio, puoi specificare la dimensione developer_app
per recuperare le metriche per
app per sviluppatori. La seguente chiamata API restituisce la velocità effettiva totale (messaggi ricevuti) da qualsiasi app
per l'intervallo di tempo specificato:
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/developer_app?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59&timeUnit=day" \ -u email:password
Esempio di risposta:
{ "environments": [ { "dimensions": [ { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1498003200000, "value": "886.0" } ] } ], "name": "Test-App" }, { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1498003200000, "value": "6645.0" } ] } ], "name": "johndoe_app" }, { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1498003200000, "value": "1109.0" } ] } ], "name": "marys_app" } ]... }
Ordinamento dei risultati per ranking relativo
Spesso, quando visualizzi le metriche, vuoi ottenere risultati solo per un sottoinsieme dell'insieme totale
e i dati di Google Cloud. Di solito, è necessario ottenere i risultati per le "primi 10", ad esempio i "primi 10 più lenti
API", le "10 app più attive". Puoi farlo utilizzando il parametro di query topk
nell'ambito della richiesta.
Ad esempio, potrebbe interessarti sapere chi sono i tuoi migliori sviluppatori, misurati in termini di velocità effettiva, o gli elementi con il rendimento peggiore (ad es. le API di destinazione "più lente") sono per latenza.
topk
(ovvero le entità "top k") consente di generare report sulle entità associate
con il valore più alto per una determinata metrica. In questo modo puoi filtrare le metriche per un elenco
entità che rappresentano una particolare condizione. Ad esempio, per trovare l'URL di destinazione
con il maggiore rischio di errori nell'ultima settimana, il parametro topk
viene aggiunto alla richiesta,
con il valore 1
:
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&topk=1" \ -u email:password
{ "environments": [ { "dimensions": [ { "metrics": [ { "name": "sum(is_error)", "values": [ { "timestamp": 1494201600000, "value": "12077.0" } ] } ], "name": "http://api.company.com" } ]... }
Il risultato di questa richiesta è un insieme di metriche che mostra che l'URL di destinazione più bug
http://api.company.com
.
Puoi anche utilizzare il parametro topk
per ordinare in base alle API con il tasso
e la velocità effettiva effettiva. L'esempio seguente recupera le metriche nell'API con il ranking più alto, definita dal criterio
dell'ultima settimana:
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(message_count)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=day&sortby=sum(message_count)&sort=DESC&topk=1" \ -u email:password
Esempio di risposta
{ "environments": [ { "dimensions": [ { "metrics": [ { "name": "sum(message_count)", "values": [ { "timestamp": 1494720000000, "value": "5750.0" }, { "timestamp": 1494633600000, "value": "5752.0" }, { "timestamp": 1494547200000, "value": "5747.0" }, { "timestamp": 1494460800000, "value": "5751.0" }, { "timestamp": 1494374400000, "value": "5753.0" }, { "timestamp": 1494288000000, "value": "5751.0" }, { "timestamp": 1494201600000, "value": "5752.0" } ] } ], "name": "testCache" } ], "name": "test" } ]... }
Filtro risultati
Per una maggiore granularità, puoi filtrare i risultati per limitare i dati restituiti. Quando si utilizza devi utilizzare le dimensioni come proprietà di filtro.
Ad esempio, supponiamo che tu debba recuperare un conteggio di errori dai servizi di backend
e viene filtrato in base al verbo HTTP della richiesta. Il tuo obiettivo è scoprire quante richieste POST e PUT
generando errori per ogni servizio di backend. Per farlo, devi utilizzare la dimensione
target_url
insieme al filtro request_verb
:
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&filter=(request_verb%20in%20'POST','PUT')" \ -u email:password
Esempio di risposta:
{ "environments" : [ { "dimensions" : [ { "metrics" : [ { "name" : "sum(is_error)", "values" : [ { "timestamp" : 1519516800000, "value" : "1.0" } ] } ], "name" : "testCache" } ], "name" : "test" } ]... }
Impaginazione dei risultati
In ambienti di produzione, alcune richieste all'API Edge Analytics restituiscono dati molto grandi set di dati. Per semplificare la visualizzazione di set di dati di grandi dimensioni nel contesto di un'applicazione basata su UI, L'API supporta l'impaginazione in modo nativo.
Per impaginare i risultati, usa i parametri di ricerca offset
e limit
,
insieme al parametro di ordinamento sortby
per garantire un ordine coerente delle
elementi.
Ad esempio, è probabile che la seguente richiesta restituisca un set di dati di grandi dimensioni, poiché recupera le metriche relative a tutti gli errori relativi a tutte le API nell'ambiente del prodotto per l'ultima settimana.
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)" \ -u email:password
Se la tua applicazione basata su UI può visualizzare ragionevolmente 50 risultati per pagina, puoi impostare il limite
a 50. Poiché 0 viene conteggiato come primo elemento, la chiamata seguente restituisce gli elementi 0-49 in ordine decrescente
ordine predefinito (sort=DESC
è il valore predefinito).
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=0" \ -u email:password
Per la seconda "pagina" dei risultati, utilizza il parametro di query offset, come segue. Tieni presente che limite e offset sono identici. Questo perché 0 viene conteggiato come primo elemento. Con un limite di 50 e e un offset pari a 0, vengono restituiti gli elementi da 0 a 49. Con uno scarto pari a 50, vengono restituiti gli articoli 50-99.
curl https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env}/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=50" \ -u email:password