Jalur permintaan dan metode
Jalur permintaan | Metode permintaan | Deskripsi |
/api/query/last | POST | Mengkueri titik data terbaru dalam deret waktu. |
Operasi ini sepenuhnya kompatibel dengan OpenTSDB.
Parameter permintaan
Parameter untuk Permintaan dalam Format JSON
Parameter | Tipe | Diperlukan | Deskripsi | Nilai default | Contoh |
queries | Array | Ya | Array subkueri. | Tidak ada | Untuk informasi lebih lanjut, lihat bagian "Parameter untuk subkueri dalam format JSON". |
timestamp | Long | Tidak | Timestamp UNIX. Unit: detik atau milidetik. Jika Anda menentukan timestamp, Anda dapat mengkueri titik data terbaru pada timestamp yang ditentukan. Jika Anda tidak mengisi parameter ini, Anda dapat mengkueri titik data terbaru pada timestamp saat ini. | Tidak ada | 1539763573 |
hint | Map | Tidak | Petunjuk kueri. | Tidak ada | Untuk informasi lebih lanjut, lihat bagian "Parameter: hint". |
limit | Map | Tidak | Batasan pada titik data terbaru yang ingin Anda kueri. | Tidak ada | Untuk informasi lebih lanjut, lihat bagian "Parameter: limit". |
Parameter untuk Subkueri dalam Format JSON
Anda dapat melakukan subkueri berdasarkan data deret waktu atau TSUID. Jika Anda mengkueri data berdasarkan data deret waktu, gunakan parameter data deret waktu dan tag untuk menentukan kriteria kueri. Jika Anda mengkueri data berdasarkan TSUID, gunakan parameter tsuid untuk menentukan kriteria kueri. Parameter tsuid menentukan ID unik dari deret waktu. Anda dapat menyertakan kueri data deret waktu dan kueri TSUID dalam daftar subkueri.
Kueri Data Deret Waktu
Parameter | Tipe | Diperlukan | Deskripsi | Nilai default | Contoh |
metric | String | Ya | Data deret waktu dari titik data terbaru yang ingin Anda kueri. | Tidak ada | cpu.usage |
tags | String | Tidak | Tag dari titik data terbaru yang ingin Anda kueri. | Tidak ada | host_name=host1 |
hint | Map | Map | Petunjuk kueri. | Tidak ada | Untuk informasi lebih lanjut, lihat bagian "Parameter: hint". |
Anda hanya dapat menggunakan parameter tags untuk menentukan kriteria kueri. Parameter filters tidak didukung.
Kueri TSUID
Parameter | Tipe | Diperlukan | Deskripsi | Nilai default | Contoh |
tsuid | String | Ya | TSUID dari deret waktu di mana Anda ingin mengkueri titik data terbaru. | Tidak ada | 00005B00005C0000F000005D0000EE00005E0000EF |
Anda dapat melakukan operasi /api/search/lookup untuk mengkueri TSUID dari deret waktu.
Untuk TSDB High-availability Edition, Anda dapat menentukan parameter tsuid dalam permintaan. Namun, konfigurasi parameter ini tidak berpengaruh. Saat Anda menggunakan /api/search/lookup dalam edisi high-availability, TSDB tidak mengembalikan TSUID dari deret waktu.
Contoh Permintaan dalam Format JSON
Tujuan:
Mengkueri titik data terbaru di setiap deret waktu. Dalam subkueri pertama, parameter metric diatur ke cpu.usage dan parameter tags diatur ke host_name: host1.
Dalam subkueri kedua, tsuids diatur ke 00005B00005C00002E00005D0000EE00005E0000EF dan 00005B00005C0000F000005D0000EE00005E0000EF dan titik data terbaru dikueri di setiap deret waktu.
Baris Permintaan: POST/api/query/last
Badan Permintaan:
{
"queries" : [
{
"metric":"cpu.usage",
"tags" : {
"host_name": "host1"
}
},
{
"tsuids": [
"00005B00005C00002E00005D0000EE00005E0000EF",
"00005B00005C0000F000005D0000EE00005E0000EF"
]
}
]
}Deskripsi respons
Jika kode status HTTP 200 dikembalikan, kueri berhasil. Hasilnya menunjukkan bahwa titik data terbaru dalam deret waktu yang memenuhi kriteria kueri yang ditentukan dikembalikan. Hasilnya dalam format JSON. Jika tidak ada deret waktu yang memenuhi kriteria kueri, himpunan kosong dikembalikan. Tabel berikut menjelaskan parameter respons.
Parameter | Deskripsi |
metric | Nama metrik. |
timestamp | Timestamp dari titik data terbaru. |
value | Nilai untuk data deret waktu. |
tags | Pasangan tag dari titik data. Tag terdiri dari kunci tag dan nilai tag. |
tsuid | ID deret waktu di mana titik data tersebut ada. |
Contoh Permintaan:
[{
"metric": "cpu.usage",
"timestamp": 1556418300000,
"value": 30.3,
"tags": {
"host_name": "host1"
},
"tsuid": "00005B00005C00001D",
}, {
"metric": "cpu.usage",
"timestamp": 1556418300000,
"value": 25.6,
"tags": {
"host_name": "host2",
"cluster": "cluster1"
"zone": "zone1"
},
"tsuid": "00005B00005C00002E00005D0000EE00005E0000EFE",
}, {
"metric": "cpu.usage",
"timestamp": 1556418300000,
"value": 43.1,
"tags": {
"host_name": "host3",
"cluster": "cluster1"
"zone": "zone1"
},
"tsuid": "00005B00005C0000F000005D0000EE00005E0000EF",
}]Parameter: hint
Skenario
Dalam banyak kasus, petunjuk kueri digunakan untuk mengurangi waktu respons kueri. Misalnya, Tags A dan Tags B ditentukan dan deret waktu yang cocok dengan Tags B jelas termasuk dalam deret waktu yang cocok dengan Tags A. Dalam hal ini, data tidak dibaca dari deret waktu yang cocok dengan Tag A. Irisan antara himpunan deret waktu yang cocok dengan Tag A dan himpunan deret waktu yang cocok dengan Tag B sama dengan himpunan deret waktu yang cocok dengan Tag B.
Deskripsi Format
Versi TSDB saat ini memungkinkan Anda menggunakan hanya parameter tagk dalam petunjuk untuk membatasi indeks kueri.
Dalam pasangan nilai kunci yang ditentukan oleh parameter tagk, nilai tag dari kunci tag harus sama. Nilai valid: 0 dan 1. Jika nilai tag adalah
0, indeks yang sesuai dengan kunci tag tidak digunakan. Jika nilai tag adalah1, indeks yang sesuai dengan kunci tag digunakan.
Catatan Rilis
Fitur petunjuk kueri didukung oleh TSDB V2.6.1 dan versi selanjutnya.
Contoh Permintaan
Petunjuk yang Berlaku untuk Subkueri
{
"queries": [
{
"metric": "sys.cpu.nice",
"tags": {
"host": "web01"
},
"hint": {
"tagk": {
"dc": 1
}
}
}
]
}Petunjuk yang Berlaku untuk Seluruh Kueri
{
"queries": [
{
"metric": "sys.cpu.nice",
"tags": {
"host": "web01"
}
}
],
"hint": {
"tagk": {
"dc": 1
}
}
}Pengecualian
Kesalahan Dikembalikan Ketika Nilai Tag dalam Pasangan Kunci-Nilai yang Ditentukan oleh Parameter tagk Berisi 0 dan 1.
{
"start": 1346846400,
"end": 1346846400,
"queries": [
{
"aggregator": "none",
"metric": "sys.cpu.nice",
"tags": {
"dc": "lga",
"host": "web01"
}
}
],
"hint": {
"tagk": {
"dc": 1,
"host": 0
}
}
}Pesan kesalahan berikut dikembalikan:
{
"error": {
"code": 400,
"message": "Nilai dari hint hanya boleh 0 atau 1, dan tidak boleh ada 0 dan 1",
"details": "TSQuery(start_time=1346846400, end_time=1346846400, subQueries[TSSubQuery(metric=sys.cpu.nice, filters=[filter_name=literal_or, tagk=dc, literals=[lga], group_by=true, filter_name=literal_or, tagk=host, literals=[web01], group_by=true], tsuids=[], agg=none, downsample=null, ds_interval=0, rate=false, rate_options=null, delta=false, delta_options=null, top=0, granularity=null, granularityDownsample=null, explicit_tags=explicit_tags, index=0, realTimeSeconds=-1, useData=auto, limit=0, offset=0, dpValue=null, preDpValue=null, startTime=1346846400000, endTime=1346846400000, Query_ID=null)] padding=false, no_annotations=false, with_global_annotations=false, show_tsuids=false, ms_resolution=false, options=[])"
}
}Kesalahan Dikembalikan Ketika Nilai Tag dalam Pasangan Kunci-Nilai yang Ditentukan oleh Parameter tagk Bukan 0 atau 1.
{
"start": 1346846400,
"end": 1346846400,
"queries": [
{
"aggregator": "none",
"metric": "sys.cpu.nice",
"tags": {
"dc": "lga",
"host": "web01"
}
}
],
"hint": {
"tagk": {
"dc": 100
}
}
}Pesan kesalahan berikut dikembalikan:
{
"error": {
"code": 400,
"message": "Nilai dari hint hanya bisa 0 atau 1, dan terdeteksi bahwa '100' diteruskan",
"details": "TSQuery(start_time=1346846400, end_time=1346846400, subQueries[TSSubQuery(metric=sys.cpu.nice, filters=[filter_name=literal_or, tagk=dc, literals=[lga], group_by=true, filter_name=literal_or, tagk=host, literals=[web01], group_by=true], tsuids=[], agg=none, downsample=null, ds_interval=0, rate=false, rate_options=null, delta=false, delta_options=null, top=0, granularity=null, granularityDownsample=null, explicit_tags=explicit_tags, index=0, realTimeSeconds=-1, useData=auto, limit=0, offset=0, dpValue=null, preDpValue=null, startTime=1346846400000, endTime=1346846400000, Query_ID=null)] padding=false, no_annotations=false, with_global_annotations=false, show_tsuids=false, ms_resolution=false, options=[])"
}
}Parameter: limit
Batas: Anda dapat menentukan parameter limit untuk mengkueri beberapa titik data terbaru. Jika Anda tidak menentukan parameter limit dalam permintaan, setiap deret waktu hanya mengembalikan satu titik data terbaru.
Parameter untuk Permintaan dalam Format JSON
Parameter | Tipe | Diperlukan | Deskripsi | Nilai default | Contoh |
size | Integer | Ya | Jumlah maksimum titik data terbaru untuk setiap deret waktu. | Tidak ada | 5 |
from | Long | Ya | Awal rentang waktu di mana data dikueri. | Tidak ada | 1346846400 |
Contoh
Tulis empat deret waktu. Setiap deret waktu memiliki dua titik data.
[{"metric":"testmetric", "tags":{"testmetric1_tagk":"testmetric1_tagv1"},"timestamp":1514736040, "value":1},
{"metric":"testmetric", "tags":{"testmetric2_tagk":"testmetric2_tagv1"},"timestamp":1514736050, "value":2},
{"metric":"testmetric", "tags":{"testmetric1_tagk":"testmetric1_tagv1"},"timestamp":1514736060, "value":3},
{"metric":"testmetric", "tags":{"testmetric2_tagk":"testmetric2_tagv1"},"timestamp":1514736070, "value":4},
{"metric":"testmetric", "tags":{"testmetric1_tagk":"testmetric1_tagv2"},"timestamp":1514736080, "value":5},
{"metric":"testmetric", "tags":{"testmetric2_tagk":"testmetric2_tagv2"},"timestamp":1514736090, "value":6},
{"metric":"testmetric", "tags":{"testmetric1_tagk":"testmetric1_tagv2"},"timestamp":1514736100, "value":7},
{"metric":"testmetric", "tags":{"testmetric2_tagk":"testmetric2_tagv2"},"timestamp":1514736110, "value":8}]Parameter size diatur ke 2. Tujuh titik data tersedia dalam rentang timestamp 1514736040 hingga 1514736100.
{
"timestamp": 1514736100,
"limit": {
"size": 2,
"from": 1514736040
},
"queries": [
{
"metric": "testmetric"
}
]
}Kode berikut menunjukkan hasil kueri. Dalam rentang waktu, setiap deret waktu memiliki maksimal dua titik data.
[
{
"metric": "testmetric",
"timestamp": 1514736060000,
"value": 3.0,
"tags": {
"testmetric1_tagk": "testmetric1_tagv1"
},
"tsuid": "0200000200000200****",
"version": 0,
"dps": {
"1514736040000": 1.0,
"1514736060000": 3.0
}
},
{
"metric": "testmetric",
"timestamp": 1514736100000,
"value": 7.0,
"tags": {
"testmetric1_tagk": "testmetric1_tagv2"
},
"tsuid": "0400000200000200****",
"version": 0,
"dps": {
"1514736080000": 5.0,
"1514736100000": 7.0
}
},
{
"metric": "testmetric",
"timestamp": 1514736070000,
"value": 4.0,
"tags": {
"testmetric2_tagk": "testmetric2_tagv1"
},
"tsuid": "0E00000200000300****",
"version": 0,
"dps": {
"1514736050000": 2.0,
"1514736070000": 4.0
}
},
{
"metric": "testmetric",
"timestamp": 1514736090000,
"value": 6.0,
"tags": {
"testmetric2_tagk": "testmetric2_tagv2"
},
"tsuid": "1000000200000300****",
"version": 0,
"dps": {
"1514736090000": 6.0
}
}
]