Просмотр данных метрик с помощью API

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

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

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

Дополнительную информацию об API метрик см. в разделе «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"

Дополнительные параметры см. в 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 минут за предыдущий 10-минутный интервал.

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

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

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

  • yyyy-mm-dd T hh:mm:ss Z
  • yyyy-mm-dd T hh: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 для отображения количества транзакций в секунду (tps) для одного прокси-сервера:

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-м процентиле за 1-минутный интервал:

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"

Дополнительные параметры см. в разделе «API метрик» .

Сбор метрик для оповещений

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"

Дополнительные параметры см. в API метрик .