使用自訂數據分析功能分析 API 訊息內容

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

Edge API Analytics 會收集並分析 和 API 要求和回應系統會自動收集這些資訊,然後顯示於 Edge UI,或使用 Metrics API。查看指標維度,進一步瞭解這些統計資料。

另外,您可能也想針對 API Proxy、應用程式、產品、 或開發人員舉例來說,您可以從查詢參數、要求標頭 要求和回應主體,或是在 API 中定義的變數。

本主題示範如何使用 StatisticsCollector 政策 ,從 API 要求/回應中擷取自訂數據分析資料,然後將這些資料提供給 Edge API Analytics。 接著示範如何使用 Edge UI 或 Edge API 查看報表中的數據分析資料。

關於 Google Book API

本主題將說明如何從 API Proxy 要求,擷取 Google Books API。 Google 圖書 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 Proxy

您需要先建立 Edge API Proxy,才能收集 Google Book API 的統計資料 呼叫該函式。然後叫用該 API Proxy 向 Google Book API 提出要求。

教學課程的步驟 2:建立 API Proxy ,瞭解如何建立 API Proxy https://mocktarget.apigee.net API。請注意 無須 API 金鑰即可呼叫函式。

請按照相同的程序為/volumes Google Book API。在程序的步驟 5 中,建立 API Proxy 時,請設定下列屬性 以參照 Google Books API:

  • Proxy 名稱:「mybooksearch」
  • Proxy 基本路徑:「/mybooksearch」
  • 現有 API:「https://www.googleapis.com/books/v1/volumes」

建立及部署 Proxy 後,您應該能夠使用 curl 呼叫 Proxy。 指令:

curl http://org_name-env_name.apigee.net/mybooksearch?q=davinci%20code

其中 org_nameenv_name 會指定您要在其中建立的機構和環境 也部署了 Proxy例如:

curl http://myorg-test.apigee.net/mybooksearch?q=davinci%20code

收集自訂分析資料

從 API 要求收集數據分析資料分為兩個步驟:

  1. 擷取所需資料並寫入變數。

    傳遞至 Edge API Analytics 的所有資料來自變數中儲存的值。 部分資料會自動儲存在預先定義的 Edge flow 變數中,例如 傳送至 API Proxy 的查詢參數值。請參閱流程變數總覽一文 ,進一步瞭解預先定義的流程變數

    使用「擷取變數」 政策,從要求或回應中擷取自訂內容,並將該項資料寫入變數。

  2. 將變數資料寫入 Edge API Analytics。

    使用統計資料收集器政策 ,將資料從變數寫入 Edge API Analytics。資料來源 邊緣流程變數 或「擷取變數」政策建立的變數

收集統計資料後,您可以使用 Edge Management UI 或 API 擷取 和篩選統計資料舉例來說,您可以產生一份自訂報表 ,其中書名對應傳送給 API 的查詢參數值。

使用擷取變數政策 擷取分析資料

您必須擷取 Analytics 資料並儲存在變數中,變數變數會由 您定義的邊緣或自訂變數,才能傳送至 API Analytics。如要將資料寫入變數,請使用擷取變數政策

擷取變數政策可使用 JSONPath 或 XPath 運算式剖析訊息酬載。 如要從 Google Book API 的 JSON 搜尋結果中擷取資訊,請使用 JSONPath 運算式。 例如,從 JSON 中的第一個項目擷取 averageRating 的值 結果陣列,JSONPath 運算式會如下所示:

$.items[0].volumeInfo.averageRating

評估 JSONPath 之後,擷取變數政策會將擷取到的值寫入變數。

在這個範例中,您使用「擷取變數」政策來建立四個變數:

  • responsejson.totalitems
  • responsejson.ratingscount
  • responsejson.avgrating
  • responsejson.pdf

對這些變數來說,responsejson 是變數「prefix」totalitemsratingscountavgratingpdf 是變數「名稱」

下方的「擷取變數」政策說明如何從 JSON 回應中擷取資料並加以寫入 自訂變數每個 <Variable> 元素都會使用 name 屬性,該屬性會 指定自訂變數的名稱和相關聯的 JSONPath 運算式。 <VariablePrefix> 元素會指定變數前置字串。

