StatisticsCollector 정책

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

내용

제품 ID, 가격, REST 작업, 클라이언트 및 대상 URL, 메시지 길이와 같은 메시지 내 데이터 통계를 수집할 수 있습니다. 데이터는 Apigee에서 사전 정의된 흐름 변수 또는 사용자가 정의한 커스텀 변수에서 가져올 수 있습니다.

통계 데이터는 통계를 분석하고 보고서를 생성하는 분석 서버로 전달됩니다. Edge 관리 UI 또는 Edge API를 사용하여 보고서를 볼 수 있습니다.

샘플

기본 예시

<StatisticsCollector name="publishPurchaseDetails">
  <Statistics>
    <Statistic name="productID" ref="product.id" type="string">999999</Statistic>
    <Statistic name="price" ref="product.price" type="string">0</Statistic>
  </Statistics>
</StatisticsCollector>

이 예시에서는 product.idproduct.price라는 2가지 맞춤 변수에 대한 통계 정보를 수집합니다. 모든 요청에서 통계 수집기 정책은 이 두 변수의 값을 분석 서버에 씁니다.

또한 이 예에서는 각 변수에 대해 선택적 기본값을 설정합니다. 여기서 product.id의 기본값은 999999이고 기본 product.price는 0입니다. 변수가 정의되지 않은 상태에서 기본값을 지정하지 않으면 변수에 대한 데이터가 기록되지 않습니다. 기본값을 지정하면 변수가 정의되지 않을 때 기본값이 기록됩니다.

통계 데이터를 수집한 후 Edge 관리 UI 또는 API를 사용하여 통계를 검색할 수 있습니다. 통계를 가져올 때 이러한 변수에 대해 수집된 데이터를 각각 productIDprice로 참조합니다.

통계 액세스

이 예시에서는 Edge management API를 사용하여 productID라는 컬렉션의 통계 데이터를 확인합니다. 이 요청은 매일 각 제품 ID에 제출된 메시지 수의 합계를 기반으로 제품 ID에 대한 커스텀 보고서를 작성합니다. {org_name} 변수를 조직 이름으로, email:password을 Apigee Edge 계정의 이메일 및 비밀번호로 대체합니다.

데이터가 수집된 시간 간격을 포함하도록 timeRange 매개변수를 설정합니다. 현재 날짜로부터 6개월 이상 지난 데이터는 기본적으로 액세스할 수 없습니다. 6개월 넘게 지난 데이터에 액세스하려면 Apigee Edge 지원팀에 문의하세요.

$ curl https://api.enterprise.apigee.com/v1/o/{org_name}/environments/test/stats/productID?"select=sum(message_count)&timeRange=1/19/2015%2000:00~6/21/2015%2000:00&timeUnit=day"
-u email:password

응답의 name 필드에는 제품 ID가 포함되며 값은 일일 요청 수를 보여줍니다.

{
  "environments" : [ {
    "dimensions" : [ {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values" : [ {
          "timestamp" : 1353369600000,
          "value" : "4.0"
        } ]
      } ],
      "name" : "52"
    }, {
      "metrics" : [ {
        "name" : "sum(message_count)",
        "values" : [ {
          "timestamp" : 1353369600000,
          "value" : "19.0"
        } ]
      } ],
      "name" : "14"
    }, ...
  } ],
  "metaData" : {
    "samplingRate" : "100"
  }
}

컬렉션을 위한 데이터 추출 중

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="GetWeatherData">
    <VariablePrefix>weather</VariablePrefix>
    <XMLPayload>
       <Namespaces>
          <Namespace prefix="yweather">http://xml.weather.yahoo.com/ns/rss/1.0</Namespace>
       </Namespaces>
       <Variable name="location" type="string">
          <XPath>/rss/channel/yweather:location/@city</XPath>
       </Variable>
       <Variable name="condition" type="string">
          <XPath>/rss/channel/item/yweather:condition/@text</XPath>
       </Variable>
    </XMLPayload>
</ExtractVariables>

통계 수집기 정책에 따라 수집된 데이터는 변수에 저장해야 합니다. 이러한 변수는 Apigee에서 사전 정의할 수도 있고 사용자가 정의하는 커스텀 변수가 될 수도 있습니다.

