Menganalisis konten pesan API menggunakan analisis kustom

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

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

Anda mungkin juga ingin mengumpulkan data analisis kustom khusus untuk proxy, Aplikasi, produk, atau developer API Anda. Misalnya, Anda mungkin ingin mengumpulkan data dari parameter kueri, header permintaan, isi permintaan dan respons, atau variabel yang ditentukan dalam API.

Topik ini menunjukkan cara menggunakan kebijakan Statisticscollector untuk mengekstrak data analisis kustom dari permintaan/respons API dan memasukkan data tersebut ke Edge API Analytics. Kemudian, bagian ini menunjukkan cara melihat data analisis 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 Google Books API. 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 tersebut menampilkan array JSON dari item yang ditemukan yang cocok dengan kriteria penelusuran. Di bawah ini adalah elemen array pertama dalam respons (perlu diperhatikan 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 disorot:

  • Jumlah hasil penelusuran
  • Rating buku rata-rata
  • Jumlah rating
  • Ketersediaan buku dalam 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. Anda kemudian memanggil proxy API itu untuk membuat permintaan ke Google Book API.

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

Gunakan prosedur yang sama guna membuat proxy API untuk endpoint /volumes dari Google Book API. Pada Langkah 5 prosedur, saat Anda membuat proxy API, tetapkan 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 dengan menggunakan perintah curl dalam formulir:

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

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

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

Mengumpulkan data analisis kustom

Mengumpulkan data analisis dari permintaan API adalah prosedur dua langkah:

  1. Ekstrak data yang diinginkan dan tuliskan ke variabel.

    Semua data yang diteruskan ke Edge API Analytics 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 kebijakan Ekstrak Variabel untuk mengekstrak konten kustom dari permintaan atau respons dan tulis data tersebut ke variabel.

  2. Menulis data dari variabel ke Edge API Analytics.

    Gunakan kebijakan Kolektor Statistik untuk menulis data dari variabel ke Analisis Edge API. Data dapat berasal dari variabel alur Edge yang telah ditentukan, atau variabel yang dibuat oleh kebijakan Ekstrak Variabel.

Setelah mengumpulkan data statistik, Anda dapat menggunakan UI atau API pengelolaan Edge untuk mengambil dan memfilter statistik. Misalnya, Anda dapat membuat laporan kustom yang menampilkan rating rata-rata untuk setiap judul buku, dengan judul buku sesuai dengan nilai parameter kueri yang diteruskan ke API.

Gunakan kebijakan Ekstrak Variabel untuk mengekstrak data analisis

Data Analytics harus diekstrak dan disimpan ke variabel, baik sebagai 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, Anda dapat menggunakan kebijakan Ekstrak Variabel.

Kebijakan Ekstrak Variabel 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 dalam array hasil JSON, 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 awalan variabel, 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 terkait. Elemen <VariablePrefix> menentukan bahwa awalan variabel.

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

Menggunakan kebijakan Kolektor Statistik untuk menulis data ke Layanan Analytics

Gunakan kebijakan Kolektor Statistik untuk menulis data dari variabel ke Edge API Analytics. Kebijakan Kolektor Statistik memiliki formulir 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 dalam Edge atau dapat berupa variabel khusus yang dibuat dengan kebijakan Ekstrak Variabel.
  • dataType menentukan jenis data dari data yang direkam sebagai string, bilangan bulat, 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/ganda), Anda mereferensikan data statistik sebagai dimensi atau metrik dalam laporan kustom.

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

Pada contoh di bawah, Anda menggunakan kebijakan Kolektor Statistik untuk mengumpulkan data untuk variabel yang dibuat oleh kebijakan Ekstrak Variabel. Anda juga mengumpulkan nilai parameter kueri yang diteruskan ke setiap panggilan API. Rujuk parameter kueri menggunakan variabel flow yang telah ditentukan:

request.queryparam.queryParamName

Untuk parameter kueri bernama "q", referensikan sebagai:

request.queryparam.q

Tambahkan kebijakan ini ke proxy API Anda di UI Edge atau, jika Anda membangun proxy API dalam XML, tambahkan file dengan /apiproxy/policies bernama AnalyzeBookResults.xml, dengan 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 dilampirkan ke alur proxy API di lokasi yang sesuai. Dalam kasus penggunaan ini, kebijakan harus dieksekusi 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 mengurai pesan respons. Kebijakan yang disebut AnalyzeBookResults kemudian meneruskan nilai tersebut ke 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>

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 untuk mengisi data di API Analytics. Anda dapat melakukannya dengan menjalankan perintah berikut, yang masing-masing menggunakan judul buku yang berbeda:

Dick Mobey:

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

Kode Da Vinci:

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

