Utilizzare l'API di rilevamento delle anomalie

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

La maggior parte delle API che utilizzi per creare e gestire gli avvisi di anomalie e per raccogliere le metriche delle anomalie sono le stesse che utilizzi con gli avvisi fissi. Le seguenti API di avviso funzionano allo stesso modo sia per gli avvisi fissi sia per quelli di anomalie:

Tuttavia, alcune API hanno proprietà aggiuntive utilizzate per supportare gli avvisi di anomalie, tra cui:

Impostazione di $ACCESS_TOKEN

Tutte le chiamate API mostrate di seguito passano le credenziali in una variabile di ambiente denominata $ACCESS_TOKEN. Imposta $ACCESS_TOKEN sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni cURL utilizzate in questi esempi, consulta Utilizzare cURL.

Recupera avvisi

Per impostazione predefinita, l'API Recupera avvisi restituisce informazioni su tutti gli avvisi definiti. Questa API ora accetta parametri di query per consentirti di filtrare i risultati:

  • enabled - se true, specifica di restituire solo gli avvisi abilitati. Il valore predefinito è false.
  • alertType - specifica il tipo di avviso da restituire. I valori consentiti sono runtime, (valore predefinito) cert.
  • alertSubType: specifica il sottotipo di avviso da restituire. Il valore predefinito non è impostato, il che significa che vengono restituiti tutti i sottotipi di avviso. Specifica anomaly per restituire gli avvisi di anomalie.

Ad esempio, utilizza la seguente chiamata API per restituire solo gli avvisi abilitati per l'organizzazione denominata myorg:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&enabled=true'

La seguente chiamata restituisce solo gli avvisi di anomalie, sia abilitati sia disabilitati:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&alertType=runtime&alertSubType=anomaly'

Creare o aggiornare un avviso di anomalie

Utilizza le stesse API per creare o aggiornare un avviso di anomalie come fai attualmente per un avviso fisso. Il corpo della chiamata API per creare o aggiornare un avviso di anomalie è lo stesso utilizzato per un avviso fisso, con le seguenti modifiche:

  • Devi aggiungere le seguenti nuove proprietà per specificare che l'avviso è un avviso di anomalie:

    "alertType": "runtime"
    "alertSubType": "anomaly"

    I valori predefiniti di queste proprietà sono:

    "alertType": "runtime"
    "alertSubType": "fixed"
  • Nell'array conditions:

    • La proprietà metrics accetta solo i valori di:

      • count: genera un avviso sui conteggi degli errori HTTP.
      • totalLatency - genera un avviso per la latenza.
    • La proprietà threshold accetta una stringa anziché un numero. I valori supportati includono: slight, moderate e severe.
    • Le proprietà durationSeconds e comparator non sono supportate.
  • Nell'elemento dimensions dell'array conditions:

    • Devi impostare il valore della proprietà proxy su ALL.
    • La proprietà statusCode supporta solo un valore di 4xx, 503, 504, and 5xx.
    • Le proprietà developerApp, collection, faultCodeCategory, faultCodeSubCategory, faultCodeName non sono supportate.
  • La proprietà reportEnabled non è supportata per gli avvisi di anomalie.

La seguente chiamata API di esempio crea un avviso di anomalie che viene attivato quando i codici di stato 5xx si verificano a una velocità moderata per tutti i proxy API nell'ambiente di produzione per qualsiasi regione. Quando l'avviso viene attivato, viene inviata una notifica all'indirizzo email specificato:

curl 'https://apimonitoring.enterprise.apigee.com/alerts' \
 -X POST \
 -H 'Accept: application/json, text/plain, */*' -H "Content-Type: application/json" \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -d '{
     "organization":"myorg",
     "name":"5xx Anomaly Alert",
     "description":"My 5xx alert",
     "environment":"prod",
     "enabled":true,
     "alertType": "runtime",
     "alertSubType": "anomaly",
     "conditions":[
     {
        "description":"",
        "dimensions":{
            "org":"myorg",
            "env":"prod",
            "proxy":"ALL",
            "region":"ANY",
            "statusCode":"5xx"
        },
        "metric":"count",
        "threshold": "moderate"
     }
     ],
     "notifications":[{
         "channel":"email",
         "destination":"ops@acme.com"
     }],
     "playbook":"http://acme.com/myplaybook.html",
     "throttleIntervalSeconds":3600
    }'

Utilizzare l'API Events con le anomalie

Utilizza l'API /metrics/events per ottenere tutti gli eventi di un'organizzazione per un intervallo di tempo specificato. L'elenco degli eventi include le anomalie rilevate da Edge e gli avvisi attivati. Gli avvisi possono includere sia avvisi fissi sia avvisi di anomalie.

Per impostazione predefinita, l'API restituisce tutti gli eventi dell'ora precedente. Utilizza i parametri di query from e to per specificare una durata diversa. I valori dei parametri di query from e to per specificare una durata diversa.

Ad esempio, la seguente chiamata API restituisce tutti gli eventi dell'organizzazione myorg per le 12 ore precedenti:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&from=-12h&to=now"

Imposta $ACCESS_TOKEN sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni su lle opzioni cURL utilizzate in questo esempio, consulta Utilizzare cURL.

La chiamata successiva restituisce tutti gli eventi di anomalie con una soglia moderata per le ultime 24 ore:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&type=anomaly&threshold=moderate&from=-24h&to=now"

Per questa API è obbligatorio solo il parametro di query org. Oltre ai parametri di query descritti nella documentazione dell'API all'indirizzo /metrics/events, questa API supporta le seguenti opzioni per supportare il rilevamento delle anomalie:

Nome Descrizione Predefinito
threshold

Filtra gli eventi in base alla soglia specificata: slight, moderate o severe.

Consentito solo se imposti type=anomaly.

Tutte le gravità
type Filtra gli eventi in base al tipo specificato: alert o anomaly. Specifica più valori come elenco separato da virgole. Tutti i tipi