Menggunakan API laporan kustom asinkron

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat dokumentasi Apigee Edge.

Apigee Analytics menyediakan serangkaian dasbor interaktif, generator laporan kustom, dan kemampuan terkait yang lengkap. Namun, fitur ini dimaksudkan untuk bersifat interaktif: Anda mengirimkan permintaan API atau UI, dan permintaan diblokir hingga server analytics memberikan respons.

Namun, permintaan analisis dapat mencapai batas waktu jika memerlukan waktu terlalu lama untuk diselesaikan. Jika permintaan kueri perlu memproses data dalam jumlah besar (misalnya, ratusan GB), kueri tersebut mungkin gagal karena waktu tunggu habis.

Pemrosesan kueri asinkron memungkinkan Anda membuat kueri untuk set data yang sangat besar dan mengambil hasilnya di lain waktu. Anda mungkin perlu mempertimbangkan untuk menggunakan kueri offline ketika Anda mendapati bahwa kueri interaktif Anda mengalami batas waktu habis. Beberapa situasi di mana pemrosesan kueri asinkron mungkin menjadi alternatif yang baik meliputi:

  • Menganalisis dan membuat laporan yang mencakup interval waktu yang besar.
  • Menganalisis data dengan berbagai dimensi pengelompokan dan batasan lain yang menambah kompleksitas kueri.
  • Mengelola kueri saat Anda mendapati bahwa volume data telah meningkat secara signifikan untuk beberapa pengguna atau organisasi.

Dokumen ini menjelaskan cara memulai kueri asinkron menggunakan API. Anda juga dapat menggunakan UI, seperti yang dijelaskan dalam Menjalankan laporan kustom.

Membandingkan Reports API dengan UI

Membuat dan mengelola laporan kustom menjelaskan cara menggunakan UI Apigee untuk membuat dan menjalankan laporan kustom. Anda dapat menjalankan laporan tersebut secara sinkron atau asinkron.

Sebagian besar konsep untuk membuat laporan kustom dengan UI berlaku untuk penggunaan API. Artinya, saat membuat laporan kustom dengan API, Anda menentukan metrik, dimensi, dan filter yang sudah ada di Apigee.

Perbedaan utama antara laporan yang dihasilkan dengan API dan yang dihasilkan melalui UI adalah bahwa laporan yang dihasilkan dengan API ditulis ke dalam file CSV atau JSON (dipisahkan oleh baris baru), sedangkan laporan yang dihasilkan melalui UI ditampilkan di UI.

Batas waktu pada kueri

Apigee memberlakukan batasan maksimum 365 hari untuk rentang waktu kueri asinkron.

Cara membuat kueri analisis asinkron

Anda membuat kueri analitik asinkron dalam tiga langkah:

  1. Kirim kueri.

  2. Dapatkan status kueri.

  3. Ambil hasil kueri.

Langkah 1. Kirim kueri

Anda harus mengirim permintaan POST ke Queries API. API ini memberi tahu Apigee untuk memproses permintaan Anda di latar belakang. Jika pengiriman permintaan berhasil, API akan mengembalikan status 201 dan ID yang akan Anda gunakan untuk merujuk permintaan tersebut pada langkah selanjutnya.

Contoh:

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @json-query-file

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 Apigee API.

Isi permintaan adalah deskripsi JSON dari kueri. Dalam isi JSON, tentukan metrics, dimensions, dan filters yang mendefinisikan laporan.

Di bawah ini adalah contoh file json-query-file:

{ 
   "metrics":  [
     {
         "name": "message_count",
         "function": "sum",
         "alias": "sum_txn"
    }
        ],
    "dimensions": ["apiproxy"],
    "timeRange": "last24hours",
    "limit": 14400,
    "filter":"(message_count ge 0)"
}

Lihat Tentang isi permintaan di bawah ini untuk deskripsi lengkap tentang sintaks isi permintaan.

Contoh respons:

Perhatikan bahwa ID kueri 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd disertakan dalam respons. Selain status HTTP 201, state enqueued berarti permintaan berhasil.

HTTP/1.1 201 Created

{  
  "self":"/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
  "created":"2018-05-10T07:11:10Z",
  "state":"enqueued",
  "error":"false",
}

Langkah 2. Dapatkan status kueri

