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

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

Aby uzyskać dane z API Monitoring, użyj interfejsów API opisanych poniżej. Dane to wartości zagregowane przez API Monitoring na podstawie danych pierwotnych zawartych w logach API Monitoring.

W sekcjach poniżej znajdziesz informacje o tym, jak zarządzać danymi za pomocą interfejsu API.

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

Informacje o opcjach cURL używanych w tych przykładach znajdziesz w artykule zobacz Korzystanie z cURL.

Interfejsy API danych

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

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

gdzie resource odpowiada konkretnym danym. W tabeli poniżej znajdziesz listę zasobów danych:

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

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

/targets Pobieranie wszystkich domen docelowych dla konkretnej organizacji i środowiska.
/alerthistory Pobieranie danych z historii alertów dla konkretnej organizacji i okna czasowego.
/alertinstance/instanceid Pobieranie danych z historii alertów dla konkretnego identyfikatora instancji alertu.
/alertsummary Pobieranie łącznej liczby alertów dla organizacji i okna czasowego.
/faultcodenames Pobieranie wszystkich nazw kodów błędów.
/faultcodes Pobieranie kodów błędów.
/faultcodecategories Pobieranie kategorii kodów błędów.
/faultcodesubcategories Pobieranie podkategorii kodów błędów.
/faultcodedetails Pobieranie wszystkich kodów błędów ze szczegółami.

Pobieranie informacji o błędach

Wszystkie zasoby /fault* zwracają metadane dotyczące możliwych błędów 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 $ACCESS_TOKEN na token dostępu OAuth 2.0 zgodnie z opisem w Uzyskiwanie tokena dostępu OAuth 2.0.

Odpowiedź będzie 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 dla 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"

Dodatkowe opcje znajdziesz w artykule Metrics API.

Zbieranie danych o natężeniu ruchu i opóźnieniach

Interfejs Metrics API ma filtry, które możesz zastosować do interfejsu API, aby określić niestandardowe zakresy czasu, serwery proxy, regiony, środowiska i inne filtry dla obliczonych danych. Aby na przykład wyświetlić dane dotyczące transakcji na sekundę (tps) co 10 minut w ciągu ostatniej godziny we wszystkich środowiskach:

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 $ACCESS_TOKEN na token dostępu OAuth 2.0 zgodnie z opisem w Uzyskiwanie tokena dostępu OAuth 2.0.

To wywołanie zwraca wyniki w postaci:

{
  "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 values. Właściwość values zawiera dane tps obliczane co 10 minut w poprzednim 10-minutowym przedziale czasu.

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

Aby określić zakres czasu w formacie ISO, użyj parametrów zapytania from i to. Maksymalny czas trwania określony przez from i to to 24 godziny.

Format daty może być jeden z tych:

  • 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 from i to, aby określić względny zakres czasu, np. w ciągu ostatniej godziny:

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ć transakcje na sekundę (tps) dla jednego 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 opóźnieniach określ wiele tych samych kryteriów co w przypadku danych o natężeniu ruchu. Jednak w przypadku zasobu /latency:

  • Musisz określić parametr zapytania percentile jako 50, 90, 95 lub 99. Jeśli na przykład określisz wartość 90, interfejs API zwróci łączną wartość opóźnienia odpowiedzi w 90. percentylu.
  • Wartość windowsize jest stała i wynosi 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"

Dodatkowe opcje znajdziesz w artykule Metrics API.

Zbieranie danych o alertach

Interfejs Metrics API zwraca dane dotyczące wszystkich alertów, konkretnego alertu lub podsumowania alertów. Aby na przykład uzyskać historię alertó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 $ACCESS_TOKEN na token dostępu OAuth 2.0 zgodnie z opisem w Uzyskiwanie tokena dostępu OAuth 2.0.

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

[
  {
"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ć id w zwróconej tablicy, aby uzyskać informacje o konkretnym alercie:

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

Dodatkowe opcje znajdziesz w artykule Metrics API.