Korzystanie z interfejsu API do wykrywania anomalii

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Większość interfejsów API, których używasz do tworzenia alertów o anomaliach i zarządzania nimi oraz do zbierania danych o anomaliach, jest taka sama jak w przypadku alertów stałych. Te interfejsy API alertów działają tak samo w przypadku alertów stałych i alertów o anomaliach:

Niektóre interfejsy API mają jednak dodatkowe właściwości, które służą do obsługi alertów o anomaliach, m.in.:

  • Pobieranie alertów – wyświetlanie listy wszystkich alertów, w tym alertów stałych i alertów o anomaliach.
  • Tworzenie alertu – tworzenie alertu stałego lub alertu o anomaliach.
  • Aktualizowanie alertu – aktualizowanie definicji alertu stałego lub alertu o anomaliach.

Ustawianie $ACCESS_TOKEN

Wszystkie wywołania interfejsu API pokazane poniżej przekazują Twoje dane logowania w zmiennej środowiskowej o nazwie $ACCESS_TOKEN. Ustaw $ACCESS_TOKEN na token dostępu OAuth 2.0 zgodnie z opisem w Uzyskiwanie tokena dostępu OAuth 2.0. Informacje o opcjach cURL używanych w tych przykładach znajdziesz w artykule Korzystanie z cURL.

Pobieranie alertów

Domyślnie interfejs Get alerts API zwraca informacje o wszystkich zdefiniowanych alertach. Ten interfejs API przyjmuje teraz parametry zapytania, które umożliwiają filtrowanie wyników:

  • enabled – jeśli true, określa, że mają być zwracane tylko włączone alerty. Wartością domyślną jest false.
  • alertType – określa typ alertu, który ma zostać zwrócony. Dozwolone wartości to runtime, (domyślna), cert.
  • alertSubType – określa podtyp alertu, który ma zostać zwrócony. Wartość domyślna to brak ustawienia, co oznacza, że zwracane są wszystkie podtypy alertów. Aby zwrócić alerty o anomaliach, określ wartość anomaly.

Aby na przykład zwrócić tylko włączone alerty w organizacji o nazwie myorg, użyj tego wywołania interfejsu API:

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

To wywołanie zwraca tylko alerty o anomaliach, zarówno włączone, jak i wyłączone:

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

Tworzenie lub aktualizowanie alertu o anomaliach

Do tworzenia lub aktualizowania alertu o anomaliach używaj tych samych interfejsów API co w przypadku alertu stałego. Treść wywołania interfejsu API służącego do tworzenia lub aktualizowania alertu o anomaliach jest taka sama jak w przypadku alertu stałego, z tymi zmianami:

  • Aby określić, że alert jest alertem o anomaliach, musisz dodać te nowe właściwości:

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

    Domyślne wartości tych właściwości to:

    "alertType": "runtime"
    "alertSubType": "fixed"
  • W tablicy conditions:

    • Właściwość metrics przyjmuje tylko te wartości:

      • count – wywołuje alert w przypadku liczby błędów HTTP.
      • totalLatency – wywołuje alert w przypadku opóźnienia.
    • Właściwość threshold przyjmuje ciąg znaków zamiast liczby. Obsługiwane wartości to: slight, moderate i severe.
    • Właściwości durationSeconds i comparator nie są obsługiwane.
  • W elemencie dimensions tablicy conditions:

    • Musisz ustawić wartość właściwości proxy na ALL.
    • Właściwość statusCode obsługuje tylko wartość 4xx, 503, 504, and 5xx.
    • Właściwości developerApp, collection, faultCodeCategory, faultCodeSubCategory, faultCodeName nie są obsługiwane.
  • Właściwość reportEnabled nie jest obsługiwana w przypadku alertów o anomaliach.

Ten przykładowy wywołanie interfejsu API tworzy alert o anomaliach, który jest wywoływany, gdy kody stanu 5xx występują z umiarkowaną częstotliwością w przypadku wszystkich serwerów proxy interfejsu API w środowisku produkcyjnym w dowolnym regionie. Gdy alert zostanie wywołany, na podany adres e-mail zostanie wysłane powiadomienie:

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
    }'

Używanie interfejsu Events API z anomaliami

Aby uzyskać wszystkie zdarzenia w organizacji w określonym przedziale czasu, użyj interfejsu /metrics/events API. Lista zdarzeń obejmuje anomalie wykryte przez Edge i wszystkie wywołane alerty. Alerty mogą obejmować zarówno alerty stałe, jak i alerty o anomaliach.

Domyślnie interfejs API zwraca wszystkie zdarzenia z poprzedniej godziny. Aby określić inny czas trwania, użyj parametrów zapytania from i to. Wartości parametrów zapytania from i to określają inny czas trwania.

Na przykład to wywołanie interfejsu API zwraca wszystkie zdarzenia w organizacji myorg z ostatnich 12 godzin:

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

Ustaw $ACCESS_TOKEN na token dostępu OAuth 2.0 zgodnie z opisem w Uzyskiwanie tokena dostępu OAuth 2.0. Informacje o opcjach cURL używanych w tym przykładzie znajdziesz w artykule Korzystanie z cURL.

Następne wywołanie zwraca wszystkie zdarzenia anomalii z umiarkowanym progiem z ostatnich 24 godzin:

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

W przypadku tego interfejsu API wymagany jest tylko parametr zapytania org. Oprócz parametrów zapytania opisanych w dokumentacji interfejsu API pod adresem /metrics/events ten interfejs API obsługuje te opcje wykrywania anomalii:

Nazwa Opis Domyślny
threshold

Filtruj zdarzenia według określonego progu: slight, moderate lub severe.

Jest to dozwolone tylko wtedy, gdy ustawisz type=anomaly.

Wszystkie poziomy ważności
type Filtruj zdarzenia według określonego typu: alert lub anomaly. Jeśli chcesz podać kilka wartości, użyj listy rozdzielonej przecinkami. Wszystkie typy