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

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

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