이상 감지 API 사용

Apigee Edge 문서입니다.
Go to the Apigee X 문서로 이동합니다.
info

이상 알림을 만들고 관리하고 이상 측정항목을 수집하는 데 사용되는 API는 대부분 고정 알림과 함께 사용하는 API와 동일합니다. 다음 알림 API는 고정 알림과 이상 알림 모두에서 동일한 방식으로 작동합니다.

하지만 일부 API에는 이상 알림을 지원하는 데 사용되는 다음과 같은 추가 속성이 있습니다.

$ACCESS_TOKEN 설정

아래에 표시된 모든 API 호출은 $ACCESS_TOKEN라는 환경 변수에 사용자 인증 정보를 전달합니다. OAuth 2.0 액세스 토큰 가져오기에 설명된 대로 $ACCESS_TOKEN을 OAuth 2.0 액세스 토큰으로 설정합니다. 이 예시에 사용된 cURL 옵션에 대한 자세한 내용은 cURL 사용을 참조하세요.

알림 가져오기

기본적으로 알림 가져오기 API는 정의된 모든 알림에 대한 정보를 반환합니다. 이제 이 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를 사용하여 이상 알림을 생성 또는 업데이트합니다. 이상 알림을 만들거나 업데이트하는 API 호출의 본문은 고정 알림에 사용되는 것과 동일하며 다음과 같은 변경사항이 있습니다.

  • 해당 알림을 알림으로 지정하려면 다음과 같은 새 속성을 추가해야 합니다.

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

    이러한 속성의 기본값은 다음과 같습니다.

    "alertType": "runtime"
    "alertSubType": "fixed"
  • conditions 배열에서 다음 사항을 유의하세요.

    • metrics 속성은 다음의 값만 사용합니다.

      • count - HTTP 오류 개수에 대한 알림을 발생시킵니다.
      • totalLatency - 지연 알림을 발생시킵니다.
    • threshold 속성은 숫자 대신 문자열을 사용합니다. 지원되는 값은 slight, moderate, severe입니다.
    • durationSeconds 및 comparator 속성은 지원되지 않습니다.
  • conditions 배열의 dimensions 요소에서 다음 사항을 유의하세요.

    • proxy 속성의 값을 ALL로 설정해야 합니다.
    • statusCode 속성은 4xx, 503, 504, and 5xx 값만 지원합니다.
    • developerApp, collection, faultCodeCategory, faultCodeSubCategory, faultCodeName 속성은 지원되지 않습니다.
  • 이상 알림의 경우 reportEnabled 속성은 지원되지 않습니다.

다음 API 호출 예시에서는 모든 리전의 prod 환경 내 모든 API 프록시에 대해 5xx 상태 코드가 보통 비율로 발생할 때 트리거되는 이상 알림을 만듭니다. 경고가 트리거되면 지정된 이메일 주소로 알림이 전송됩니다.

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 사용

/metrics/events API를 사용하여 지정된 시간 간격에 대한 조직의 모든 이벤트를 가져옵니다. 이벤트 목록에는 Edge에서 감지한 이상과 트리거된 알림이 포함됩니다. 알림에는 고정 알림과 이상 알림이 모두 포함될 수 있습니다.

기본적으로 API는 이전 1시간 동안의 모든 이벤트를 반환합니다. from 및 to 쿼리 매개변수를 사용하여 다른 기간을 지정합니다. from 및 to 쿼리 매개변수 값을 사용하여 다른 기간을 지정합니다.

예를 들어 다음 API 호출은 지난 12시간 동안 myorg 조직에 있는 모든 이벤트를 반환합니다.

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

OAuth 2.0 액세스 토큰 가져오기에 설명된 대로 $ACCESS_TOKEN을 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 쿼리 매개변수만 필요합니다. /metrics/events의 API 문서에 설명된 쿼리 매개변수와 함께 이 API는 이상 감지를 지원하기 위해 다음 옵션을 지원합니다.

이름 설명 기본
threshold

지정된 임곗값(slight, moderate, severe)으로 이벤트를 필터링합니다.

type=anomaly로 설정 시에만 허용됩니다.

모든 심각도
type 지정된 유형(alert 또는 anomaly)으로 이벤트를 필터링합니다. 여러 값을 쉼표로 구분된 목록으로 지정합니다. 모든 유형