API를 사용하여 측정항목 데이터 보기

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

아래에 설명된 API를 사용하여 API 모니터링 측정항목을 가져옵니다. 측정항목은 API 모니터링 로그에 포함된 원시 데이터에서 API 모니터링에 의해 집계된 데이터 값입니다.

다음 섹션에서는 API를 사용하여 측정항목을 관리하는 방법을 설명합니다.

Metrics API에 대한 자세한 내용은 Metrics API를 참고하세요.

이 예시에 사용된 cURL 옵션에 대한 자세한 내용은 cURL 사용을 참고하세요.

Metrics API

Metrics API에 GET 요청을 보내는 데 사용하는 기본 URL은 다음과 같습니다.

https://apimonitoring.enterprise.apigee.com/metrics/resource

여기서 resource는 특정 측정항목에 해당합니다. 다음 표에는 측정항목 리소스가 나와 있습니다.

리소스 설명
/traffic 트래픽 측정항목을 가져옵니다. 프록시 이름, 간격, 시간 범위, 타겟, 상태 코드 등의 필터를 지정합니다.
/latency 요청의 지연 시간 측정항목 가져오기

에지 및 백엔드 대상에 연결합니다. 프록시 이름, 간격, 타겟, 상태 코드 등의 필터를 지정합니다.

/targets 특정 조직 및 환경의 모든 타겟 도메인을 가져옵니다.
/alerthistory 특정 조직 및 기간의 알림 기록 측정항목을 가져옵니다.
/alertinstance/instanceid 특정 알림 인스턴스 ID의 알림 기록 측정항목을 가져옵니다.
/alertsummary 조직 및 기간에 대한 총 알림 수를 가져옵니다.
/faultcodenames 모든 faultcode 이름을 가져옵니다.
/faultcodes 오류 코드를 가져옵니다.
/faultcodecategories 오류 코드 카테고리를 가져옵니다.
/faultcodesubcategories 오류 코드 하위 카테고리를 가져옵니다.
/faultcodedetails 세부정보와 함께 모든 결함 코드를 가져옵니다.

오류 정보 가져오기

/fault* 리소스는 모두 Edge에서 발생할 수 있는 오류에 관한 메타데이터를 반환합니다. 예를 들어 가능한 모든 오류 카테고리의 목록을 보려면 다음 단계를 따르세요.

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodecategories" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

OAuth 2.0 액세스 토큰 가져오기에 설명된 대로 $ACCESS_TOKEN을 OAuth 2.0 액세스 토큰으로 설정합니다.

응답은 다음과 같이 표시됩니다.

{
  "faultCodeCategories":[
    "","API Protocol","Developer/App","Extension Policy","Gateway",
    "Mediation Policy","Mint","Security Policy","Sense","Traffic Mgmt Policy"
  ]
}

그런 다음 API Protocol 카테고리의 오류 코드 목록을 확인할 수 있습니다.

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodes?faultCodeCategory=API Protocol" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

추가 옵션은 Metrics API를 참고하세요.

트래픽 및 지연 시간 측정항목 캡처

Metrics API에는 API에 적용하여 계산된 측정항목에 맞춤 기간, 프록시, 지역, 환경, 기타 필터를 지정할 수 있는 필터가 있습니다. 예를 들어 모든 환경에서 이전 1시간 동안 10분마다 초당 트랜잭션 수 (tps) 측정항목을 보려면 다음을 실행합니다.

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=10m&groupBy=env&org=myorg" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN" 

OAuth 2.0 액세스 토큰 가져오기에 설명된 대로 $ACCESS_TOKEN을 OAuth 2.0 액세스 토큰으로 설정합니다.

이 호출은 다음 형식으로 결과를 반환합니다.

{
  "results":[
    {
      "series":[
        {
          "name":"proxy",
        "tags":
             {
                "env":"prod",
                "intervalSeconds":"60",
                "org":"myorg",
                "region":"myregion"
              },
            "columns":["time","tps"],
            "values":[
              ["2018-08-15T13:10:00Z",5.03],
              ["2018-08-15T13:20:00Z",5.01],
              ["2018-08-15T13:30:00Z",5.81],
              ["2018-08-15T13:40:00Z",5.95],
              
            ]
          },
       
       }
    }]
}