Untuk meminta status kueri, kirim permintaan GET ke Queries API. Anda memberikan ID kueri yang ditampilkan dari panggilan POST. Contoh:

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID" \
  -X GET \
  -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 Apigee API.

Contoh respons:

Jika kueri masih dalam proses, Anda akan mendapatkan respons seperti ini, dengan state adalah running:

{
    "self": "/organizations/myorg/environments/myenv/queries/1577884c-4f48-4735-9728-5da4b05876ab",
    "state": "running",
    "created": "2018-02-23T14:07:27Z",
    "updated": "2018-02-23T14:07:54Z"
}

Setelah kueri berhasil diselesaikan, Anda akan melihat respons seperti ini, dengan state ditetapkan ke completed:

{
      "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd",
      "state": "completed",
      "result": {
        "self": "/organizations/myorg/environments/myenv/queries/9cfc0d85-0f30-46d6-ae6f-318d0cb961bd/result",
        "expires": "2017-05-22T14:56:31Z"
      },
      "resultRows": 1,
      "resultFileSize": "922KB",
      "executionTime": "11 sec",
      "created": "2018-05-10T07:11:10Z",
      "updated": "2018-05-10T07:13:22Z"
}

Langkah 3. Mengambil hasil kueri

Setelah status kueri adalah completed, ada dua metode yang dapat Anda gunakan untuk mengambil hasil kueri:

  • getResulturl (direkomendasikan): Ini adalah metode yang lebih baru yang menampilkan URL tempat Anda dapat melihat hasil kueri. Metode ini tidak memiliki batas ukuran pada hasil kueri.
  • getResultIni adalah metode lama yang mengunduh file zip yang berisi hasil kueri. Metode ini memberlakukan batas ukuran 32 MB pada hasil kueri.

Tab di bawah menunjukkan panggilan API untuk mengambil hasil kueri menggunakan salah satu metode. Seperti di atas, ID kuerinya adalah 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID/resulturl" \
  -X GET \
  -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 Apigee API.

Berikut adalah contoh respons terhadap panggilan:

{
  "urls": [
    "uri": "https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.iam.gserviceaccount.com%2F20181026%2Fus-central1%2Fstorage%2Fgoog4_request&X-Goog-Date=20181026T181309Z&X-Goog-Expires=900&X-Goog-SignedHeaders=host&X-Goog-Signature=247a2aa45f169edf4d187d54e7cc46e4731b1e6273242c4f4c39a1d2507a0e58706e25e3a85a7dbb891d62afa8496def8e260c1db863d9ace85ff0a184b894b117fe46d1225c82f2aa19efd52cf21d3e2022b3b868dcc1aca2741951ed5bf3bb25a34f5e9316a2841e8ff4c530b22ceaa1c5ce09c7cbb5732631510c20580e61723f5594de3aea497f195456a2ff2bdd0d13bad47289d8611b6f9cfeef0c46c91a455b94e90a66924f722292d21e24d31dcfb38ce0c0f353ffa5a9756fc2a9f2b40bc2113206a81e324fc4fd6823a29163fa845c8ae7eca1fcf6e5bb48b3200983c56c5ca81fffb151cca7402beddfc4a76b133447032ea7abedc098d2eb14a7",
  "md5": "23db6982caef9e9152f1a5b2589e6ca3",
  "sizeBytes": 1024
  ]
}

Respons berisi daftar urls[] dengan kolom berikut:

  • uri: Sebuah string yang merupakan URL bertanda tangan dari data JSON untuk laporan tersebut. Anda dapat melihat laporan tersebut di URL berikut.
  • md5: Hash MD5 data JSON.
  • sizeBytes: Ukuran file yang dikembalikan dalam byte.

Lihat Tentang hasil kueri untuk mengetahui contoh hasil dalam format JSON.

getResult

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID/result" \
  -X GET \
  -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 Apigee API.

Untuk mengambil file yang didownload, Anda perlu mengonfigurasi alat yang Anda gunakan agar menyimpan file yang didownload ke sistem Anda. Contoh:

  • Jika menggunakan cURL, Anda dapat menggunakan opsi -O -J, seperti yang ditunjukkan di atas.
  • Jika Anda menggunakan Postman, Anda harus memilih tombol Simpan dan Download. Dalam hal ini, file ZIP bernama response akan didownload.
  • Jika Anda menggunakan browser Chrome, download akan diterima secara otomatis.