이 예시에서는 변수 추출 정책을 사용하여 날씨 정보가 포함된 XML 페이로드에서 데이터를 추출합니다. 정책은 다음과 같은 역할을 합니다.

  • 도시 이름을 추출하여 weather.location이라는 변수에 씁니다.
  • 현재 조건을 추출하여 weather.condition이라는 변수에 씁니다.

그런 다음 아래와 같이 통계 수집기 정책을 사용하여 변수에 대한 정보를 수집할 수 있습니다.

<StatisticsCollector name="publishPurchaseDetails">
  <Statistics>
    <Statistic name="weatherLocation" ref="weather.location" type="string"></Statistic>
    <Statistic name="weatherCondition" ref="weather.condition" type="string"></Statistic>
  </Statistics>
</StatisticsCollector>

통계 수집기 정책의 XML 페이로드에서 데이터를 추출하는 방법을 보여주는 전체 가이드는 커스텀 분석을 사용하여 API 메시지 콘텐츠 분석을 참조하세요.


통계 수집기 정책 정보

실행되면 통계 수집기 정책이 하나 이상의 변수의 현재 값을 기록합니다. 이러한 변수는 Apigee에서 사전 정의된 흐름 변수이거나 사용자가 정의하는 커스텀 변수일 수 있습니다. 이 데이터는 에지 분석 서버에 작성됩니다.

정책에서 수집하는 통계 데이터에 액세스하려면 Edge API 또는 Edge 관리 UI를 사용합니다. 예를 들어 에지 관리 UI를 사용하여 수집된 데이터를 다양한 형식으로 표시하는 커스텀 보고서를 만들 수 있습니다.

통계 수집기 정책을 사용하는 전체 가이드는 커스텀 분석을 사용하여 API 메시지 콘텐츠 분석을 참조하세요.

정책 적용 위치

API 프록시의 요청 또는 응답 흐름에 통계 수집기 정책을 배치할 수 있습니다. 하지만 프록시에 여러 통계 수집기 정책을 배치한 경우 마지막에 실행된 데이터는 분석 서버에 기록되는 데이터와 이전 통계 수집기 정책에 의해 작성된 데이터가 손실됩니다.

API 프록시에 여러 통계 수집기 정책이 있을 수 있는 한 가지 시나리오는 요청 또는 응답 흐름에 하나, 오류 핸들러에 하나가 있는 경우입니다. API 프록시에서 오류가 발생하면 오류 핸들러의 통계 수집기가 수집되는 데이터를 결정합니다. 통계 수집기를 사용하여 오류에 대한 정보를 기록하거나 필요하다고 생각되는 기타 정보를 기록할 수 있습니다. 오류 핸들러의 통계 수집기는 요청/응답의 통계 수집기가 이미 실행되었는지 여부에 관계없이 수집된 데이터를 결정합니다.

자세한 내용은 오류 처리를 참조하세요.

요소 참조

요소 참조는 통계 수집기 정책의 요소와 속성을 설명합니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Statistics-Collector-1">
    <DisplayName>Statistics Collector 1</DisplayName>
    <Statistics>
        <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
    </Statistics>
</StatisticsCollector>

<StatisticsCollector> 속성

<StatisticsCollector async="false" continueOnError="false" enabled="true" name="Stats-1">

다음 표는 모든 정책 상위 요소의 공통 속성에 대해 설명합니다.

속성 설명 기본 계정 현재 상태
name

정책의 내부 이름입니다. name 속성의 값에는 문자, 숫자, 공백, 하이픈, 밑줄, 마침표가 포함될 수 있습니다. 이 값은 255자(영문 기준)를 초과할 수 없습니다.

원하는 경우 <DisplayName> 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름을 사용하여 정책에 라벨을 지정합니다.

N/A 필수
continueOnError

정책이 실패할 경우 오류가 반환되도록 하려면 false로 설정합니다. 이는 대부분의 정책에서 예상되는 동작입니다.

정책이 실패해도 흐름 실행이 계속되도록 하려면 true로 설정합니다.

false 선택사항
enabled

정책을 시행하려면 true로 설정합니다.

