Wyświetlanie danych wskaźników przy użyciu interfejsu API

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

Aby uzyskać dane monitorowania interfejsu API, użyj opisanych poniżej interfejsów API. Dane to wartości danych zagregowane przez Monitorowanie interfejsu API na podstawie danych źródłowych zawartych w rejestrach Monitorowania interfejsu API.

W następnych sekcjach znajdziesz opis tego, jak zarządzać danymi za pomocą interfejsu API.

Więcej informacji o interfejsie Metrics API znajdziesz w artykule Metrics API.

Informacje o opcjach cURL użytych w tych przykładach znajdziesz w artykule Używanie cURL.

Interfejsy API dotyczące danych

Podstawowy adres URL, którego używasz do wysyłania żądania GET do interfejsu API danych jest:

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

Gdzie resource odpowiada konkretnemu typowi danych. W poniższej tabeli znajdziesz zasoby danych:

Zasób Opis
/traffic Pobieranie danych o ruchu. Określ filtry takie jak nazwa serwera proxy, interwał, okno czasowe, cel, kod stanu i wiele innych.
/latency Pobieranie danych o opóźnieniach żądań

do miejsc docelowych Edge i backendu. Określ filtry takie jak nazwa serwera proxy, interwał, cel, kod stanu i wiele innych.

/targets Pobierz wszystkie domeny docelowe dla konkretnej organizacji i środowiska.
/alerthistory Uzyskaj dane o historii alertów dotyczące konkretnej organizacji i okresu czasu.
/alertinstance/instanceid Pobieranie danych o historii alertów dla konkretnego identyfikatora wystąpienia alertu.
/alertsummary Zwraca łączną liczbę alertów dla organizacji i okresu czasu.
/faultcodenames Pobierz wszystkie nazwy kodów błędów.
/faultcodes Uzyskaj kody błędów.
/faultcodecategories Pobieraj kategorie kodów błędów.
/faultcodesubcategories Uzyskaj podkategorie kodu błędu.
/faultcodedetails Pobierz wszystkie kody błędów z szczegółami.

Pobieranie informacji o usterce

Wszystkie zasoby /fault* zwracają metadane o możliwych błędach w Edge. Aby na przykład wyświetlić listę wszystkich możliwych kategorii błędów:

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

Ustaw wartość $ACCESS_TOKEN na token dostępu OAuth 2.0 zgodnie z opisem w sekcji Uzyskiwanie tokena dostępu OAuth 2.0.

Odpowiedź wygląda tak:

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

Następnie możesz określić listę kodów błędów w kategorii API Protocol:

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

Więcej opcji znajdziesz w interfejsie Metrics API.

Rejestrowanie danych o ruchu i opóźnieniach

Interfejs Metrics API zawiera filtry, które możesz stosować w interfejsie API, aby określać niestandardowe zakresy czasu, proxy, regiony, środowiska i inne filtry dla obliczonych danych. Aby np. wyświetlić dane „Transakcje na sekundę” (TPS) co 10 minut w przypadku wszystkich środowisk w ciągu ostatniej godziny:

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" 

Ustaw wartość $ACCESS_TOKEN na token dostępu OAuth 2.0 zgodnie z opisem w sekcji Uzyskiwanie tokena dostępu OAuth 2.0.

To wywołanie zwraca wyniki w takim formacie:

{
  "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],
              
            ]
          },
       
       }
    }]
}

Zwróć uwagę, że właściwość columns określa format właściwości values. Właściwość values zawiera liczbę tps obliczaną co 10 minut dla poprzedniego 10-minutowego przedziału.

Parametr zapytania interval określa częstotliwość zapisywania danych w wynikach oraz okno próbkowania wartości w wynikach. W przykładzie powyżej dane są obliczane na podstawie poprzednich 10 minut i zapisywane w wynikach co 10 minut.

Aby określić przedział czasu w formacie ISO, użyj parametrów zapytania fromto. Maksymalny czas określony przez parametry from i to wynosi 24 godziny.

Format daty może być:

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

Na przykład:

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"

Możesz też użyć parametrów zapytania fromto, aby określić zakres czasowy względny, np. ostatnią godzinę:

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"

Inną opcją jest użycie parametru zapytania proxy, aby wyświetlić liczbę transakcji na sekundę (tps) dla pojedynczego serwera 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"

W przypadku danych o czasie oczekiwania podaj wiele takich samych kryteriów co w przypadku danych o ruchu. Jednak w przypadku zasobu /latency:

  • Parametr zapytania percentile musi być określony jako 50, 90, 95 lub 99. Jeśli na przykład podasz parametr 90, interfejs API zwróci łączną wartość opóźnienia odpowiedzi w 90. percentylu.
  • windowsize jest ustawiony na 1 minutę.

Aby na przykład wyświetlić dane dotyczące łącznego opóźnienia w 90. percentylu w oknie 1-minutowym:

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"

Więcej opcji znajdziesz w interfejsie Metrics API.

Rejestrowanie danych o alertach

Interfejs Metrics API zwraca dane o wszystkich alertach, o konkretnym alarmie lub o podsumowaniu alertów. Aby na przykład wyświetlić historię alertów w organizacji z ostatniej godziny:

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"

Ustaw wartość $ACCESS_TOKEN na token dostępu OAuth 2.0 zgodnie z opisem w sekcji Uzyskiwanie tokena dostępu OAuth 2.0.

To wywołanie interfejsu API zwraca odpowiedź w formie:

[
  {
"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"
 },
 
]

Następnie możesz użyć elementu id w zwróconym tablicy, aby uzyskać informacje o konkretnym alarmie:

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

Więcej opcji znajdziesz w interfejsie Metrics API.