Jika permintaan berhasil, dan ada kumpulan hasil yang tidak nol, hasil akan didownload ke klien sebagai file JSON (dibatasi baris baru) yang di-zip. Nama file yang didownload adalah OfflineQueryResult-.zip.

Misalnya: OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip .

File zip berisi file arsip .gz dari hasil JSON. Untuk mengakses file JSON, ekstrak file yang telah diunduh, lalu gunakan perintah gzip untuk mengekstrak file JSON:

unzip OfflineQueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd.zip
gzip -d QueryResult-9cfc0d85-0f30-46d6-ae6f-318d0cb961bd-000000000000.json.gz

Tentang isi permintaan

Bagian ini menjelaskan setiap parameter yang dapat Anda gunakan dalam isi permintaan JSON untuk kueri. Untuk mengetahui detail metrik dan dimensi yang dapat Anda gunakan dalam kueri, lihat Referensi Analytics.

{  
   "metrics":[  
      {  
        "name":"metric_name",
        "function":"aggregation_function",
        "alias":"metric_display_name_in_results",
        "operator":"post_processing_operator",
        "value":"post_processing_operand"
      },
   ...
   ],
   "dimensions":[  
      "dimension_name",
      ...
   ],
   "timeRange":"time_range",
   "limit":results_limit,
   "filter":"filter",
   "groupByTimeUnit": "grouping",
   "outputFormat": "format",
   "csvDelimiter": "delimiter"
}
Properti Deskripsi Wajib?
metrics

Array metrik. Anda dapat menentukan satu atau beberapa metrik untuk kueri yang mencakup setiap metrik. Hanya nama metrik yang diperlukan:

  • name: (Wajib) Nama metrik seperti yang ditentukan oleh tabel di metrics.
  • function: (Opsional) Fungsi agregasi sebagai avg, min, max, atau sum.

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

  • alias: (Opsional) Nama properti yang berisi data metrik dalam output. Jika dihilangkan, secara default akan menggunakan nama metrik yang dikombinasikan dengan nama fungsi agregasi.
  • operator: (Opsional) Operasi yang akan dilakukan pada metrik setelah nilainya dihitung. Berfungsi dengan properti value. Operasi yang didukung meliputi: + - / % *.
  • value: (Opsional) Nilai yang diterapkan ke metrik yang dihitung oleh operator yang ditentukan.

Properti operator dan value menentukan operasi pasca-pemrosesan yang dilakukan pada metrik. Misalnya, jika Anda menentukan metrik response_processing_latency, metrik akan menampilkan latensi pemrosesan respons rata-rata dengan satuan milidetik. Untuk mengonversi satuan ke detik, tetapkan operator ke "/" dan value ke ”1000.0“:

"metrics":[  
  {  
    "name":"response_processing_latency",
    "function":"avg",
    "alias":"average_response_time_in_seconds",
    "operator":"/",
    "value":"1000"
  }
]

Untuk mengetahui informasi selengkapnya, lihat Referensi metrik, dimensi, dan filter Analytics.

Ya
dimensions Array dimensi untuk mengelompokkan metrik. Untuk mengetahui informasi selengkapnya, lihat daftar dimensi yang didukung. Anda dapat menentukan beberapa dimensi. Ya
timeRange Rentang waktu untuk kueri.

Anda dapat menggunakan string yang telah ditentukan sebelumnya berikut ini untuk menentukan rentang waktu:

  • last60minutes
  • last24hours
  • last7days

Atau, Anda dapat menentukan timeRange sebagai struktur yang menjelaskan stempel waktu mulai dan akhir dalam format ISO: yyyy-mm-ddThh:mm:ssZ. Contoh:

"timeRange": {
    "start": "2018-07-29T00:13:00Z",
    "end": "2018-08-01T00:18:00Z"
}
Ya
limit Jumlah maksimum baris yang dapat ditampilkan dalam hasil. Tidak
filter Ekspresi Boolean yang dapat digunakan untuk memfilter data. Ekspresi filter dapat digabungkan menggunakan istilah AND/OR dan harus diberi tanda kurung sepenuhnya untuk menghindari ambiguitas. Lihat Referensi metrik, dimensi, dan filter Analytics untuk mengetahui informasi selengkapnya tentang kolom yang tersedia untuk difilter. Untuk mengetahui informasi selengkapnya tentang token yang Anda gunakan untuk membuat ekspresi filter, lihat Sintaksis ekspresi filter. Tidak
groupByTimeUnit Unit waktu yang digunakan untuk mengelompokkan kumpulan hasil. Nilai yang valid mencakup: second, minute, hour, day, week, atau month.

