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

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

Используйте 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 метрик есть фильтры, которые вы можете применить к 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"

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