Menganalisis konten pesan API menggunakan analisis kustom

Anda sedang melihat dokumentasi Apigee Edge.
Buka Dokumentasi Apigee X.
info

Analisis Edge API mengumpulkan dan menganalisis berbagai informasi statistik dari setiap Respons dan permintaan API. Informasi ini dikumpulkan secara otomatis dan kemudian dapat ditampilkan di UI Edge atau dengan menggunakan API metrik. Lihat metrik dan dimensi untuk mengetahui informasi selengkapnya tentang statistik ini.

Anda mungkin juga ingin mengumpulkan data analisis khusus yang spesifik untuk proxy API, Aplikasi, produk, atau developer. Misalnya, Anda mungkin ingin mengumpulkan data dari parameter kueri, {i>header <i}permintaan, isi permintaan dan respons, atau variabel yang Anda tentukan dalam API.

Topik ini menunjukkan cara menggunakan kebijakan StatisticsCollector untuk mengekstrak data analisis kustom dari permintaan/respons API dan memasukkan data tersebut ke Analisis Edge API. Kemudian, codelab ini akan menunjukkan cara melihat data analisis Anda dalam laporan di UI Edge atau dengan menggunakan Edge API.

Tentang Google Book API

Topik ini menjelaskan cara mengambil data analisis kustom dari permintaan proxy API ke API Google Buku. Google Books API memungkinkan Anda menelusuri buku berdasarkan judul, subjek, penulis, dan karakteristik lainnya.

Misalnya, buat permintaan ke endpoint /volumes untuk melakukan penelusuran berdasarkan judul buku. Teruskan satu parameter kueri ke Books API yang berisi judul buku:

curl https://www.googleapis.com/books/v1/volumes?q=davinci%20code

Panggilan menampilkan array JSON item yang ditemukan dan cocok dengan kriteria penelusuran. Di bawah ini adalah elemen array pertama dalam respons (perhatikan bahwa beberapa konten telah dihilangkan agar lebih praktis):

{
 "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"
    },
...
   }
  }

Perhatikan bahwa beberapa area respons telah ditandai:

  • Jumlah hasil penelusuran
  • Rating buku rata-rata
  • Jumlah rating
  • Ketersediaan buku versi PDF

Bagian berikut menjelaskan cara mengumpulkan statistik untuk area respons ini dan juga untuk parameter kueri, q, yang berisi kriteria penelusuran.

Membuat proxy API untuk Google Book API

Sebelum dapat mengumpulkan statistik untuk Google Book API, Anda harus membuat proxy Edge API yang memanggilnya. Kemudian Anda memanggil proxy API tersebut untuk membuat permintaan ke Google Book API.

Langkah 2: Membuat proxy API dari tutorial untuk membuat proxy API menjelaskan cara membuat proxy yang memanggil API https://mocktarget.apigee.net. Perhatikan bahwa proxy yang dijelaskan dalam tutorial tersebut tidak memerlukan kunci API untuk memanggilnya.

Gunakan prosedur yang sama untuk membuat proxy API bagi endpoint /volumes dari API Google Buku. Pada Langkah 5 dalam prosedur, saat Anda membuat proxy API, atur properti berikut untuk mereferensikan Google Books API:

  • Nama Proxy: "mybooksearch"
  • Jalur Dasar Proxy: "/mybooksearch"
  • API yang sudah ada: "https://www.googleapis.com/books/v1/volumes"

Setelah membuat dan men-deploy proxy, Anda seharusnya dapat memanggilnya menggunakan curl perintah dalam bentuk:

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

dengan org_name dan env_name menentukan organisasi dan lingkungan tempat Anda telah men-deploy proxy. Contoh:

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

Mengumpulkan data analisis kustom

Mengumpulkan data analisis dari permintaan API merupakan prosedur dua langkah:

  1. Ekstrak data yang diinginkan dan tuliskan ke variabel.

    Semua data yang diteruskan ke Analisis Edge API berasal dari nilai yang disimpan dalam variabel. Beberapa data secara otomatis disimpan dalam variabel flow Edge yang telah ditentukan sebelumnya, seperti nilai parameter kueri yang diteruskan ke proxy API. Lihat Ringkasan variabel alur untuk mengetahui informasi selengkapnya tentang variabel alur yang telah ditentukan.

    Gunakan Ekstrak Variabel untuk mengekstrak konten kustom dari permintaan atau respons dan menulis data tersebut ke variabel.

  2. Menulis data dari variabel ke Analisis Edge API.

    Gunakan kebijakan Statistics Collector untuk menulis data dari variabel ke Analisis Edge API. Data dapat berasal dari kelompok data Variabel flow Edge, atau variabel yang dibuat oleh kebijakan Ekstrak Variabel.

