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

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Aby uzyskać wskaźniki monitorowania interfejsów API, użyj interfejsów API opisanych poniżej. Wskaźniki to wartości danych agregowanych przez API Monitoring z nieprzetworzonych danych zawartych w logach monitorowania interfejsu API.

W kolejnych sekcjach opisano, jak zarządzać wskaźnikami 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 wskaźników

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

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

Gdzie resource odpowiada określonym danym. Poniższa tabela zawiera zasoby wskaźników:

Zasób Opis
/traffic Uzyskaj dane o ruchu. Określ filtry, takie jak nazwa serwera proxy, interwał, przedział czasu, cel, kod stanu i wiele innych.
/latency Pobieranie wskaźników czasu oczekiwania dla żądań

do celów brzegowych i zaplecza. Określ filtry, takie jak nazwa serwera proxy, interwał, cel, kod stanu i wiele innych.

/targets Pobierz wszystkie domeny docelowe dla określonej organizacji i środowiska.
/alerthistory Pobierz dane historii alertów dotyczące określonej organizacji i przedziału czasu.
/alertinstance/instanceid Pobieranie wskaźników historii alertów dotyczących konkretnego identyfikatora instancji alertu.
/alertsummary Zobacz łączną liczbę alertów dla organizacji w danym przedziale czasu.
/faultcodenames Pobierz wszystkie nazwy kodów błędów.
/faultcodes Wyświetl kody błędów.
/faultcodecategories Pobierz kategorie kodów błędów.
/faultcodesubcategories Pobierz podkategorie kodów błędów.
/faultcodedetails Uzyskaj wszystkie kody błędów ze szczegółowymi informacjami.

Uzyskaj informacje o błędzie

Wszystkie zasoby /fault* zwracają metadane dotyczące możliwych błędów w Edge. Aby na przykład zobaczyć 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 w $ACCESS_TOKEN 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"

Dodatkowe opcje znajdziesz w artykule Metrics API.

Rejestruj dane o ruchu i czasie oczekiwania

Interfejs Metrics API ma filtry, które możesz stosować w interfejsie API, by określać niestandardowe zakresy czasu, serwery proxy, regiony, środowiska i inne filtry w obliczonych danych. Aby na przykład wyświetlić wskaźnik transakcji na sekundę (tps) co 10 minut dla poprzedniej 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 w $ACCESS_TOKEN token dostępu OAuth 2.0 zgodnie z opisem w sekcji Uzyskiwanie tokena dostępu OAuth 2.0.

Wyniki tego wywołania mają postać:

{
  "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ę na to, że właściwość columns określa format values. Właściwość values zawiera dane tps obliczane co 10 minut dla poprzedniego 10-minutowego interwału.

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

Użyj parametrów zapytania from i to do określenia zakresu czasu w formacie ISO. Maksymalny czas trwania określony w polach from i to to 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 from i to, aby określić względny zakres czasu, 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"

Innym sposobem jest użycie parametru zapytania proxy do wyświetlania 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 wskaźników czasu oczekiwania określ wiele tych samych kryteriów co w przypadku danych o ruchu. Jednak dla zasobu /latency:

  • Parametr zapytania percentile musisz określić jako 50, 90, 95 lub 99. Jeśli na przykład podasz 90, interfejs API zwróci łączną wartość czasu oczekiwania na odpowiedź w 90 centylu.
  • windowsize jest ustawiony na jedną minutę.

Aby na przykład wyświetlić dane dotyczące łącznego czasu oczekiwania w 90. centylu dla 1-minutowego okna:

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.

Rejestruj dane na potrzeby alertów

Interfejs Metrics API zwraca dane dotyczące wszystkich alertów, konkretnego alertu lub podsumowania alertu. Aby na przykład pobrać 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 w $ACCESS_TOKEN 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 formacie:

[
  {
"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ó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.