columns 속성이 values의 형식을 지정하는 방식을 확인합니다. values 속성에는 이전 10분 간격 동안 10분마다 계산된 tps가 포함됩니다.

interval 쿼리 매개변수는 측정항목이 결과에 저장되는 빈도와 결과의 값에 대한 샘플링 기간을 정의합니다. 위의 예에서 측정항목은 이전 10분 동안 계산되고 10분마다 결과에 기록됩니다.

fromto 쿼리 매개변수를 사용하여 ISO 형식의 기간을 지정합니다. fromto로 지정된 최대 시간은 24시간입니다.

날짜 형식은 다음 중 하나일 수 있습니다.

  • yyyy-mm-ddThh:mm:ssZ
  • yyyy-mm-ddThh:mm:ss+00:00

예를 들면 다음과 같습니다.

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=2018-08-13T14%3A04%3A00Z&to=2018-08-13T14%3A10%3A00Z&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

또는 fromto 쿼리 매개변수를 사용하여 상대 시간 범위를 지정할 수 있습니다(예: 지난 1시간).

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

또 다른 방법은 proxy 쿼리 매개변수를 사용하여 단일 프록시의 초당 거래 수 (tps)를 표시하는 것입니다.

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

지연 시간 측정항목의 경우 트래픽 측정항목과 동일한 기준을 많이 지정합니다. 그러나 /latency 리소스의 경우:

  • percentile 쿼리 매개변수를 50, 90, 95 또는 99로 지정해야 합니다. 예를 들어 90를 지정하면 API는 90번째 백분위수의 총 응답 지연 시간 값을 반환합니다.
  • windowsize는 1분으로 고정됩니다.

예를 들어 1분 동안의 총 지연 시간에 대한 90번째 백분위수 측정항목을 보려면 다음 단계를 따르세요.

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/latency?percentile=90&select=totalLatency&from=-1h&to=now&interval=5m&windowsize=1m&groupBy=org,env,region&org=myorg" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

추가 옵션은 Metrics API를 참고하세요.

알림에 대한 측정항목 캡처

측정항목 API는 모든 알림, 특정 알림 또는 알림 요약의 측정항목을 반환합니다. 예를 들어 지난 1시간 동안 조직의 경고 기록을 가져오려면 다음을 실행합니다.

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alerthistory?org=myorg&from=-1h&to=now" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

OAuth 2.0 액세스 토큰 가져오기에 설명된 대로 $ACCESS_TOKEN을 OAuth 2.0 액세스 토큰으로 설정합니다.

이 API 호출은 다음과 같은 형식으로 응답을 반환합니다.

[
  {
"id":"983c4c7a-c301-4697-95cc-9a7c53e05fac",
"organization":"myorg",
"environment":"prod",
"name":"Public Api 5xx error rate",
"type":"Alert",
"source":"https://www.apigee.net/sonar",
"raw_payload":"
{
    \"reportUUID\":\"\",
    \"reportEnabled\":false,
    \"organization\":\"myorg\",
    \"name\":\"Public Api 5xx error rate\",
    \"self\":\"/alerts/95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"description\":\"\",
    \"conditions\":[
    {
        \"comparator\":\"\u003e\",
        \"metric\":\"rate\",
        \"durationSeconds\":3600,
        \"name\":\"\",
        \"description\":\"\",
        \"threshold\":0.01,
        \"dimensions\":
        {
            \"proxy\":\"myAPI\",
            \"org\":\"myorg\",
            \"env\":\"prod\",
            \"region\":\"myRegion\",
            \"statusCode\":\"5xx\"
            }
        }],
        \"uuid\":\"95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"playbook\":\"This is a test alert.\"
    }",
"time":"2018-08-14T12:45:28Z"
 },
 
]

그런 다음 반환된 배열에서 id를 사용하여 특정 알림에 대한 정보를 가져올 수 있습니다.

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alertinstance/983c4c7a-c301-4697-95cc-9a7c53e05fac" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

추가 옵션은 Metrics API를 참고하세요.