Setelah mengumpulkan data statistik, Anda bisa menggunakan UI atau API pengelolaan Edge untuk mengambil dan filter statistik. Misalnya, Anda dapat membuat laporan khusus yang menunjukkan peringkat rata-rata untuk setiap judul buku, dengan judul buku sesuai dengan nilai parameter kueri yang diteruskan ke API.

Menggunakan kebijakan Ekstrak Variabel untuk mengekstrak data analisis

Data analisis harus diekstrak dan disimpan ke suatu variabel, baik variabel alur yang telah ditentukan sebelumnya oleh Edge atau variabel kustom yang Anda tentukan, sebelum dapat diteruskan ke API Analytics. Untuk menulis data ke variabel, gunakan kebijakan Mengekstrak Variabel.

Kebijakan Extract Variables dapat mengurai payload pesan dengan ekspresi JSONPath atau XPath. Untuk mengekstrak informasi dari hasil penelusuran JSON Google Book API, gunakan ekspresi JSONPath. Misalnya, untuk mengekstrak nilai averageRating dari item pertama di JSON array hasil, ekspresi JSONPath adalah:

$.items[0].volumeInfo.averageRating

Setelah JSONPath dievaluasi, kebijakan Ekstrak Variabel akan menulis nilai yang diekstrak ke variabel.

Dalam contoh ini, Anda menggunakan kebijakan Ekstrak Variabel untuk membuat empat variabel:

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

Untuk variabel ini, responsejson adalah variabel awalan, dan totalitems, ratingscount, avgrating, dan pdf adalah nama variabel.

Kebijakan Ekstrak Variabel di bawah menunjukkan cara mengekstrak data dari respons JSON dan menulisnya ke variabel kustom. Setiap elemen <Variable> menggunakan atribut name yang menentukan nama variabel kustom dan ekspresi JSONPath yang terkait. Elemen <VariablePrefix> menentukan awalan variabel tersebut.

Tambahkan kebijakan ini ke proxy API Anda di UI Edge. Jika Anda membangun proxy API dalam XML, tambahkan kebijakan ke file di /apiproxy/policies bernama 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>

Gunakan kebijakan Statistics Collector untuk menulis data ke Layanan Analytics

Gunakan kebijakan Statistics Collector untuk menulis data dari variabel ke Analisis Edge API. Kebijakan Statistics Collectory memiliki bentuk sebagai berikut:

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

dalam hal ini:

  • statName menentukan nama yang Anda gunakan untuk mereferensikan data statistik dalam laporan kustom.
  • varName menentukan nama variabel yang berisi data analisis yang akan dikumpulkan. Variabel ini dapat dibangun ke Edge atau dapat berupa variabel khusus yang dibuat oleh kebijakan Ekstrak Variabel.
  • dataType menentukan jenis data yang direkam sebagai string, integer, float, long, double, atau boolean.

    Untuk data string jenis, Anda mereferensikan data statistik sebagai dimensi dalam laporan kustom. Untuk jenis data numerik (bilangan bulat/float/long/double), Anda mereferensikan data statistik baik sebagai dimensi atau metrik dalam laporan kustom.

  • defValue secara opsional memberikan nilai default untuk variabel kustom, yang dikirim ke Analisis API jika variabel tidak dapat diselesaikan atau variabel tidak ditentukan.

Pada contoh di bawah ini Anda menggunakan kebijakan Statistics Collector untuk mengumpulkan data untuk variabel yang dibuat oleh kebijakan "Ekstrak Variabel". Anda juga mengumpulkan nilai parameter kueri yang diteruskan ke setiap panggilan API. Referensikan parameter kueri dengan menggunakan variabel flow:

request.queryparam.queryParamName

Untuk parameter kueri bernama "q" merujuknya sebagai:

request.queryparam.q

Tambahkan kebijakan ini ke proxy API Anda di UI Edge atau, jika Anda membangun proxy API di XML, tambahkan file di bawah /apiproxy/policies bernama AnalyzeBookResults.xml, yang berisi konten berikut:

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

Melampirkan kebijakan ke alur respons ProxyEndpoint

Agar semuanya berfungsi dengan baik, kebijakan harus disertakan ke alur proxy API di lokasi yang sesuai. Dalam kasus penggunaan ini, kebijakan harus dijalankan setelah respons diterima dari Google Book API dan sebelum respons dikirim ke klien yang meminta. Oleh karena itu, lampirkan kebijakan ke PreFlow respons ProxyEndpoint.