정책을 중지하려면 false로 설정합니다. 정책이 흐름에 연결되어 있어도 정책이 시행되지 않습니다.

true 선택사항
async

이 속성은 지원이 중단되었습니다.

false 지원 중단됨

<DisplayName> 요소

name 속성 외에도 이 요소를 사용하여 관리 UI 프록시 편집기의 정책에 다른 자연어 이름으로 라벨을 지정합니다.

<DisplayName>Policy Display Name</DisplayName>
기본 계정

N/A

이 요소를 생략하면 정책 name 속성 값이 사용됩니다.

현재 상태 선택사항
유형 문자열

<Statistics>/<Statistic> 요소

<Statistics>
    <Statistic name="statName" ref="varName" type="refDataType">defaultStatValue</Statistic>
</Statistics>
속성 설명 기본 계정 현재 상태
이름

지정된 변수에 대해 수집된 데이터를 참조하는 데 사용되는 이름입니다. 분석 데이터를 볼 때 이 이름을 사용하여 ref 속성에 의해 지정된 변수에 대해 수집된 데이터를 참조합니다.

ref에 의해 지정된 변수가 요청 또는 응답에서 정의되지 않은 경우 defaultStatValue는 변수에 수집된 값을 지정합니다. 기본값을 생략하면 변수가 정의되지 않은 경우 변수에 대한 데이터가 수집되지 않습니다.

이름 지정 제한사항

커스텀 분석 변수에는 다음과 같은 이름 지정 제한이 적용됩니다.

N/A 필수
ref

통계를 수집하는 흐름 변수입니다. 이 변수는 Apigee에서 사전 정의한 흐름 변수이거나 사용자가 API 프록시에 정의한 커스텀 변수일 수 있습니다.

참조 속성은 변수 추출 정책에 정의된 맞춤 변수를 참조하는 경우가 많습니다. 자세한 내용은 변수 정책 추출을 참조하세요.

N/A 필수
유형

ref 속성으로 지정된 변수의 데이터 유형을 지정합니다. 유효한 값은 string/integer/float/long/double/boolean입니다.

문자열 유형의 데이터의 경우 맞춤 보고서의 통계 데이터를 측정기준으로 참조합니다. 숫자 데이터 유형 (정수/부동소수/긴/배정수)의 경우 맞춤 보고서의 통계 데이터를 측정기준 또는 측정항목으로 참조합니다. 자세한 내용은 맞춤 보고서 관리하기를 참고하세요.

type 값은 ref가 사전 정의된 Apigee 흐름 변수를 참조하거나 유형이 변수 추출 정책의 XML 페이로드에 선언된 경우에만 생략할 수 있습니다.

string 선택사항

오류 참조

이 섹션에서는 이 정책이 오류를 트리거할 때 설정되는 오류 메시지 및 흐름 변수에 대해 설명합니다. 이 정보는 프록시에 대한 오류 규칙을 개발하는 중이라면 중요합니다. 자세한 내용은 정책 오류에 대해 알아야 할 사항오류 처리를 참조하세요.

런타임 오류

없음

배포 오류

오류 이름 원인 수정
UnsupportedDatatype 통계 수집기 정책의 <Statistic> 요소에 있는 참조 속성으로 지정된 변수 유형이 지원되지 않으면 API 프록시 배포가 실패합니다. 지원되는 데이터 유형은 string, integer, float, long, double, boolean입니다.
InvalidName 통계 수집기 정책의 <Statistic> 요소 내에서 정의된 지정된 변수에 대해 수집된 데이터를 참조하는 데 사용되는 이름이 시스템 정의 변수와 충돌하면 API 프록시 배포가 실패합니다. 알려진 시스템 정의 변수로는 organizationenvironment가 있습니다.
DatatypeMissing 통계 수집기 정책의 <Statistic> 요소에 있는 ref 속성으로 지정된 변수 유형이 누락된 경우 API 프록시 배포가 실패합니다.

오류 변수

없음

스키마

각 정책 유형은 XML 스키마(.xsd)로 정의됩니다. 참고로 GitHub에서 정책 스키마를 사용할 수 있습니다.

관련 주제

자세한 내용은 다음을 참고하세요.