Как посмотреть данные показателей с помощью API

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

Чтобы получить показатели мониторинга API, используйте описанные ниже API. Показатели – это значения данных, агрегированные API Monitoring из необработанных данных, содержащихся в журналах API Monitoring.

В разделах ниже описано, как управлять показателями с помощью API.

Подробнее о Metrics API…

Информацию о параметрах cURL, используемых в этих примерах, можно найти в разделе Как использовать cURL.

API показателей

Базовый URL, который используется для отправки GET-запроса к API показателей:

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

где resource – определенный показатель. В таблице ниже перечислены ресурсы показателей.

Ресурс Описание
/traffic Получать данные о трафике. Укажите фильтры, например название прокси, интервал, временное окно, цель, код статуса и т. д.
/latency Как получать показатели задержки для запросов

в Edge и целевые системы. Укажите фильтры, например название прокси-сервера, интервал, цель, код статуса и т. д.

/targets Получите все целевые домены для определенной организации и среды.
/alerthistory Получайте показатели истории оповещений для определенной организации и временного интервала.
/alertinstance/instanceid Получите показатели истории оповещений для определенного идентификатора экземпляра оповещения.
/alertsummary Получать общее количество оповещений для организации и временного окна.
/faultcodenames Получить все названия кодов ошибок.
/faultcodes Получать коды неисправностей.
/faultcodecategories Получать категории кодов неисправностей.
/faultcodesubcategories Получение подкатегорий кодов неисправностей.
/faultcodedetails Получите все коды неисправностей с подробной информацией.

Как получить информацию о неисправности

Все ресурсы /fault* возвращают метаданные о возможных ошибках в Edge. Например, чтобы посмотреть список всех возможных категорий неисправностей:

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

Установите для параметра $ACCESS_TOKEN токен доступа OAuth 2.0, как описано в разделе Получение токена доступа OAuth 2.0.

Ответ будет выглядеть так:

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

Затем вы можете определить список кодов ошибок для категории API Protocol:

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

Другие варианты приведены в Metrics API.

Как собирать показатели трафика и задержки

В Metrics API есть фильтры, которые можно применять к API, чтобы задавать для вычисляемых показателей пользовательские диапазоны времени, прокси, регионы, среды и другие фильтры. Например, чтобы посмотреть показатель "Транзакции в секунду" (tps) каждые 10 минут за предыдущий час для всех сред, выполните следующие действия:

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" 

Установите для параметра $ACCESS_TOKEN токен доступа OAuth 2.0, как описано в разделе Получение токена доступа OAuth 2.0.

Результаты этого вызова возвращаются в следующем формате:

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

Обратите внимание, что свойство columns задает формат свойства values. Свойство values содержит значение tps, рассчитанное за предыдущий 10-минутный интервал.

Параметр запроса interval определяет частоту сохранения показателя в результатах и окно выборки для значения в результатах. В примере выше показатель рассчитывается за последние 10 минут и записывается в результаты каждые 10 минут.

Чтобы задать временной диапазон в формате ISO, используйте параметры запроса from и to. Максимальная продолжительность, указанная в полях from и to, составляет 24 часа.

Формат даты может быть следующим:

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

Пример:

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"

Или используйте параметры запроса from и to, чтобы задать относительный временной диапазон, например за последний час:

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"

Вы также можете использовать параметр запроса 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"

Для показателей задержки можно задать те же критерии, что и для показателей трафика. Однако для ресурса /latency:

  • Параметр запроса percentile должен иметь значение 50, 90, 95 или 99. Например, если вы укажете 90, API вернет общее значение задержки ответа в 90-м процентиле.
  • Значение windowsize всегда равно одной минуте.

Например, чтобы посмотреть показатели общей задержки в 90-м процентиле для окна в одну минуту, выполните следующие действия:

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"

Другие варианты приведены в Metrics API.

Как собирать показатели для оповещений

Metrics API возвращает показатели для всех оповещений, определенного оповещения или сводку оповещений. Например, чтобы получить историю оповещений для организации за последний час, выполните следующие действия:

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"

Установите для параметра $ACCESS_TOKEN токен доступа OAuth 2.0, как описано в разделе Получение токена доступа OAuth 2.0.

Этот вызов API возвращает ответ в следующем формате:

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

Затем вы можете использовать id в возвращенном массиве, чтобы получить информацию об определенном оповещении:

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

Другие варианты приведены в Metrics API.