Contoh konfigurasi ProxyEndpoint di bawah ini terlebih dahulu menjalankan kebijakan yang disebut ExtractVars untuk menguraikan pesan respons. Kebijakan yang disebut AnalyzeBookResults kemudian meneruskan nilai pada Analisis 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>

Men-deploy proxy API

Setelah melakukan perubahan ini, Anda perlu men-deploy proxy API yang telah dikonfigurasi.

Mengisi data analisis

Setelah Anda men-deploy proxy API, panggil proxy tersebut untuk mengisi data di Analytics API. Anda dapat melakukan ini dengan menjalankan perintah berikut, yang masing-masing menggunakan judul buku yang berbeda:

Aneh:

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

Da Vinci Code:

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

Gadis yang Pergi:

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

Game of Thrones:

curl https://org_name-env_name.apigee.net/mybooksearch?q=game%20of%20thrones   

Melihat data analisis

Edge menyediakan dua cara untuk melihat data analisis kustom Anda:

  • UI Edge mendukung laporan kustom yang memungkinkan Anda melihat data dalam diagram grafis.
  • Metrics API memungkinkan Anda mengambil data analisis dengan melakukan panggilan REST ke Edge API. Anda dapat menggunakan API untuk membuat visualisasi Anda sendiri dalam bentuk widget khusus yang yang dapat disematkan di portal atau aplikasi kustom.

Membuat laporan statistik menggunakan UI Edge

Laporan kustom memungkinkan Anda melihat perincian statistik API tertentu untuk melihat data yang tepat yang ingin Anda lihat. Anda dapat membuat laporan kustom menggunakan salah satu metrik dan dimensi yang terintegrasi dalam Edge. Selain itu, Anda dapat menggunakan salah satu data analisis yang telah Anda ekstrak menggunakan Kebijakan StatisticsCollector.

Saat membuat kebijakan Statistics Collector, Anda menentukan jenis data yang dikumpulkan. Untuk jenis data string, referensikan data statistik sebagai dimensi dalam laporan kustom. Untuk jenis data numerik (bilangan bulat/float/long/double), rujuk tanggal statistik dalam laporan kustom sebagai dimensi atau metrik. Lihat Mengelola laporan kustom untuk mengetahui informasi selengkapnya.

Membuat laporan kustom menggunakan UI Edge:

  1. Akses halaman Laporan Kustom, seperti yang dijelaskan di bawah.

    Edge

    Untuk mengakses halaman Laporan Kustom menggunakan UI Edge:

    1. Login ke apigee.com/edge.
    2. Pilih Analyze > Laporan Kustom > Laporan di menu navigasi kiri.

    Edge Klasik (Private Cloud)

    Untuk mengakses halaman Laporan Kustom menggunakan UI Edge Klasik:

    1. Login ke http://ms-ip:9000, dengan ms-ip sebagai Alamat IP atau nama DNS node Server Pengelolaan.
    2. Pilih Analtyics > Laporan di menu navigasi atas.

  2. Di halaman Laporan Kustom, klik +Laporan Kustom.
  3. Tentukan Nama Laporan, seperti mybookreport.
  4. Pilih Metrik bawaan, seperti Traffic, dan Fungsi agregat, seperti Sum.

    Atau, pilih salah satu statistik data numerik yang Anda buat menggunakan kebijakan StatisticsCollector. Misalnya, pilih ratingscount dan Fungsi agregat Sum.

  5. Pilih Dimensi bawaan, seperti Proxy API, atau salah satu statistik string atau numerik yang Anda buat dengan menggunakan kebijakan StatisticsCollector.

    Misalnya, pilih booktitle. Laporan Anda sekarang akan menampilkan jumlah ratingscount menurut booktitle:

    laporan buku kustom
  6. Pilih Simpan. Laporan akan muncul di daftar semua laporan kustom.
  7. Untuk menjalankan laporan, pilih nama laporan. Secara default, laporan menampilkan data selama satu jam terakhir.

  8. Untuk menetapkan rentang waktu, pilih tampilan tanggal di sudut kanan atas untuk membuka pop-up Pemilih tanggal.
  9. Pilih 7 hari terakhir. Laporan diperbarui untuk menampilkan jumlah peringkat per judul buku:

    Diagram Laporan Buku

Mendapatkan statistik menggunakan Edge API