在 Edge UI 中將這項政策新增至 API Proxy。如果您是透過 XML 建構 API Proxy, 將政策新增至名為 ExtractVars.xml/apiproxy/policies 檔案:

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

使用統計資料收集器政策將資料寫入 Analytics 服務

使用統計資料收集器政策 ,將資料從變數寫入 Edge API Analytics。統計資料收集政策的格式如下:

<StatisticsCollector>
<DisplayName>Statistics Collector-1</DisplayName>
    <Statistics>
        <Statistic name="statName" ref="varName" type="dataType">defVal</Statistic>
       
    </Statistics>
</StatisticsCollector>

其中:

  • statName 會指定您在自訂報表中參照統計資料的名稱。
  • varName 會指定包含要收集數據分析資料的變數名稱。 這個變數可內建於 Edge 中,也可以是透過擷取變數政策建立的自訂變數。
  • dataType 會將記錄資料的資料類型指定為字串、整數、浮點值、長整數、雙精度浮點數或布林值。

    若是類型字串的資料,您可以將統計資料做為「維度」來參照。 納入自訂報表中如果是數值資料類型 (整數/浮點數/長/雙精度浮點數),需參照 以維度形式使用統計資料資料 或自訂報表中的指標

  • defValue 可選擇為自訂變數提供預設值,並傳送至 如果變數無法解析或未定義變數,則會改為 API Analytics。

在下方的範例中,您使用統計資料收集器政策來收集變數的相關資料 擷取。也可收集傳遞的查詢參數值 傳送給 API 呼叫參照查詢參數,方法是使用 流程變數

request.queryparam.queryParamName

針對名為「q」的查詢參數參照為:

request.queryparam.q

在 Edge UI 中將這項政策新增到您的 API Proxy。如果是使用 XML 建構 API Proxy, 在 /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 Proxy 流程。 針對此用途,必須在收到 Google Book API 的回應後執行政策 回應。因此,請將政策附加至 ProxyEndpoint 回應 PreFlow

下方的 ProxyEndpoint 設定範例會先執行名為 ExtractVars 的政策 剖析回應訊息。接著名為 AnalyzeBookResults 的政策會轉送 提供給 API Analytics:

<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 Proxy

完成上述變更後,您必須部署已設定的 API Proxy。

填入數據分析資料

部署 API Proxy 後,請呼叫該 Proxy,為 API Analytics 填入資料。您可以做的 請執行下列指令,每個指令都使用不同的書名:

Mobey Dick:

curl https://org_name-env_name.apigee.net/mybooksearch?q=mobey%20dick

Da Vinci 代碼:

curl https://org_name-env_name.apigee.net/mybooksearch?q=davinci%20code 

Gone Girl:

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 支援自訂報表,可讓您透過圖形圖表查看資料。
  • Metrics API 可讓您對 Edge API。您可以使用這個 API 建立自訂圖表,方法是使用 可以嵌入入口網站或自訂應用程式中
,瞭解如何調查及移除這項存取權。

使用 Edge UI 產生統計資料報表

自訂報表 可讓你深入查看特定的 API 統計資料,瞭解實際要查看的資料。 您可以使用任一指標建立自訂報表 和維度 此外,您可以使用透過 StatisticsCollector 政策)。

建立統計資料收集器政策時,您可以指定收集的資料類型。 如果是字串資料類型,請在自訂報表中以維度的形式參照統計資料。 如果是數值資料類型 (整數/浮點數/長/雙精度浮點數),請在自訂報表中參照統計日期 做為維度或指標詳情請參閱管理自訂報表