Perempuan 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 ini untuk membuat visualisasi Anda sendiri dalam bentuk widget kustom yang dapat disematkan di portal atau aplikasi kustom.

Membuat laporan statistik menggunakan Edge UI

Laporan kustom memungkinkan Anda melihat perincian statistik API tertentu untuk melihat data persis yang ingin Anda lihat. Anda dapat membuat laporan kustom menggunakan salah satu metrics dan dimensi yang terdapat di Edge. Selain itu, Anda dapat menggunakan data analisis mana pun yang diekstrak dengan menggunakan kebijakan Statistics Collector.

Saat membuat kebijakan Kolektor Statistik, Anda menentukan jenis data dari data yang dikumpulkan. Untuk jenis data string, referensikan data statistik sebagai dimensi dalam laporan kustom. Untuk jenis data numerik (bilangan bulat/float/panjang/ganda), referensikan tanggal statistik dalam laporan kustom sebagai dimensi atau sebagai 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 Custom Reports menggunakan Edge UI:

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

    Edge Klasik (Private Cloud)

    Untuk mengakses halaman Custom Reports menggunakan UI Edge Klasik:

    1. Login ke http://ms-ip:9000, dengan ms-ip yang merupakan 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 dengan menggunakan kebijakan Statistics Collector. Misalnya, pilih ratingscount dan Fungsi agregat dari Sum.

  5. Pilih Dimensi bawaan, seperti Proxy API, atau string atau statistik numerik apa pun yang Anda buat menggunakan kebijakan Statisticscollector.

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

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

  8. Untuk menyetel 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 rating per judul buku:

    Diagram Laporan Buku

Mendapatkan statistik menggunakan Edge API

Gunakan Edge Metrics API untuk statistik data analisis kustom 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 metrics yang akan 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 minat. Pada contoh di bawah, laporan difilter berdasarkan 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

Solution Builder memungkinkan Anda membuat variabel analisis kustom melalui dialog UI pengelolaan yang mudah digunakan.

Anda mungkin ingin membaca bagian sebelumnya yang berjudul Mengumpulkan data analisis kustom, yang menjelaskan cara kerja kebijakan Ekstrak Variabel dan Kolektor Statistik secara berdampingan untuk memberikan feed variabel kustom ke Edge API Analytics. Seperti yang akan Anda lihat, UI mengikuti pola yang sama ini, tetapi menyediakan cara mudah bagi Anda untuk mengonfigurasi berbagai hal sepenuhnya melalui UI. Jika ingin, coba contoh Google Books API menggunakan UI, bukan mengedit dan melampirkan kebijakan secara manual.

Dialog Pembuat Solusi memungkinkan Anda mengonfigurasi variabel analisis secara langsung di UI. Alat ini membuat kebijakan dan melampirkannya ke proxy API untuk Anda. Kebijakan tersebut akan mengekstrak variabel yang diminati dari permintaan atau respons dan meneruskan variabel yang diekstrak ke Edge API Analytics.

Pembuat Solusi membuat kebijakan Variabel Ekstrak dan Kolektor Statistik baru, lalu memberinya nama unik. Solution Builder tidak mengizinkan Anda kembali dan mengubah kebijakan ini setelah dibuat dalam revisi proxy tertentu. Untuk melakukan perubahan, edit kebijakan yang dibuat langsung di editor kebijakan.

  1. Buka halaman Overview untuk proxy Anda di Edge UI.
  2. Klik Develop.
  3. Di halaman Kembangkan, pilih Pengumpulan Analytics Kustom dari menu Alat. Dialog Solution Builder akan muncul.
  4. Pada 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 tempat pengumpulannya. Anda dapat memilih data dari sisi permintaan atau respons. Misalnya, Request: 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 nama (dan jenis) variabel yang akan digunakan oleh kebijakan Kolektor Statistik untuk mengidentifikasi data yang diekstrak. Lihat pembatasan penamaan dalam topik ini.

    Nama yang Anda gunakan akan muncul dalam menu dropdown untuk Dimensi atau Metrik di UI pembuat Laporan Kustom.
  7. Pilih lokasi di alur proxy API tempat Anda ingin melampirkan kebijakan yang dihasilkan, Ekstrak Variabel dan Kolektor Statistik. Untuk panduan, lihat "Melampirkan kebijakan ke Alur respons ProxyEndpoint". Agar semuanya berfungsi dengan baik, kebijakan harus dilampirkan ke Flow proxy API di lokasi yang sesuai. Anda harus menyertakan kebijakan pada tahap dalam alur tempat variabel yang Anda tangkap berada dalam cakupan (telah terisi).
  8. Klik +Kolektor untuk menambahkan variabel kustom lainnya.
  9. Setelah selesai, klik Build Solution.

  10. Simpan dan deploy proxy.

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