Jika kueri menyertakan groupByTimeUnit, maka hasilnya adalah agregasi berdasarkan satuan waktu yang ditentukan dan stempel waktu hasilnya tidak menyertakan presisi milidetik. Jika kueri menghilangkan groupByTimeUnit, stempel waktu yang dihasilkan akan mencakup presisi milidetik.

Tidak
outputFormat Format output. Nilai yang valid meliputi: csv atau json. Nilai defaultnya adalah json yang sesuai dengan JSON yang dibatasi baris baru.

Catatan: Konfigurasi pemisah untuk output CSV menggunakan properti csvDelimiter.

Tidak
csvDelimiter Pemisah yang digunakan dalam file CSV, jika outputFormat disetel ke csv. Defaultnya adalah karakter , (koma). Karakter pemisah yang didukung mencakup koma (,), pipa (|), dan tab (\t). Tidak

Sintaksis ekspresi filter

Bagian referensi ini menjelaskan token yang dapat Anda gunakan untuk membuat ekspresi filter di isi permintaan. Misalnya, ekspresi berikut menggunakan token "ge" (lebih besar dari atau sama dengan):

"filter":"(message_count ge 0)"
Token Deskripsi Contoh
in Sertakan dalam daftar
(apiproxy in 'ethorapi','weather-api')

(apiproxy in 'ethorapi')

(apiproxy in 'Search','ViewItem')

(response_status_code in 400,401,500,501)

Catatan: String harus berada dalam tanda petik.

notin Mengecualikan dari daftar
(response_status_code notin 400,401,500,501)
eq Sama dengan (==)
(response_status_code eq 504)

(apiproxy eq 'non-prod')
ne Tidak sama dengan (!=)
(response_status_code ne 500)

(apiproxy ne 'non-prod')
gt Lebih besar dari (>)
(response_status_code gt 500)
lt Kurang dari (<)
(response_status_code lt 500)
ge Lebih besar dari atau sama dengan (>=)
(target_response_code ge 400)
le Kurang dari atau sama dengan (<=)
(target_response_code le 300)
like Menampilkan benar (true) jika pola string cocok dengan pola yang diberikan.

Contoh di sebelah kanan cocok sebagai berikut:

- nilai apa pun yang memiliki kata 'beli'

- nilai apa pun yang berakhiran 'item'

- nilai apa pun yang diawali dengan 'Prod'

- nilai apa pun yang diawali dengan 4, perhatikan bahwa response_status_code adalah angka.

(apiproxy like '%buy%')

(apiproxy like '%item')

(apiproxy like 'Prod%')
not like Menampilkan nilai salah (false) jika pola string cocok dengan pola yang diberikan.
(apiproxy not like '%buy%')

(apiproxy not like '%item')

(apiproxy not like 'Prod%')
and Memungkinkan Anda menggunakan logika 'dan' untuk menyertakan lebih dari satu ekspresi filter. Filter menyertakan data yang memenuhi semua kondisi.
(target_response_code gt 399) and (response_status_code ge 400)
or Memungkinkan Anda menggunakan logika 'atau' untuk mengevaluasi berbagai kemungkinan ekspresi filter. Filter tersebut mencakup data yang memenuhi setidaknya satu dari kondisi tersebut.
(response_size ge 1000) or (response_status_code eq 500)

Batasan dan nilai default

Berikut adalah daftar batasan dan nilai default untuk fitur pemrosesan kueri asinkron.

Batasan Default Deskripsi
Batas panggilan kueri Lihat deskripsi Anda dapat melakukan hingga tujuh panggilan per jam ke API Apigee /queries untuk memulai laporan asinkron. Jika Anda melampaui kuota panggilan, API akan menampilkan respons HTTP 429.
Batas kueri aktif 10 Anda dapat memiliki hingga 10 kueri aktif untuk suatu organisasi/lingkungan.
Batas waktu eksekusi kueri 6 jam Kueri yang memerlukan waktu lebih dari 6 jam akan dihentikan.
Rentang Waktu Kueri Lihat deskripsi Rentang waktu maksimum yang diizinkan untuk kueri adalah 365 hari.
Batas dimensi dan metrik 25 Jumlah maksimum dimensi dan metrik yang dapat Anda tentukan dalam payload kueri.

