Menggunakan metrics API

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Lihat dokumentasi Apigee Edge.

Apigee mencatat berbagai data operasional dan bisnis yang mengalir di seluruh API. Metrik yang berasal dari data ini berguna untuk pemantauan operasional dan pemantauan bisnis. Dengan menggunakan Analisis Apigee, Anda dapat, misalnya, menentukan API mana yang berperforma baik atau buruk, developer mana yang menghasilkan traffic dengan nilai tertinggi, dan aplikasi mana yang menyebabkan masalah terbanyak untuk layanan backend Anda.

Untuk membantu mengakses data metrik ini dengan mudah, gunakan Metrics API saat Anda perlu mengotomatiskan fungsi analisis tertentu, seperti mengambil metrik secara berkala menggunakan klien atau skrip otomatisasi. Anda juga dapat menggunakan API untuk membuat visualisasi sendiri dalam bentuk widget kustom yang dapat disematkan di portal atau aplikasi kustom.

Untuk mempelajari cara menggunakan Analytics di UI Apigee, lihat Ringkasan Analytics Apigee.

Tentang API metrik

Ada dua cara untuk menggunakan API metrik:

  • Dapatkan metrik untuk organisasi dan lingkungan selama jangka waktu tertentu, seperti satu jam, satu hari, atau satu minggu. Metode ini menampilkan metrik mentah untuk seluruh organisasi dan lingkungan.

    Misalnya, untuk minggu sebelumnya, Anda ingin mendapatkan:

    • Jumlah error kebijakan
    • Waktu respons rata-rata
    • Total traffic
  • Dapatkan metrik yang dikelompokkan menurut dimensi selama jangka waktu tertentu untuk organisasi dan lingkungan.

    Misalnya, untuk minggu sebelumnya, Anda dapat menggunakan dimensi untuk mengelompokkan metrik menurut produk API, proxy API, dan email developer (yang juga dapat berupa ID AppGroup) untuk mendapatkan:

    • Jumlah error kebijakan per produk API
    • Waktu respons rata-rata per proxy API
    • Total traffic per email developer

    Untuk mengelola hasil yang ditampilkan, Metrics API mendukung fitur berikut:

    Untuk mengetahui informasi selengkapnya, lihat referensi API metrik.

    Mulai menggunakan Metrics API

    URL permintaan untuk Metrics API adalah:

    https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats[dimension]

    Misalnya, untuk mendapatkan metrik yang dikelompokkan menurut proxy API, gunakan URL berikut untuk memanggil Apigee API:

    https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/apiproxy?timeRange=07/21/2018+00:00:00~08/23/2018+00:00:00

    Menghilangkan dimensi untuk menampilkan metrik mentah untuk seluruh organisasi dan lingkungan selama jangka waktu yang ditentukan:

    https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats?timeRange=07/21/2019+00:00:00~08/23/2018+00:00:00

    Menentukan metrik yang akan ditampilkan

    Gunakan parameter kueri select untuk menentukan metrik yang akan diambil, dan fungsi agregasi opsional, dalam bentuk:

    ?select=metric

    atau:

    ?select=aggFunction(metric)

    Dengan:

    • metric menentukan data yang ingin Anda tampilkan. Misalnya, jumlah permintaan API, cache yang ditemukan, atau error kebijakan. Lihat metrik untuk tabel yang menentukan nama metrik yang akan digunakan dengan parameter kueri select.
    • aggFunction menentukan fungsi agregasi opsional yang dijalankan terhadap metrik. Misalnya, Anda dapat menggunakan fungsi agregasi berikut dengan metrik latensi pemrosesan:

      • avg: Menampilkan latensi pemrosesan rata-rata.
      • min: Menampilkan latensi pemrosesan minimum.
      • max: Menampilkan latensi pemrosesan maksimum.
      • sum: Menampilkan jumlah semua latensi pemrosesan.
      • p50: Menampilkan persentil ke-50 untuk latensi pemrosesan, yang dihitung menggunakan percentile(latency_metric,50)&aggTable=agg_percentile.
      • p95: Menampilkan persentil ke-95 untuk latensi pemrosesan, yang dihitung menggunakan percentile(latency_metric,95)&aggTable=agg_percentile.
      • p99: Menampilkan persentil ke-99 untuk latensi pemrosesan, yang dihitung menggunakan percentile(latency_metric,99)&aggTable=agg_percentile.

      latency_metric dapat berupa:

      • total_response_time
      • target_response_time
      • response_processing_latency
      • request_processing_latency

      Tidak semua metrik mendukung semua fungsi agregasi. Dokumentasi tentang metrik berisi tabel yang menentukan nama metrik dan fungsi (sum, avg, min, max) yang didukung oleh metrik.

    Misalnya, untuk menampilkan jumlah rata-rata transaksi, yang berarti permintaan proxy API, per detik:

    ?select=tps

    Perhatikan bahwa contoh ini tidak memerlukan fungsi agregasi. Contoh berikutnya menggunakan fungsi agregasi untuk menampilkan jumlah hit cache:

    ?select=sum(cache_hit)

    Anda dapat menampilkan beberapa metrik untuk satu panggilan API. Untuk mendapatkan metrik jumlah kesalahan kebijakan dan ukuran permintaan rata-rata, tetapkan parameter kueri select menggunakan daftar metrik yang dipisahkan koma:

    ?select=sum(policy_error),avg(request_size)

    Menentukan jangka waktu

    API metrik menampilkan data untuk jangka waktu tertentu. Gunakan parameter kueri timeRange (maks. 6 bulan) untuk menentukan jangka waktu, dalam bentuk:

    ?timeRange=MM/DD/YYYY%20HH:MM~MM/DD/YYYY%20HH:MM

    Perhatikan %20 sebelum HH:MM. Parameter timeRange memerlukan karakter spasi yang dienkode ke URL sebelum HH:MM, atau karakter +, seperti dalam: MM/DD/YYYY+HH:MM~MM/DD/YYYY+HH:MM.

    Contoh:

    ?timeRange=03/01/2018%2000:00~03/30/2018%2023:59

    Jangan gunakan 24:00 sebagai waktu karena akan kembali ke 00:00. Gunakan 23.59 sebagai gantinya.

    Contoh pemanggilan API metrik

    Bagian ini memberikan contoh penggunaan Metrics API. Lihat Contoh Metrics API untuk contoh tambahan.

    Menampilkan jumlah total panggilan yang dilakukan ke API Anda selama satu bulan

    Untuk menampilkan jumlah total panggilan yang dilakukan ke semua API di organisasi dan lingkungan Anda selama satu bulan, gunakan panggilan yang serupa dengan berikut ini:

    curl -v "https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/?select=sum(message_count)&timeRange=03/01/2018%2000:00~03/31/2018%2023:59" \
      -H "Authorization: Bearer $TOKEN"

    Dengan $TOKEN ditetapkan ke token akses OAuth 2.0 Anda, seperti yang dijelaskan dalam Mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi tentang opsi curl yang digunakan dalam contoh ini, lihat Menggunakan curl. Untuk mengetahui deskripsi variabel lingkungan yang dapat Anda gunakan, lihat Menetapkan variabel lingkungan untuk permintaan API Apigee.

    Berikut adalah contoh respons:

    {
      "environments": [
        {
          "metrics": [
            {
              "name": "sum(message_count)",
              "values": [
                "7.44944088E8"
              ]
            }
          ],
          "name": "prod"
        }
      ],
    ...
    }

    Menampilkan jumlah total pesan per proxy API selama dua hari

    Dalam contoh ini, Anda menampilkan metrik untuk jumlah permintaan yang diterima oleh semua proxy API selama periode dua hari. Parameter kueri select menentukan fungsi agregat sum untuk metrik message_count pada dimensi apiproxy. Laporan menampilkan throughput pesan permintaan untuk semua API untuk traffic yang diterima antara awal 20/6/2018 dan akhir 21/6/2018, dalam waktu UTC:

    curl  https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/apiproxy?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59" \
      -H "Authorization: Bearer $TOKEN"

    Dengan $TOKEN ditetapkan ke token akses OAuth 2.0 Anda, seperti yang dijelaskan dalam Mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi tentang opsi curl yang digunakan dalam contoh ini, lihat Menggunakan curl. Untuk mengetahui deskripsi variabel lingkungan yang dapat Anda gunakan, lihat Menetapkan variabel lingkungan untuk permintaan API Apigee.

    Berikut adalah contoh respons:

    {
      "environments" : [ {
        "dimensions" : [ {
          "metrics" : [ {
            "name" : "sum(message_count)",
            "values" : [ {
              "timestamp" : 1498003200000,
              "value" : "1100.0"
            } ]
          } ],
          "name" : "target-reroute"
        } ],
        "name" : "test"
      } ]...
    }

    Respons ini menunjukkan bahwa 1.100 pesan diterima oleh satu proxy API yang disebut 'target-reroute' yang berjalan di lingkungan pengujian antara awal 20/6/2018 dan akhir 21/6/2018.

    Untuk mendapatkan metrik untuk dimensi lain, tentukan dimensi lain sebagai parameter URI. Misalnya, Anda dapat menentukan dimensi developer_app untuk mengambil metrik aplikasi developer. Panggilan API berikut menampilkan total throughput (pesan yang diterima) dari aplikasi mana pun untuk interval waktu yang ditentukan:

    curl  https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/developer_app?"select=sum(message_count)&timeRange=06/20/2018%2000:00~06/21/2018%2023:59&timeUnit=day" \
      -H "Authorization: Bearer $TOKEN"

    Berikut adalah contoh respons:

    {
      "environments": [
        {
          "dimensions": [
            {
              "metrics": [
                {
                  "name": "sum(message_count)",
                  "values": [
                    {
                      "timestamp": 1498003200000,
                      "value": "886.0"
                    }
                  ]
                }
              ],
              "name": "Test-App"
            },
            {
              "metrics": [
                {
                  "name": "sum(message_count)",
                  "values": [
                    {
                      "timestamp": 1498003200000,
                      "value": "6645.0"
                    }
                  ]
                }
              ],
              "name": "johndoe_app"
            },
            {
              "metrics": [
                {
                  "name": "sum(message_count)",
                  "values": [
                    {
                      "timestamp": 1498003200000,
                      "value": "1109.0"
                    }
                  ]
                }
              ],
              "name": "marys_app"
            }
      ]...
    }

    Mengurutkan hasil menurut peringkat relatif

    Sering kali saat mendapatkan metrik, Anda hanya ingin mendapatkan hasil untuk sebagian kecil dari total kumpulan data. Biasanya, Anda perlu mendapatkan hasil untuk "10 teratas", misalnya, "10 API paling lambat", "10 aplikasi paling aktif". Anda dapat melakukannya menggunakan parameter kueri topk sebagai bagian dari permintaan.

    Misalnya, Anda mungkin tertarik untuk mengetahui siapa developer terbaik Anda, yang diukur berdasarkan throughput, atau siapa yang memiliki performa terburuk (yaitu, 'top slowest') API ditargetkan berdasarkan latensi.

    topk (yang berarti entitas 'k teratas') memungkinkan pelaporan pada entitas yang terkait dengan nilai tertinggi untuk metrik tertentu. Hal ini memungkinkan Anda memfilter metrik untuk daftar entitas yang menunjukkan kondisi tertentu.

    Misalnya, untuk menemukan URL target mana yang paling rentan terhadap error selama seminggu terakhir, parameter topk ditambahkan ke permintaan, dengan nilai 1:

    curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&topk=1" \
      -H "Authorization: Bearer $TOKEN"

    Dengan $TOKEN ditetapkan ke token akses OAuth 2.0 Anda, seperti yang dijelaskan dalam Mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi tentang opsi curl yang digunakan dalam contoh ini, lihat Menggunakan curl. Untuk mengetahui deskripsi variabel lingkungan yang dapat Anda gunakan, lihat Menetapkan variabel lingkungan untuk permintaan API Apigee.

    Berikut adalah contoh respons:

    {
      "environments": [
        {
          "dimensions": [
            {
              "metrics": [
                {
                  "name": "sum(is_error)",
                  "values": [
                    {
                      "timestamp": 1494201600000,
                      "value": "12077.0"
                    }
                  ]
                }
              ],
              "name": "http://api.company.com"
            }
          ]...
    }

    Hasil permintaan ini adalah serangkaian metrik yang menunjukkan bahwa URL target yang paling banyak bug-nya adalah http://api.company.com.

    Anda juga dapat menggunakan parameter topk untuk mengurutkan API yang mengalami throughput tertinggi. Contoh berikut mengambil metrik pada API peringkat teratas, yang ditentukan oleh throughput tertinggi dalam seminggu terakhir:

    curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV}/stats/apiproxy?"select=sum(message_count)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=day&sortby=sum(message_count)&sort=DESC&topk=1" \
      -H "Authorization: Bearer $TOKEN"

    Berikut adalah contoh respons:

    {
      "environments": [
        {
          "dimensions": [
            {
              "metrics": [
                {
                  "name": "sum(message_count)",
                  "values": [
                    {
                      "timestamp": 1494720000000,
                      "value": "5750.0"
                    },
                    {
                      "timestamp": 1494633600000,
                      "value": "5752.0"
                    },
                    {
                      "timestamp": 1494547200000,
                      "value": "5747.0"
                    },
                    {
                      "timestamp": 1494460800000,
                      "value": "5751.0"
                    },
                    {
                      "timestamp": 1494374400000,
                      "value": "5753.0"
                    },
                    {
                      "timestamp": 1494288000000,
                      "value": "5751.0"
                    },
                    {
                      "timestamp": 1494201600000,
                      "value": "5752.0"
                    }
                  ]
                }
              ],
              "name": "testCache"
            }
          ],
          "name": "test"
        }
      ]...
    }

    Memfilter hasil

    Untuk perincian yang lebih besar, Anda dapat memfilter hasil untuk membatasi data yang ditampilkan. Saat menggunakan filter, Anda harus menggunakan dimensi sebagai properti filter.

    Misalnya, Anda perlu mengambil jumlah error dari layanan backend yang difilter menurut kata kerja HTTP permintaan. Tujuan Anda adalah mengetahui jumlah permintaan POST dan PUT yang menghasilkan error per layanan backend. Untuk melakukannya, Anda menggunakan dimensi target_url bersama dengan filter request_verb:

    curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/target_url?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&filter=(request_verb%20in%20'POST','PUT')" \
      -H "Authorization: Bearer $TOKEN"

    Dengan $TOKEN ditetapkan ke token akses OAuth 2.0 Anda, seperti yang dijelaskan dalam Mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi tentang opsi curl yang digunakan dalam contoh ini, lihat Menggunakan curl. Untuk mengetahui deskripsi variabel lingkungan yang dapat Anda gunakan, lihat Menetapkan variabel lingkungan untuk permintaan API Apigee.

    Berikut adalah contoh respons:

    {
      "environments" : [
        {
          "dimensions" : [
            {
              "metrics" : [
                {
                  "name" : "sum(is_error)",
                  "values" : [
                    {
                      "timestamp" : 1519516800000,
                      "value" : "1.0"
                    }
                  ]
              }
            ],
            "name" : "testCache"
            }
          ],
          "name" : "test"
        }
      ]...
    }

    Memberi nomor halaman pada hasil

    Di lingkungan produksi, beberapa permintaan ke Apigee Analytics API menampilkan set data yang sangat besar. Untuk memudahkan menampilkan set data besar dalam konteks aplikasi berbasis UI, API secara native mendukung penomoran halaman.

    Untuk memaginasi hasil, gunakan parameter kueri offset dan limit, bersama dengan parameter pengurutan sortby untuk memastikan pengurutan item yang konsisten.

    Misalnya, permintaan berikut kemungkinan akan menampilkan set data yang besar, karena mengambil metrik untuk semua error di semua API dalam lingkungan produk selama seminggu terakhir.

    curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)" \
      -H "Authorization: Bearer $TOKEN"

    Dengan $TOKEN ditetapkan ke token akses OAuth 2.0 Anda, seperti yang dijelaskan dalam Mendapatkan token akses OAuth 2.0. Untuk mengetahui informasi tentang opsi curl yang digunakan dalam contoh ini, lihat Menggunakan curl. Untuk mengetahui deskripsi variabel lingkungan yang dapat Anda gunakan, lihat Menetapkan variabel lingkungan untuk permintaan API Apigee.

    Jika aplikasi berbasis UI Anda dapat menampilkan 50 hasil per halaman secara wajar, Anda dapat menetapkan batas ke 50. Karena 0 dihitung sebagai item pertama, panggilan berikut akan menampilkan item 0-49 dalam urutan menurun (sort=DESC adalah default).

    curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=0" \
      -H "Authorization: Bearer $TOKEN"

    Untuk 'halaman' hasil kedua, gunakan parameter kueri offset, seperti berikut. Perhatikan bahwa limit dan offset identik. Hal ini karena 0 dihitung sebagai item pertama. Dengan batas 50 dan offset 0, item 0-49 akan ditampilkan. Dengan offset 50, item 50-99 akan ditampilkan.

    curl https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/stats/apiproxy?"select=sum(is_error)&timeRange=05/08/2018%2000:00~05/15/2018%2000:00&timeUnit=week&sortby=sum(is_error)&limit=50&offset=50" \
      -H "Authorization: Bearer $TOKEN"