Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Чтобы получить показатели мониторинга API, используйте описанные ниже API. Показатели – это значения данных, агрегированные API Monitoring из необработанных данных, содержащихся в журналах API Monitoring.
В разделах ниже описано, как управлять показателями с помощью API.
- Metrics 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:ssZyyyy-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.