Используйте API обнаружения аномалий

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

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

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

Установка $ACCESS_TOKEN

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

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

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

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

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

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 . Укажите несколько значений в виде списка, разделенного запятыми. Все типы