<ph type="x-smartling-placeholder"></ph>
현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서. 정보
Edge API Analytics는 모든 프로젝트 소스에서 다양한 통계 정보를 API 요청 및 응답 이 정보는 자동으로 수집되어 측정항목 API를 사용하거나 사용하면 됩니다 이러한 통계에 대한 자세한 내용은 측정항목과 측정기준을 참조하세요.
API 프록시, 앱, 제품 또는 개발자 전용 커스텀 분석 데이터를 수집할 수도 있습니다. 예를 들어 쿼리 매개변수, 요청 헤더, 요청과 응답 본문 또는 API에서 정의한 변수에서 데이터를 수집하려 할 수 있습니다.
이 주제에서는 StatisticsCollector 정책을 사용하는 방법을 보여줍니다. API 요청/응답에서 커스텀 분석 데이터를 추출하고 이 데이터를 Edge API 애널리틱스에 제공합니다. 그런 다음 Edge UI의 보고서에서 또는 Edge API를 사용하여 분석 데이터를 보는 방법을 보여줍니다.
Google Book API 정보
이 주제에서는 API 프록시 요청에서 Google Books API로 커스텀 분석 데이터를 캡처하는 방법을 설명합니다. Google Books API를 사용하면 제목, 주제, 저자, 기타 특성별로 도서를 검색할 수 있습니다.
예를 들어 도서 제목별로 검색하려면 /volumes
엔드포인트에 요청을 수행합니다.
단일 쿼리 매개변수를 도서 제목이 포함된 Books API에 전달합니다.
curl https://www.googleapis.com/books/v1/volumes?q=davinci%20code
호출은 검색 기준과 일치하는 찾은 항목의 JSON 배열을 반환합니다. 다음은 응답의 첫 번째 배열 요소입니다(단순화를 위해 일부 콘텐츠는 생략되었습니다).
{ "kind": "books#volumes", "totalItems": 1799, "items": [ { "kind": "books#volume", "id": "ohZ1wcYifLsC", "etag": "4rzIsMdBMYM", "selfLink": "https://www.googleapis.com/books/v1/volumes/ohZ1wcYifLsC", "volumeInfo": { "title": "The Da Vinci Code", "subtitle": "Featuring Robert Langdon", "authors": [ "Dan Brown" ], "publisher": "Anchor", "publishedDate": "2003-03-18", "description": "MORE THAN 80 MILLION COPIES SOLD ....", "industryIdentifiers": [ { "type": "ISBN_10", "identifier": "0385504217" }, { "type": "ISBN_13", "identifier": "9780385504218" } ], "readingModes": { "text": true, "image": true }, "pageCount": 400, "printType": "BOOK", "categories": [ "Fiction" ], "averageRating": 4.0, "ratingsCount": 710, "maturityRating": "NOT_MATURE", "allowAnonLogging": true, "contentVersion": "0.18.13.0.preview.3", "panelizationSummary": { "containsEpubBubbles": false, "containsImageBubbles": false }, ... "accessInfo": { "country": "US", "viewability": "PARTIAL", "embeddable": true, "publicDomain": false, "textToSpeechPermission": "ALLOWED_FOR_ACCESSIBILITY", "epub": { "isAvailable": true, "acsTokenLink": "link" }, "pdf": { "isAvailable": true, "acsTokenLink": "link" }, ... } }
여러 응답 영역이 강조표시되어 있습니다.
- 검색결과 수
- 평균 도서 평점
- 평점 수
- 도서의 PDF 버전 가용성
다음 섹션에서는 이러한 응답 영역 및 검색 기준을 포함하는 쿼리 매개변수 q
에 대한 통계를 수집하는 방법을 설명합니다.
Google Book API용 API 프록시 만들기
Google Book API의 통계를 수집하려면 먼저 호출합니다. 그런 다음 해당 API 프록시를 호출하여 Google Book API에 요청합니다.
API 프록시 생성을 위한 2단계: API 프록시 만들기 가이드에서는 https://mocktarget.apigee.net API를 호출하는 프록시 생성 방법을 설명합니다. 이 가이드에서 설명하는 프록시에는 이를 호출하기 위한 API 키가 필요하지 않습니다.
동일한 절차를 사용하여 /volumes
엔드포인트에 대한 API 프록시를
Google 도서 API 절차의 5단계에서 API 프록시를 만들 때 Google Books API를 참조하도록 다음 속성을 설정합니다.
- 프록시 이름: 'mybooksearch'
- 프록시 기본 경로: '/mybooksearch'
- 기존 API: "https://www.googleapis.com/books/v1/volumes"
프록시를 만들고 배포한 후에는 다음 형식의 curl
명령어를 사용하여 프록시를 호출할 수 있습니다.
curl http://org_name-env_name.apigee.net/mybooksearch?q=davinci%20code
여기서 org_name 및 env_name은 프록시를 배포한 조직 및 환경을 지정합니다. 예:
curl http://myorg-test.apigee.net/mybooksearch?q=davinci%20code
커스텀 분석 데이터 수집
API 요청에서 분석 데이터를 수집하는 작업은 두 단계로 진행됩니다.
원하는 데이터를 추출하고 변수에 작성합니다.
Edge API 애널리틱스로 전달되는 모든 데이터는 변수에 저장된 값에서 가져옵니다. 일부 데이터는 다음과 같은 사전 정의된 Edge flow 변수에 자동으로 저장됩니다. API 프록시에 전달된 쿼리 매개변수의 값입니다. 사전 정의된 흐름 변수에 대한 자세한 내용은 흐름 변수 개요를 참조하세요.
변수 추출 정책을 사용하여 요청 또는 응답에서 커스텀 콘텐츠를 추출하고 변수에 해당 데이터를 작성합니다.
변수의 데이터를 Edge API 애널리틱스에 씁니다.
통계 수집기 정책 사용 변수에서 Edge API 애널리틱스에 데이터를 쓸 수 있습니다. 데이터는 사전 정의된 에지 흐름 변수 변수 추출 정책에서 만든 변수 또는 변수를 초기화합니다.
통계 데이터를 수집한 후 Edge 관리 UI 또는 API를 사용하여 살펴볼 수 있습니다 예를 들어 각 도서 제목의 평균 평점을 보여주는 커스텀 보고서를 생성할 수 있습니다. 여기서 도서 제목은 API에 전달된 쿼리 매개변수의 값에 해당합니다.
변수 추출 정책을 사용하여 분석 데이터 추출
애널리틱스 데이터는 추출하여 변수( 개발자가 정의한 에지 또는 맞춤 변수로, API 애널리틱스에 전달될 수 있습니다. 변수에 데이터를 작성하려면 변수 추출 정책을 사용합니다.
추출 변수 정책은 JSONPath 또는 XPath 표현식을 사용하여 메시지 페이로드를 파싱할 수 있습니다.
Google Book API의 JSON 검색 결과에서 정보를 추출하려면 JSONPath 표현식을 사용합니다.
예를 들어 JSON 결과 배열의 첫 번째 항목에서 averageRating
값을 추출하려면 JSONPath 표현식은 다음과 같습니다.
$.items[0].volumeInfo.averageRating
JSONPath가 평가되면 변수 추출 정책은 추출된 값을 변수에 작성합니다.
이 예시에서는 변수 추출 정책을 사용하여 4개의 변수를 만듭니다.
responsejson.totalitems
responsejson.ratingscount
responsejson.avgrating
responsejson.pdf
이러한 변수의 경우 responsejson
는 프리픽스 변수이고 totalitems
, ratingscount
, avgrating
, pdf
은 이름 변수입니다.
다음 변수 추출 정책은 JSON 응답에서 데이터를 추출하고 커스텀 변수에 쓰는 방법을 보여줍니다. 각 <Variable>
요소는 커스텀 변수 이름과 연결된 JSONPath 표현식을 지정하는 name
속성을 사용합니다.
<VariablePrefix>
요소는 변수 프리픽스를 지정합니다.
이 정책을 Edge UI의 API 프록시에 추가합니다. XML에 API 프록시를 빌드하는 경우 /apiproxy/policies
아래에서 ExtractVars.xml
이라는 파일에 정책을 추가합니다.
<ExtractVariables name="ExtractVars"> <Source>response</Source> <JSONPayload> <Variable name="totalitems"> <JSONPath>$.totalItems</JSONPath> </Variable> <Variable name="ratingscount"> <JSONPath>$.items[0].volumeInfo.ratingsCount</JSONPath> </Variable> <Variable name="avgrating"> <JSONPath>$.items[0].volumeInfo.averageRating</JSONPath> </Variable> <Variable name="pdf"> <JSONPath>$.items[0].accessInfo.pdf.isAvailable</JSONPath> </Variable> </JSONPayload> <VariablePrefix>responsejson</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
통계 수집기 정책을 사용하여 애널리틱스 서비스에 데이터를 씁니다.
통계 수집기 정책 사용 변수에서 Edge API 애널리틱스에 데이터를 쓸 수 있습니다. 통계 수집리 정책의 형식은 다음과 같습니다.
<StatisticsCollector> <DisplayName>Statistics Collector-1</DisplayName> <Statistics> <Statistic name="statName" ref="varName" type="dataType">defVal</Statistic> … </Statistics> </StatisticsCollector>
각 항목의 의미는 다음과 같습니다.
- statName는 맞춤 보고서에서 통계 데이터를 참조할 때 사용하는 이름을 지정합니다.
- varName은 수집할 애널리틱스 데이터가 포함된 변수의 이름을 지정합니다. 이 변수는 Edge에 기본 제공되거나 변수 추출 정책으로 생성된 맞춤 변수일 수 있습니다.
dataType은 기록된 데이터의 데이터 유형을 문자열, 정수, 부동 소수점 수, long, double 또는 불리언으로 지정합니다.
문자열 유형의 데이터의 경우 통계 데이터를 측정기준으로 참조합니다. 확인할 수 있습니다. 숫자 데이터 유형 (integer/float/long/double)의 경우 다음을 참조합니다. 통계 데이터를 측정기준으로 사용 또는 맞춤 보고서의 측정항목을 선택하세요.
- defValue는 맞춤 변수의 기본값을 선택적으로 제공하여 변수를 확인할 수 없거나 변수가 정의되지 않은 경우 API 분석
아래 예에서는 통계 수집기 정책을 사용하여 변수의 데이터를 수집합니다. 변수 추출 정책에 따라 생성됩니다 또한 전달된 쿼리 매개변수의 값도 수집합니다. 각 API 호출에 적용됩니다 사전 정의된 흐름 변수:
request.queryparam.queryParamName
'q'라는 쿼리 매개변수의 경우 이를 다음과 같이 참조합니다.
request.queryparam.q
이 정책을 Edge UI의 API 프록시에 추가합니다. 또는 XML로 API 프록시를 빌드하는 경우
/apiproxy/policies
아래에 다음 콘텐츠로 이름이 AnalyzeBookResults.xml,
인 파일을 추가합니다.
<StatisticsCollector name="AnalyzeBookResults"> <Statistics> <Statistic name="totalitems" ref="responsejson.totalitems" type="integer">0</Statistic> <Statistic name="ratingscount" ref="responsejson.ratingscount" type="integer">0</Statistic> <Statistic name="avgrating" ref="responsejson.avgrating" type="float">0.0</Statistic> <Statistic name="pdf" ref="responsejson.pdf" type="boolean">true</Statistic> <Statistic name="booktitle" ref="request.queryparam.q" type="string">none</Statistic> </Statistics> </StatisticsCollector>
ProxyEndpoint 응답 흐름에 정책 연결
정책이 올바르게 작동하려면 적절한 위치의 API 프록시 흐름에 정책을 연결해야 합니다. 이 사용 사례에서는 Google Book API에서 응답이 수신된 후 정책이 실행되어야 합니다. 응답을 요청하는 클라이언트에게 전송되기 전에 일어날 수 있습니다. 따라서 정책을 ProxyEndpoint 응답 PreFlow에 연결합니다.
다음 ProxyEndpoint 구성 예시에서는 먼저 ExtractVars
라는 정책을 실행하여 응답 메시지를 파싱합니다. 그런 다음 AnalyzeBookResults
라는 정책에서 해당 값을 API 애널리틱스로 전달합니다.
<ProxyEndpoint name="default"> ><PreFlow name="PreFlow"> <Request/> <Response> <Step> <Name>Extract-Vars</Name> </Step> <Step> <Name>AnalyzeBookResults</Name> </Step> </Response> </PreFlow> <HTTPProxyConnection> <!-- Base path used to route inbound requests to this API proxy --> <BasePath>/mybooksearch</BasePath> <!-- The named virtual host that defines the base URL for requests to this proxy --> <VirtualHost>default</VirtualHost> </HTTPProxyConnection> <RouteRule name="default"> <!-- Connects the proxy to the target defined under /targets --> <TargetEndpoint>default</TargetEndpoint> </RouteRule> </ProxyEndpoint>
API 프록시 배포
변경한 후에는 구성한 API 프록시를 배포해야 합니다.
분석 데이터 입력
API 프록시를 배포한 후 프록시를 호출하여 API 애널리틱스에 데이터를 채웁니다. 이렇게 하려면 다음 명령어를 실행하면 됩니다. 명령어마다 서로 다른 도서 제목이 사용됩니다.
모비딕:
curl https://org_name-env_name.apigee.net/mybooksearch?q=mobey%20dick
다빈치 코드:
curl https://org_name-env_name.apigee.net/mybooksearch?q=davinci%20code
나를 찾아줘:
curl https://org_name-env_name.apigee.net/mybooksearch?q=gone%20girl
왕좌의 게임:
curl https://org_name-env_name.apigee.net/mybooksearch?q=game%20of%20thrones
애널리틱스 데이터 보기
Edge에서는 두 가지 방법으로 커스텀 분석 데이터를 볼 수 있습니다.
- Edge UI는 그래픽 차트로 데이터를 볼 수 있는 커스텀 보고서를 지원합니다.
- 측정항목 API를 사용하면 Edge API입니다. API를 사용하면 포털 또는 커스텀 앱에 삽입할 수 있는 커스텀 위젯 형식으로 자체 시각화를 빌드할 수 있습니다.
Edge UI를 사용하여 통계 보고서 생성
맞춤 보고서를 통해 특정 API 통계를 자세히 살펴보고 확인하려는 정확한 데이터를 확인할 수 있습니다. 원하는 측정항목을 사용하여 맞춤 보고서를 만들 수 있습니다. 측정기준을 사용할 수 있습니다 또한 StatisticsCollector 정책을 사용하여 추출한 분석 데이터를 사용할 수 있습니다.
Statistics Collector 정책을 만들 때 수집된 데이터의 데이터 유형을 지정합니다. 문자열 데이터 유형의 경우, 커스텀 보고서에서 통계 데이터를 측정기준으로 참조합니다. 숫자 데이터 유형(integer/float/long/double)의 경우 커스텀 보고서의 통계 날짜를 측정기준 또는 측정항목으로 참조하세요. 자세한 내용은 커스텀 보고서 관리를 참조하세요.
Edge UI를 사용하여 커스텀 보고서 생성:
- 아래에 설명된 대로 맞춤 보고서 페이지에 액세스합니다.
에지
Edge UI를 사용하여 커스텀 보고서 페이지에 액세스하려면 다음 안내를 따르세요.
- apigee.com/edge에 로그인합니다.
- 왼쪽 탐색 메뉴에서 분석 > 커스텀 보고서 > 보고서를 선택합니다.
Classic Edge (Private Cloud)
기본 Edge UI를 사용하여 커스텀 보고서 페이지에 액세스하려면 다음 안내를 따르세요.
http://ms-ip:9000
에 로그인합니다. 여기서 ms-ip는 관리 서버 노드의 IP 주소 또는 DNS 이름입니다.애널리틱스 > 보고서를 클릭합니다.
- 분석 보고서 페이지에서 + 분석 보고서를 클릭합니다.
- 보고서 이름을 지정합니다(예시: mybookreport).
기본 측정항목(예시: 트래픽)과 집계 함수(예시: Sum)를 선택합니다.
또는 StatisticsCollector 정책을 사용하여 만든 숫자 데이터 통계 중 하나를 선택합니다. 예를 들어 ratingscount 및 집계 함수의 합계를 선택합니다.
기본 측정기준(예시: API 프록시) 또는 StatisticsCollector 정책을 사용하여 만든 문자열이나 숫자 통계를 선택합니다.
예를 들어 booktitle을 선택합니다. 이제 보고서에 booktitle별로 ratingscount 합계가 표시됩니다.
- 저장을 선택합니다. 보고서가 모든 커스텀 보고서의 목록에 나타납니다.
보고서를 실행하려면 보고서 이름을 선택합니다. 기본적으로 보고서에는 지난 1시간 동안의 데이터가 표시됩니다.
- 기간을 설정하려면 오른쪽 상단에 있는 날짜 표시를 선택하여 날짜 선택기 팝업을 엽니다.
지난 7일을 선택합니다. 보고서가 업데이트되어 도서 제목별 평점 합계가 표시됩니다.
Edge API를 사용하여 통계 가져오기
Edge 측정항목 API 사용 맞춤 분석 데이터에 대한 통계에 사용할 수 있습니다. 다음 요청 예시에서 각 항목은 다음과 같습니다.
/stats
이후에 URL에 대한 리소스가 원하는 측정기준을 지정합니다. 이 예시에서는 측정기준booktitle
의 데이터를 가져옵니다.select
쿼리 매개변수는 검색할 측정항목을 지정합니다. 이 요청은ratingscount
의 합계를 기준으로 분석을 반환합니다.timeRange
매개변수는 반환된 데이터의 시간 간격을 지정합니다. 시간 범위 형식은 다음과 같습니다.MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM
전체 API 호출은 다음과 같습니다.
curl -X GET "https://api.enterprise.apigee.com/v1/organizations/org_name/environments/env_name/stats/booktitle?select=sum(ratingscount)&timeRange=04/21/2019&2014:00:00~04/22/2019&2014:00:00" / -u email:password
다음과 같은 형식의 응답이 표시됩니다.
{ "environments": [ { "dimensions": [ { "metrics": [ { "name": "sum(ratingscount)", "values": [ "5352.0" ] } ], "name": "gone girl" }, { "metrics": [ { "name": "sum(ratingscount)", "values": [ "4260.0" ] } ], "name": "davinci code" }, { "metrics": [ { "name": "sum(ratingscount)", "values": [ "1836.0" ] } ], "name": "game of thrones" }, { "metrics": [ { "name": "sum(ratingscount)", "values": [ "1812.0" ] } ], "name": "mobey dick" } ], "name": "prod" } ], "metaData": { "errors": [], "notices": [ "query served by:9b372dd0-ed30-4502-8753-73a6b09cc028", "Table used: uap-prod-gcp-us-west1.edge.edge_api_raxgroup021_fact", "Source:Big Query" ] } }
Edge 측정항목 API 많은 옵션이 있습니다 예를 들어 결과를 오름차순 또는 내림차순으로 정렬할 수 있습니다. 다음 예시에서는 오름차순을 사용합니다.
curl -X GET "https://api.enterprise.apigee.com/v1/organizations/org_name/environments/env_name/stats/booktitle?select=sum(ratingscount)&timeRange=04/21/2019&2014:00:00~04/22/2019&2014:00:00&sort=ASC" / -u email:password
원하는 측정기준 값을 지정하여 결과를 필터링할 수도 있습니다. 다음 예시에서 보고서는 'Gone Girl' 및 'The Da Vinci Code'의 결과로 필터링됩니다.
$ curl -X GET "https://api.enterprise.apigee.com/v1/organizations/org_name/environments/env_name/stats/booktitle?select=sum(ratingscount)&timeRange=04/21/2019&2014:00:00~04/22/2019&2014:00:00&filter=(booktitle%20in%20'gone%20girl'%2C%20'davinci%20code')" / -u email:password
Solution Builder를 사용하여 커스텀 분석 변수 만들기
솔루션 빌더를 사용하면 사용이 간편한 방법으로 맞춤 분석 변수를 만들 수 있습니다. 관리 UI 대화상자
이전 섹션인 맞춤 분석 데이터 수집을 읽어보는 것이 좋습니다. 변수 추출 및 통계 수집기 정책의 작동 방식을 설명합니다. 커스텀 변수를 Edge API 애널리틱스에 피드할 수 있습니다. 보시다시피 UI는 이와 동일한 패턴을 따르지만 전적으로 UI를 통해 항목을 구성할 수 있는 편리한 방법을 제공합니다. 원하는 경우 정책을 수동으로 편집하거나 연결하는 대신 UI를 사용하여 Google Books API 예시를 사용해 보세요.
솔루션 빌더 대화상자를 사용하면 UI에서 직접 분석 변수를 구성할 수 있습니다. 이 도구는 정책을 생성하고 자동으로 API 프록시에 연결합니다. 정책에서는 원하는 변수를 추출하고 추출된 변수를 Edge에 전달 API 분석.
솔루션 빌더는 새로운 추출 변수와 통계 수집기 정책을 만들고 고유한 이름을 지정합니다. 솔루션 빌더는 지정된 프록시 버전에서 정책이 생성되면 정책으로 돌아가서 변경할 수 없게 합니다. 변경하려면 생성된 정책을 정책 편집기에서 직접 수정합니다.
- Edge UI에서 프록시의 개요 페이지로 이동합니다.
- 개발을 클릭합니다.
- 개발 페이지의 도구 메뉴에서 커스텀 애널리틱스 수집을 선택합니다. 솔루션 빌더 대화상자가 나타납니다.
- 솔루션 빌더 대화상자에서 추출 변수와 통계 수집기 등 두 가지 정책을 먼저 구성합니다. 그런 다음 이러한 정책을 연결할 위치를 구성합니다.
- 추출할 데이터를 지정합니다.
- 위치 유형: 수집할 데이터 유형과 데이터를 수집할 위치를 선택합니다. 요청 또는 응답 측에서 데이터를 선택할 수 있습니다. 예를 들어 요청: 쿼리 매개변수 또는 응답: XML 본문입니다.
- 위치 소스: 수집할 데이터를 식별합니다. 예를 들면 응답 본문에 있는 쿼리 매개변수 이름이나 XML 데이터의 XPath입니다.
- 통계 수집기 정책에서 추출된 데이터를 식별하는 데 사용할 변수 이름(및 유형)을 지정합니다. 이 주제의 이름 지정 제한사항을 참조하세요.
사용할 이름이 커스텀 보고서 작성 도구 UI의 측정기준이나 측정항목의 드롭다운 메뉴에 표시됩니다. - API 프록시 흐름에서 생성된 정책인 추출 변수와 통계 수집기를 연결할 위치를 선택합니다. 자세한 내용은 'ProxyEndpoint 응답 흐름에 정책 연결'을 참조하세요. 정책이 올바르게 작동하려면 적절한 위치의 API 프록시 흐름에 정책을 연결해야 합니다. 이 트래핑하는 변수가 범위 내에 있는 흐름의 단계에 있는 정책 (채워짐)
- +수집기를 클릭하여 커스텀 변수를 추가합니다.
완료되면 솔루션 빌드를 클릭합니다.
- 프록시를 저장하고 배포합니다.
이제 위에서 설명한 대로 데이터에 대한 커스텀 보고서를 생성할 수 있습니다.