Как использовать API для обнаружения аномалий

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

Большинство API, которые вы используете для создания и управления оповещениями об аномалиях и сбора показателей аномалий, такие же, как и для фиксированных оповещений. Следующие API оповещений работают одинаково для фиксированных и аномальных оповещений:

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

Установка $ACCESS_TOKEN

Во всех приведенных ниже вызовах API учетные данные передаются в переменной среды $ACCESS_TOKEN. Установите для параметра $ACCESS_TOKEN токен доступа OAuth 2.0, как описано в разделе Получение токена доступа OAuth 2.0. Информацию о параметрах cURL, используемых в этих примерах, можно найти в разделе Как использовать cURL.

Получать оповещения

По умолчанию API Get alerts возвращает информацию обо всех заданных оповещениях. Теперь этот API принимает параметры запроса, позволяющие фильтровать результаты:

  • enabled – если в поле true указано, что нужно возвращать только включенные оповещения. Значение по умолчанию – false.
  • alertType – указывает тип оповещения, которое нужно вернуть. Допустимые значения: runtime (по умолчанию) и cert.
  • alertSubType – указывает подтип оповещения, который нужно вернуть. Значение по умолчанию не задано, то есть возвращаются все подтипы оповещений. Укажите anomaly, чтобы получить оповещения об аномалиях.

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

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&enabled=true'

Следующий вызов возвращает только оповещения об отклонениях, как включенные, так и отключенные:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
'https://apimonitoring.enterprise.apigee.com/alerts?org=myorg&alertType=runtime&alertSubType=anomaly'

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

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

  • Чтобы указать, что оповещение является оповещением об аномалии, необходимо добавить следующие новые свойства:

    "alertType": "runtime"
    "alertSubType": "anomaly"

    Значения по умолчанию для этих свойств:

    "alertType": "runtime"
    "alertSubType": "fixed"
  • В массиве conditions:

    • Свойство metrics может принимать только следующие значения:

      • count – оповещение о количестве ошибок HTTP.
      • totalLatency – создать оповещение о задержке.
    • Свойство threshold принимает строку, а не число. Допустимые значения:slight, moderate и severe.
    • Свойства durationSeconds и comparator не поддерживаются.
  • В элементе dimensions массива conditions:

    • Для свойства proxy необходимо задать значение ALL.
    • Свойство statusCode поддерживает только значение 4xx, 503, 504, and 5xx.
    • Свойства developerApp, collection, faultCodeCategory, faultCodeSubCategory и faultCodeName не поддерживаются.
  • Свойство reportEnabled не поддерживается для оповещений об аномалиях.

В следующем примере вызова API создается оповещение об аномалии, которое срабатывает, когда коды статуса 5xx возникают с умеренной частотой для всех прокси API в производственной среде для любого региона. При срабатывании оповещения на указанный адрес электронной почты отправляется уведомление:

curl 'https://apimonitoring.enterprise.apigee.com/alerts' \
 -X POST \
 -H 'Accept: application/json, text/plain, */*' -H "Content-Type: application/json" \
 -H "Authorization: Bearer $ACCESS_TOKEN" \
 -d '{
     "organization":"myorg",
     "name":"5xx Anomaly Alert",
     "description":"My 5xx alert",
     "environment":"prod",
     "enabled":true,
     "alertType": "runtime",
     "alertSubType": "anomaly",
     "conditions":[
     {
        "description":"",
        "dimensions":{
            "org":"myorg",
            "env":"prod",
            "proxy":"ALL",
            "region":"ANY",
            "statusCode":"5xx"
        },
        "metric":"count",
        "threshold": "moderate"
     }
     ],
     "notifications":[{
         "channel":"email",
         "destination":"ops@acme.com"
     }],
     "playbook":"http://acme.com/myplaybook.html",
     "throttleIntervalSeconds":3600
    }'

Как использовать API событий с отклонениями

Используйте API /metrics/events, чтобы получить все события в организации за определенный период времени. В список событий входят аномалии, обнаруженные Edge, и все активированные оповещения. Оповещения могут быть как фиксированными, так и аномальными.

По умолчанию API возвращает все события за предыдущий час. Чтобы задать другую продолжительность, используйте параметры запроса from и to. Значения параметров запроса from и to, чтобы указать другую продолжительность.

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

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&from=-12h&to=now"

Установите для параметра $ACCESS_TOKEN токен доступа OAuth 2.0, как описано в разделе Получение токена доступа OAuth 2.0. Информацию о параметрах cURL, используемых в этом примере, можно найти в разделе Как использовать cURL.

Следующий вызов возвращает все аномальные события с умеренным пороговым значением за последние 24 часа:

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://apimonitoring.enterprise.apigee.com/metrics/events?org=myorg&type=anomaly&threshold=moderate&from=-24h&to=now"

Для этого API требуется только параметр запроса org. Помимо параметров запроса, описанных в документации API по адресу /metrics/events, этот API поддерживает следующие варианты для обнаружения аномалий:

Название Описание По умолчанию
threshold

Фильтровать события по указанному порогу: slight, moderate или severe.

Доступно, только если задано значение type=anomaly.

Любая степень серьезности
type Отфильтровать события по указанному типу: alert или anomaly. Несколько значений можно добавить списком, разделенным запятыми. Все типы