이상 감지 API 사용

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

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

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

  • 알림 받기 - 수정된 알림 및 이상치 알림을 포함한 모든 알림을 표시합니다.
  • 알림 만들기 - 수정된 알림 또는 이상치 알림을 만듭니다.
  • 알림 업데이트: 고정 또는 이상 알림 정의를 업데이트합니다.

$ACCESS_TOKEN 설정

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

알림 받기

기본적으로 Get notifications 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입니다.
    • durationSecondscomparator 속성은 지원되지 않습니다.
  • 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시간 동안의 모든 이벤트를 반환합니다. fromto 쿼리 매개변수를 사용하여 다른 기간을 지정합니다. fromto 쿼리 매개변수 값을 사용하여 다른 기간을 지정합니다.

예를 들어 다음 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)으로 이벤트를 필터링합니다. 여러 값을 쉼표로 구분된 목록으로 지정합니다. 전체 유형