Visualizzare i dati delle metriche utilizzando l'API

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

Utilizza le API descritte di seguito per ottenere le metriche di monitoraggio delle API. Le metriche sono i valori dei dati aggregati da API Monitoring dai dati non elaborati contenuti nei log di monitoraggio delle API.

Le seguenti sezioni descrivono come gestire le metriche utilizzando l'API.

Consulta API Metrics per ulteriori informazioni sull'API delle metriche.

Per informazioni sulle opzioni cURL utilizzate in questi esempi, consulta Utilizzo di cURL.

API delle metriche

L'URL di base che utilizzi per effettuare una richiesta GET all'API delle metriche è:

https://apimonitoring.enterprise.apigee.com/metrics/resource

Dove resource corrisponde a una metrica specifica. La tabella seguente elenca le risorse delle metriche:

Risorsa Descrizione
/traffic Ottieni metriche sul traffico. Specifica filtri come nome proxy, intervallo, finestra temporale, target, codice di stato e molti altri.
/latency Ottieni metriche di latenza per le richieste

a Edge e a destinazioni del backend. Specifica filtri come nome proxy, intervallo, target, codice di stato e molti altri.

/targets Ottieni tutti i domini di destinazione per un'organizzazione e un ambiente specifici.
/alerthistory Ricevere metriche della cronologia degli avvisi per un'organizzazione e un periodo di tempo specifici.
/alertinstance/instanceid Ricevi le metriche della cronologia degli avvisi per l'ID istanza di avviso specifico.
/alertsummary Visualizza il conteggio totale degli avvisi per un'organizzazione e la finestra temporale.
/faultcodenames Recupera tutti i nomi dei codici di errore.
/faultcodes Ricevi i codici di errore.
/faultcodecategories Ottieni categorie di codici di errore.
/faultcodesubcategories Ottieni sottocategorie di codici di errore.
/faultcodedetails Ottieni tutti i codici di errore con i dettagli.

Recupero informazioni sull'errore

Tutte le risorse /fault* restituiscono metadati sui possibili errori su Edge. Ad esempio, per visualizzare l'elenco di tutte le categorie di errore possibili:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodecategories" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Imposta $ACCESS_TOKEN sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso per OAuth 2.0.

La risposta apparirà come segue:

{
  "faultCodeCategories":[
    "","API Protocol","Developer/App","Extension Policy","Gateway",
    "Mediation Policy","Mint","Security Policy","Sense","Traffic Mgmt Policy"
  ]
}

Puoi quindi determinare l'elenco di codici di errore per la categoria API Protocol:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodes?faultCodeCategory=API Protocol" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Per ulteriori opzioni, consulta l'articolo sull'API Metrics.

Acquisisci le metriche relative a traffico e latenza

L'API Metrics dispone di filtri che puoi applicare all'API per specificare intervalli di tempo personalizzati, proxy, regioni, ambienti e altri filtri alle metriche calcolate. Ad esempio, per visualizzare la metrica relativa alle transazioni al secondo (tps) ogni 10 minuti per l'ora precedente per tutti gli ambienti:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=10m&groupBy=env&org=myorg" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN" 

Imposta $ACCESS_TOKEN sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso per OAuth 2.0.

Questa chiamata restituisce i risultati nel formato:

{
  "results":[
    {
      "series":[
        {
          "name":"proxy",
        "tags":
             {
                "env":"prod",
                "intervalSeconds":"60",
                "org":"myorg",
                "region":"myregion"
              },
            "columns":["time","tps"],
            "values":[
              ["2018-08-15T13:10:00Z",5.03],
              ["2018-08-15T13:20:00Z",5.01],
              ["2018-08-15T13:30:00Z",5.81],
              ["2018-08-15T13:40:00Z",5.95],
              …
            ]
          },
       …
       }
    }]
}

Nota come la proprietà columns specifica il formato di values. La proprietà values contiene i tps calcolati ogni 10 minuti, per l'intervallo di 10 minuti precedente.

Il parametro di query interval definisce la frequenza con cui la metrica viene salvata nei risultati e la finestra di campionamento per il valore nei risultati. Nell'esempio precedente, la metrica viene calcolata negli ultimi 10 minuti e viene scritta nei risultati ogni 10 minuti.

Utilizza i parametri di query from e to per specificare un intervallo di tempo in formato ISO. La durata massima specificata da from e to è di 24 ore.

Il formato della data può essere:

  • yyyy-mm-ddThh:mm:ssZ
  • yyyy-mm-ddThh:mm:ss+00:00

Ad esempio:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=2018-08-13T14%3A04%3A00Z&to=2018-08-13T14%3A10%3A00Z&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

In alternativa, utilizza i parametri di query from e to per specificare un intervallo di tempo relativo, ad esempio l'ultima ora:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

Un'altra opzione consiste nell'utilizzare il parametro di query proxy per visualizzare le transazioni al secondo (tps) per un singolo proxy:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

Per le metriche di latenza, specifica molti degli stessi criteri utilizzati per le metriche sul traffico. Tuttavia, per la risorsa /latency:

  • Devi specificare il parametro di query percentile come 50, 90, 95 o 99. Ad esempio, se specifichi 90, l'API restituisce il valore di latenza totale della risposta nel 90° percentile.
  • windowsize è fissato a un minuto.

Ad esempio, per visualizzare le metriche relative alla latenza totale nel 90° percentile per una finestra di 1 minuto:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/latency?percentile=90&select=totalLatency&from=-1h&to=now&interval=5m&windowsize=1m&groupBy=org,env,region&org=myorg" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Per ulteriori opzioni, consulta la sezione API Metrics.

Acquisisci metriche per gli avvisi

L'API Metrics restituisce metriche per tutti gli avvisi, per un avviso specifico o per un riepilogo degli avvisi. Ad esempio, per ricevere la cronologia degli avvisi di un'organizzazione relativa all'ultima ora:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alerthistory?org=myorg&from=-1h&to=now" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Imposta $ACCESS_TOKEN sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso per OAuth 2.0.

Questa chiamata API restituisce una risposta nel formato:

[
  {
"id":"983c4c7a-c301-4697-95cc-9a7c53e05fac",
"organization":"myorg",
"environment":"prod",
"name":"Public Api 5xx error rate",
"type":"Alert",
"source":"https://www.apigee.net/sonar",
"raw_payload":"
{
    \"reportUUID\":\"\",
    \"reportEnabled\":false,
    \"organization\":\"myorg\",
    \"name\":\"Public Api 5xx error rate\",
    \"self\":\"/alerts/95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"description\":\"\",
    \"conditions\":[
    {
        \"comparator\":\"\u003e\",
        \"metric\":\"rate\",
        \"durationSeconds\":3600,
        \"name\":\"\",
        \"description\":\"\",
        \"threshold\":0.01,
        \"dimensions\":
        {
            \"proxy\":\"myAPI\",
            \"org\":\"myorg\",
            \"env\":\"prod\",
            \"region\":\"myRegion\",
            \"statusCode\":\"5xx\"
            }
        }],
        \"uuid\":\"95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"playbook\":\"This is a test alert.\"
    }",
"time":"2018-08-14T12:45:28Z"
 },
 …
]

Puoi quindi utilizzare id nell'array restituito per ottenere informazioni su un avviso specifico:

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alertinstance/983c4c7a-c301-4697-95cc-9a7c53e05fac" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Per ulteriori opzioni, consulta l'articolo sull'API Metrics.