使用 Edge UI 產生自訂報表:

  1. 按照下方說明存取「自訂報表」頁面。

    邊緣

    如何透過 Edge UI 存取「自訂報表」頁面:

    1. 登入 apigee.com/edge
    2. 選取「Analyze」(分析) >自訂報表 >報表

    傳統版 Edge (Private Cloud)

    如要透過傳統版 Edge UI 存取「自訂報表」頁面,請按照下列步驟操作:

    1. 登入「http://ms-ip:9000」(ms-ip 為以下應用程式) Management Server 節點的 IP 位址或 DNS 名稱。
    2. 選取「Analytics」>報表

  2. 在「自訂報表」頁面中,按一下「+ 自訂報表」
  3. 指定「報表名稱」,例如 mybookreport
  4. 選取內建的「指標」,例如「流量」。 和「匯總函式」,例如 Sum

    或者,您也可以從使用 StatisticsCollector 政策建立的一部分,選取您所建立的數值統計資料。 例如,選取 ratingscountSumAggregate 函式

  5. 選取內建「維度」,例如「API Proxy」或 使用 StatsCollector 政策所建立的字串或數字統計資料。

    例如,選取「booktitle」。您的報告現在會顯示依 booktitle 區分的 ratingscount 總和:

    自訂書籍報告
  6. 選取「Save」(儲存)。該報表會顯示在所有自訂報表清單中。
  7. 如要執行報表,請選取報表名稱。根據預設,這份報表會顯示過去 1 小時的資料。

  8. 如要設定時間範圍,請選取右上角的日期,開啟「日期選取器」彈出式視窗。
  9. 選取「過去 7 天」。報告會更新,顯示每本書的評分總和:

    書籍報告圖表

使用 Edge API 取得統計資料

使用 Edge 指標 API 自訂分析資料的統計資料。在下方的要求範例中:

  • /stats 後方網址的資源指定所需的維度。 在本範例中,您將取得「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」篩選結果以及「達文西密碼」:

$ 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

使用解決方案建立工具建立自訂數據分析變數

解決方案建構工具可讓您透過簡單好用的方式,建立自訂數據分析變數 管理 UI 對話方塊

不妨參閱上一節「收集自訂 Analytics 資料」一節。 ,說明擷取變數和統計資料收集器政策如何運作 將自訂變數動態饋給至 Edge API Analytics。如畫面所示 按照這個模式運作 但能讓您輕鬆完成整個設定 開始透過使用者介面如有需要,請透過 UI 試試 Google Books API 範例,不要編輯 並手動附加政策

「方案建構工具」對話方塊可讓您直接在 UI 中設定數據分析變數。這個 工具會產生政策,並為您將該政策附加至 API Proxy。政策會擷取 來自要求或回應的關注變數,並將擷取的變數傳遞至 Edge API 數據分析

解決方案建構工具會建立新的擷取變數 統計資料收集器政策,並為它們設定不重複的名稱。「解決方案建構工具」不允許 政策在特定 Proxy 修訂版本中建立後,請返回並變更這些政策。目的地: 進行變更,直接透過政策編輯器編輯系統產生的政策。

  1. 前往 Edge UI 中 Proxy 的總覽頁面。
  2. 按一下「開發」
  3. 在「開發」頁面中,選取「工具」中的「自訂 Analytics 集合」 或前往 Google 試算表選單畫面上會出現「Solution Builder」對話方塊。
  4. 在「解決方案建構工具」對話方塊中,您必須先設定兩項政策:擷取變數與 統計資料收集器。然後設定政策的附加位置。
  5. 指定要擷取的資料:
    • 位置類型:選取要收集的資料類型和位置 從中收集資料您可以從要求或回應端選取資料。例如: 要求:查詢參數或回應:XML 內文。
    • 位置來源:找出要收集的資料。例如: 查詢參數的名稱,或回應主體中 XML 資料的 XPath。
  6. 指定統計資料收集器政策的變數名稱 (和類型) 會用來識別擷取的資料請參閱本主題的命名限制。

    您使用的名稱會顯示在 [尺寸] 下拉式選單中 自訂報表製作工具使用者介面中的指標
  7. 選擇 API Proxy 流程中要附加產生的政策 擷取 變數和統計資料收集器。如需指引 請參閱「將政策附加至 ProxyEndpoint 回應流程」。 為了使一切順利運作 附加至 API Proxy 流程。您需要將 政策階段時,您要交易的變數也會在範圍內 (已填入)。
  8. 按一下「+收集器」新增更多自訂變數。
  9. 完成後,按一下「Build Solution」

  10. 儲存及部署 Proxy。

您現在可以按照上述方式產生自訂報表。