Menggunakan Edge metrics API ke statistik pada data analisis khusus Anda. Dalam contoh permintaan di bawah ini:

  • Resource ke URL setelah /stats menentukan dimensi yang diinginkan. Dalam contoh ini, Anda mendapatkan data untuk dimensi booktitle.
  • Parameter kueri select untuk menentukan metrik untuk diambil. Permintaan ini menampilkan analisis berdasarkan jumlah ratingscount.
  • Parameter timeRange menentukan interval waktu untuk data yang ditampilkan. Rentang waktu menggunakan format:

    MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM

Panggilan API lengkap adalah:

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

Anda akan melihat respons dalam formulir:

{
  "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 metrics API memiliki banyak opsi. Misalnya, Anda dapat mengurutkan hasil dalam urutan menaik atau menurun. Pada contoh berikut, Anda menggunakan urutan menaik:

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

Hasil juga dapat difilter dengan menentukan nilai dimensi yang diinginkan. Pada contoh di bawah, laporan difilter menurut hasil untuk "Gone Girl" dan "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

Membuat variabel analisis kustom dengan Solution Builder

Pembuat Solusi memungkinkan Anda membuat variabel analisis kustom melalui analisis dialog UI pengelolaan izin.

Anda mungkin ingin membaca bagian sebelumnya, Mengumpulkan data analisis kustom, yang menjelaskan cara kerja kebijakan Ekstrak Variabel dan {i>Statistics Collector<i} bersama untuk memasukkan variabel khusus ke Analisis Edge API. Seperti yang akan Anda lihat, UI mengikuti pola yang sama, tetapi menyediakan cara yang mudah bagi Anda untuk mengonfigurasi semuanya melalui UI. Jika mau, coba contoh Google Books API menggunakan UI, bukan mengedit dan melampirkan kebijakan secara manual.

Dialog Solution Builder memungkinkan Anda mengonfigurasi variabel analisis langsung di UI. Ini membuat kebijakan dan melampirkannya ke proxy API untuk Anda. Ekstraksi kebijakan variabel yang diinginkan dari permintaan atau respons dan meneruskan variabel yang diekstrak ke Edge Analisis API.

Pembuat Solusi membuat Variabel Ekstrak baru dan Kebijakan Statistics Collector dan memberinya nama yang unik. Pembuat Solusi tidak mengizinkan Anda kembali dan mengubah kebijakan ini setelah dibuat dalam revisi {i>proxy<i} yang diberikan. Kepada membuat perubahan, mengedit kebijakan yang dibuat secara langsung di editor kebijakan.

  1. Buka halaman Overview untuk proxy Anda di UI Edge.
  2. Klik Develop.
  3. Di halaman Pengembangan, pilih Koleksi Analytics Kustom dari Alat Google Spreadsheet. Dialog Solution Builder akan muncul.
  4. Dalam dialog Pembuat Solusi, pertama-tama Anda mengonfigurasi dua kebijakan: Ekstrak Variabel dan Kolektor Statistik. Kemudian, Anda akan mengonfigurasi tempat untuk melampirkan kebijakan tersebut.
  5. Tentukan data yang ingin Anda ekstrak:
    • Jenis Lokasi: Pilih jenis data yang ingin Anda kumpulkan dan tempatnya untuk mengumpulkannya. Anda dapat memilih data dari sisi permintaan atau respons. Misalnya, Permintaan: Parameter Kueri atau Respons: Isi XML.
    • Sumber Lokasi: Identifikasi data yang ingin Anda kumpulkan. Misalnya, nama parameter kueri atau XPath untuk data XML dalam isi respons.
  6. Tentukan name (dan jenis) variabel yang kebijakan Statistics Collector untuk mengidentifikasi data yang diekstrak. Lihat batasan penamaan dalam topik ini.

    Nama yang Anda gunakan akan muncul di menu dropdown untuk Dimensi atau Metrics di UI pembuat Laporan Kustom.
  7. Pilih tempat Anda ingin melampirkan kebijakan yang dihasilkan di alur proxy API Ekstrak Variabel dan Kolektor Statistik. Sebagai panduan, lihat "Melampirkan kebijakan ke Alur respons ProxyEndpoint". Agar semuanya berjalan baik, kebijakan harus dikaitkan ke Flow proxy API di lokasi yang sesuai. Anda harus memasang pada tahapan alur di mana variabel yang terperangkap berada dalam ruang lingkup (diisi).
  8. Klik +Kolektor untuk menambahkan variabel kustom lainnya.
  9. Setelah selesai, klik Build Solution.

  10. Simpan dan deploy proxy.

Sekarang Anda dapat membuat laporan kustom untuk data seperti yang dijelaskan di atas.