Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
Используйте описанные ниже API для получения метрик мониторинга 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 метрик .