Tentang hasil kueri

Berikut adalah contoh hasil dalam format JSON. Cara Anda melihat hasil bergantung pada metode yang Anda gunakan untuk mengambil hasil kueri:

  • Jika Anda menggunakan metode getResulturl Anda dapat melihat hasilnya di URL yang diberikan di kolom uri hasil. Metode ini tidak memiliki batas ukuran pada hasil kueri.
  • Jika Anda menggunakan metode tersebutgetResult, hasilnya akan diunduh dalam file zip.

    Metode getResult memberlakukan batas ukuran 32 MB pada hasil kueri. Jika hasil melebihi 32 MB, kueri akan menampilkan kode status 400 dengan pesan "hasil kueri lebih besar dari 32 MB". Untuk menghindari batasan ini, gunakan metode getReulturl seperti yang dijelaskan dalam Mengambil hasil kueri.

Hasilnya terdiri dari baris JSON yang dipisahkan oleh pembatas baris baru, seperti yang ditunjukkan pada contoh berikut:

{"message_count":"10209","apiproxy":"guest-auth-v3","hour":"2018-08-07 19:26:00 UTC"}
{"message_count":"2462","apiproxy":"carts-v2","hour":"2018-08-06 13:16:00 UTC"}    
…

Anda dapat mengambil hasil dari URL hingga data di repositori habis masa berlakunya. Lihat Batasan dan nilai default.

Contoh

Contoh 1: Jumlah total pesan

Kueri untuk jumlah total pesan selama 60 menit terakhir.

Kueri

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @last60minutes.json

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 Apigee API.

Isi Permintaan dari last60minutes.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":"last60minutes"
}

Contoh 2: Rentang waktu kustom

Buat kueri menggunakan rentang waktu kustom.

Kueri

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @custom-timerange.json

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 Apigee API.

Isi permintaan dari custom-timerange.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      },
      {  
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

Contoh 3: Transaksi per menit

Kueri pada metrik untuk transaksi per menit (tpm).

Kueri

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @tpm.json

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 Apigee API.

Isi permintaan dari tpm.json

{  
   "metrics":[  
      {  
         "name":"tpm"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-07-01T11:00:00Z",
      "end":"2018-07-30T11:00:00Z"
   }
}

Contoh hasil

Cuplikan dari berkas hasil:

{"tpm":149995.0,"apiproxy":"proxy_1","minute":"2018-07-06 12:16:00 UTC"}
{"tpm":149998.0,"apiproxy":"proxy_1","minute":"2018-07-09 15:12:00 UTC"}
{"tpm":3.0,"apiproxy":"proxy_2","minute":"2018-07-11 16:18:00 UTC"}
{"tpm":148916.0,"apiproxy":"proxy_1","minute":"2018-07-15 17:14:00 UTC"}
{"tpm":150002.0,"apiproxy":"proxy_1","minute":"2018-07-18 18:11:00 UTC"}
...

Contoh 4: Menggunakan ekspresi filter

Kueri dengan ekspresi filter yang menggunakan operator boolean.

Kueri

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @filterCombo.json

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 Apigee API.

Isi permintaan dari filterCombo.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum"
      },
      {  
         "name":"total_response_time",
         "function":"avg",
         "alias":"average_response_time"
      }
   ],
   "filter":"(apiproxy ne \u0027proxy_1\u0027) and (apiproxy ne \u0027proxy_2\u0027)",
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":1000,
   "timeRange":{  
      "start":"2018-11-01T11:00:00Z",
      "end":"2018-11-30T11:00:00Z"
   }
}

Contoh 5: Meneruskan ekspresi dalam parameter metrik

Lakukan kueri dengan ekspresi yang diteruskan sebagai bagian dari parameter metrik. Anda hanya dapat menggunakan ekspresi satu operator sederhana.

Kueri

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries" \
  -X POST \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d @metricsExpression.json

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 Apigee API.

Isi permintaan dari metricsExpression.json

{  
   "metrics":[  
      {  
         "name":"message_count",
         "function":"sum",
         "operator":"/",
         "value":"7"
      }
   ],
   "dimensions":[  
      "apiproxy"
   ],
   "groupByTimeUnit":"minute",
   "limit":10,
   "timeRange":"last60minutes"
}