Menggunakan API laporan kustom asinkron

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat Dokumentasi Apigee Edge.

Apigee Analytics menyediakan seperangkat dasbor interaktif, generator laporan kustom, dan kemampuan terkait. Akan tetapi, fitur ini dimaksudkan agar bersifat interaktif: Anda mengirimkan API atau UI dan permintaan tersebut diblokir hingga server analisis memberikan respons.

Namun, waktu penyelesaian permintaan analisis dapat habis jika waktu penyelesaiannya terlalu lama. Jika permintaan kueri perlu memproses sejumlah besar data (misalnya, 100-an GB), maka mungkin akan gagal karena waktu habis.

Pemrosesan kueri asinkron memungkinkan Anda hasilnya di lain waktu. Anda dapat mempertimbangkan untuk menggunakan kueri {i>offline<i} ketika Anda menemukan waktu kueri interaktif Anda akan habis. Beberapa situasi saat pemrosesan kueri asinkron mungkin merupakan alternatif yang baik, antara lain:

  • Menganalisis dan membuat laporan yang menjangkau interval waktu yang besar.
  • Menganalisis data dengan berbagai pengelompokan dimensi dan batasan lain yang menambah kompleksitas pada kueri.
  • Mengelola kueri saat Anda menemukan 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 Gunakan UI Apigee untuk membuat dan menjalankan laporan kustom. Anda dapat menjalankan laporan tersebut secara sinkron maupun asinkron.

Sebagian besar konsep untuk menghasilkan laporan kustom dengan UI berlaku untuk penggunaan API. Artinya, ketika membuat laporan kustom dengan API, Anda menentukan metrik, dimensi, dan filter yang terintegrasi ke dalam Apigee.

Perbedaan utama antara laporan yang dihasilkan dengan API, bukan dengan UI-nya merupakan fungsi yang pertama ditulis ke file CSV atau JSON (newline delimited), sedangkan file yang kedua ditampilkan di UI.

Batas waktu pada kueri

Apigee menerapkan batas waktu maksimum 365 hari pada rentang waktu untuk kueri asinkron.

Cara membuat asinkron kueri analytics

Anda dapat membuat kueri analisis asinkron dalam tiga langkah:

  1. Kirim kueri.

  2. Mendapatkan status kueri.

  3. Ambil hasil kueri.

Langkah 1. Kirim kueri

Anda harus mengirim permintaan POST ke Query API. API ini memberi tahu Apigee untuk memproses permintaan Anda di latar belakang. Jika pengiriman kueri berhasil, API mengembalikan status 201 dan ID yang akan Anda gunakan untuk merujuk ke kueri di langkah-langkah berikutnya.

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

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

Isi permintaan adalah deskripsi JSON kueri. Dalam isi JSON, menentukan metrik, dimensi, dan filter yang menentukan laporan.

Berikut 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 untuk mengetahui deskripsi lengkapnya sintaksis isi permintaan.

Contoh respons:

Perhatikan bahwa ID kueri 9cfc0d85-0f30-46d6-ae6f-318d0cb961bd disertakan dalam respons. Selain status HTTP 201, state dari 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. Mendapatkan status kueri

Untuk meminta status kueri, kirim permintaan GET ke Query API. Anda dapat memasukkan ID kueri yang dihasilkan dari panggilan POST. Contoh:

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

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

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 kuerinya adalah completed, ada dua metode yang dapat Anda gunakan untuk mengambil hasil kueri:

  • getResulturl (direkomendasikan): Ini adalah metode baru yang mengembalikan URL tempat Anda dapat melihat hasil kueri. Metode ini tidak memiliki batas ukuran untuk hasil kueri.
  • getResult: Ini adalah metode lama yang mendownload file {i>zip<i} yang berisi hasil kueri. Metode ini menerapkan ukuran 32 MB batasan pada hasil kueri.

Tab di bawah ini menampilkan panggilan API untuk mengambil hasil kueri menggunakan . Seperti di atas, ID kueri 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"

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

Berikut adalah contoh respons terhadap panggilan tersebut:

{
  "urls": [
    "uri": "https://storage.googleapis.com/example-bucket/cat.jpeg?X-Goog-Algorithm=GOOG4-RSA-SHA256&X-Goog-Credential=example%40example-project.%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 akan berisi daftar urls[] dengan kolom berikut:

  • uri: String yang merupakan URL bertanda tangan dari data JSON untuk dalam laporan. Anda dapat melihat laporan di URL.
  • md5: Hash MD5 data JSON.
  • sizeBytes: Ukuran file yang ditampilkan dalam byte.

Lihat artikel Tentang hasil kueri untuk contoh menghasilkan format JSON.

getResult

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/queries/QUERY_ID/result" \
  -X GET \
  -H "Authorization: Bearer $TOKEN"

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

Untuk mengambil file yang didownload, Anda perlu mengonfigurasi alat yang digunakan sehingga akan menyimpan file yang didownload ke sistem Anda. Contoh:

  • Jika menggunakan cURL, Anda dapat menggunakan opsi -O -J, seperti ditunjukkan di atas.
  • Jika 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 hasil selain nol, hasil tersebut akan didownload ke klien sebagai file zip JSON (newline delimited). 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 download, 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 permintaan JSON isi untuk kueri. Untuk detail tentang metrik dan dimensi yang dapat Anda gunakan dalam 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 setiap metriknya disertakan. Hanya nama metrik yang wajib diisi:

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

    Tidak semua metrik mendukung semua fungsi agregasi. Dokumentasi tentang metrics 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, setelan defaultnya adalah nama metrik yang dikombinasikan dengan nama fungsi agregasi.
  • operator: (Opsional) Operasi yang akan dijalankan pada metrik setelah metrik nilai yang telah dihitung. Berfungsi dengan properti value. Operasi yang didukung meliputi: + - / % *.
  • value: (Opsional) Nilai yang diterapkan ke metrik yang dihitung oleh menentukan operator.

Properti operator dan value menentukan pascapemrosesan operasi yang dijalankan pada metrik. Misalnya, jika Anda menentukan metrik response_processing_latency, metrik ini menampilkan rata-rata latensi pemrosesan respons dalam 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 mendapatkan informasi selengkapnya, lihat referensi metrik, dimensi, dan filter Analytics.

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

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

  • last60minutes
  • last24hours
  • last7days

Atau, Anda dapat menentukan timeRange sebagai struktur yang menjelaskan stempel waktu awal 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 sepenuhnya diberi tanda kurung untuk menghindari ambiguitas. Lihat referensi metrik, dimensi, dan filter Analytics untuk mendapatkan informasi selengkapnya tentang kolom yang dapat difilter. Untuk informasi selengkapnya tentang token yang Anda gunakan untuk membuat ekspresi filter, lihat Sintaksis ekspresi filter. Tidak
groupByTimeUnit Satuan waktu yang digunakan untuk mengelompokkan kumpulan hasil. Nilai yang valid mencakup: second, minute, hour, day, week, atau month.

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

Tidak
outputFormat Format output. Nilai yang valid mencakup: csv atau json. Default-nya adalah json yang sesuai dengan JSON yang dibatasi baris baru.

Catatan: Konfigurasi pembatas untuk output CSV menggunakan properti csvDelimiter.

Tidak
csvDelimiter Pemisah digunakan dalam file CSV, jika outputFormat disetel ke csv. Default-nya adalah karakter , (koma). Karakter pembatas 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 dalam isi permintaan. Misalnya, ekspresi berikut menggunakan "ge" token (lebih 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 dalam tanda kutip.

notin Kecualikan 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 dari (>)
(response_status_code gt 500)
lt Kurang dari (<)
(response_status_code lt 500)
ge Lebih dari atau sama dengan (>=)
(target_response_code ge 400)
le Kurang dari atau sama dengan (<=)
(target_response_code le 300)
like Menampilkan true (benar) 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 diakhiri dengan 'item'

- nilai apa pun yang dimulai dengan 'Prod'

- nilai apa pun yang dimulai dengan 4, perhatikan response_status_code adalah numerik

(apiproxy like '%buy%')

(apiproxy like '%item')

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

(apiproxy not like '%item')

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

Batasan dan default

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

Batasan Default Deskripsi
Batas panggilan kueri Lihat deskripsi Anda dapat melakukan hingga tujuh panggilan per jam ke /queries Apigee API untuk memulai laporan asinkron. Jika Anda melebihi kuota panggilan, API mengembalikan respons HTTP 429.
Batas kueri aktif 10 Anda dapat memiliki maksimal 10 kueri aktif untuk satu organisasi/lingkungan.
Nilai minimum waktu eksekusi kueri 6 jam Kueri yang membutuhkan 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 melihat hasil tergantung 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 dari hasil. Metode ini tidak memiliki ukuran batasan pada hasil kueri.
  • Jika Anda menggunakan metode getResult, hasilnya akan didownload di file ZIP.

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

Hasilnya terdiri dari baris JSON yang dipisahkan oleh pemisah baris baru, seperti yang ditunjukkan dalam 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 masa berlaku data di repositori habis. Lihat Batasan dan default.

Contoh

Contoh 1: Jumlah jumlah pesan

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

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

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

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

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

Membuat 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

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

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

Kutipan dari file 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

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

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

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

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

Isi permintaan dari metricsExpression.json

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