Kueri titik data terbaru dari deret waktu di mana model data multi-nilai digunakan
Jalur permintaan dan metode
Jalur permintaan | Metode permintaan | Deskripsi |
|---|---|---|
/api/query/mlast | POST | Mengkueri titik data terbaru dari model multi-nilai deret waktu. Setiap titik data yang dikembalikan berisi nilai terbaru dari bidang yang ditentukan untuk metrik yang ditentukan. |
Parameter permintaan
Parameter | Tipe | Diperlukan | Deskripsi | Nilai default | Contoh |
|---|---|---|---|---|---|
queries | Array | Ya | Array subkueri. | Tidak tersedia | Untuk informasi lebih lanjut, lihat bagian "Parameter untuk subkueri dalam format JSON". |
timestamp | Long | Tidak | Timestamp UNIX. Satuan: detik atau milidetik. Jika Anda menentukan timestamp, operasi API mengembalikan titik data terbaru yang terkait dengan timestamp yang ditentukan dan timestamp sebelumnya. Jika Anda tidak mengisi parameter ini, operasi API mengembalikan titik data terbaru yang terkait dengan timestamp saat ini dan timestamp sebelumnya. Parameter ini berada pada level yang sama dengan parameter queries dalam permintaan. Untuk informasi lebih lanjut, lihat contoh permintaan berikut. | Tidak tersedia | 1539763573 |
tupleFormat | Boolean | Tidak | Menentukan apakah akan mengembalikan struktur tuple dari titik data terbaru dari bidang yang dikueri. Untuk informasi lebih lanjut, lihat contoh permintaan dan respons berikut. | false | false |
tupleOffset | Long | Tidak | Ofset dari tuple. Parameter ini hanya berlaku ketika parameter tupleFormat disetel ke true. | 0 | 5 |
tupleLimit | Long | Tidak | Jumlah maksimum tuple. Parameter ini hanya berlaku ketika parameter tupleFormat disetel ke true. | 0 | 100 |
hint | Map | Tidak | Petunjuk kueri. | Tidak tersedia | Untuk informasi lebih lanjut, lihat bagian "Deskripsi petunjuk kueri". |
limit | Map | Tidak | Batas pada titik data terbaru yang ingin Anda kueri. | Tidak tersedia | Untuk informasi lebih lanjut, lihat bagian "Deskripsi batas kueri". |
Gunakan /api/query/mlast hanya untuk mengkueri titik data terbaru dari deret waktu yang menggunakan model data multi-nilai. Untuk mengkueri titik data terbaru dari deret waktu dengan model data single-nilai, gunakan /api/query/last.
Parameter Subkueri dalam Format JSON
Parameter | Tipe | Diperlukan | Deskripsi | Nilai default | Contoh |
|---|---|---|---|---|---|
metric | String | Ya | Metrik yang terkait dengan titik data terbaru yang ingin Anda kueri. | Tidak tersedia | wind |
fields | List | Ya | Bidang metrik yang ingin Anda kueri. Jika Anda menyetel parameter ini ke asterisk (*), nilai semua bidang dalam metrik yang ditentukan akan dikembalikan. | Tidak tersedia | {speed, level, description} |
tags | String | Tidak | Tag yang terkait dengan titik data terbaru yang ingin Anda kueri. | Tidak tersedia | sensor = IOTE_1988_0001 |
hint | Map | Tidak | Petunjuk kueri. | Tidak ada | Lihat bagian "Deskripsi Petunjuk Kueri" untuk informasi lebih lanjut.
Contoh Permintaan dalam Format JSON
Tujuan: Mengkueri titik data terbaru yang ditulis untuk bidang usage_system dan usage_idle dalam deret waktu. Kedua bidang ini mendeskripsikan metrik CPU, dengan pasangan kunci-nilai tag "host_name": "host1". Baris Permintaan:POST /api/query/mlast Badan Permintaan:
{
"tupleFormat": true,
"tupleOffset":5,
"tupleLimit":100,
"timestamp" : 1551851846,
"queries": [
{
"metric": "cpu",
"fields": ["usage_system", "usage_idle"],
"tags": {
"host_name": "host1"
}
}
]
}
Deskripsi respons
Jika kode status HTTP 200 dikembalikan, kueri berhasil. Dalam hal ini, titik data terbaru dari deret waktu yang memenuhi kondisi kueri akan dikembalikan dalam format JSON. Jika tidak ada deret waktu yang memenuhi kondisi kueri, set kosong akan dikembalikan. Parameter respons dijelaskan dalam tabel berikut.
Parameter | Deskripsi |
|---|---|
metric | Nama metrik. |
columns | Nama kolom dalam set hasil yang dikembalikan. Nilai parameter ini mencakup nama bidang timestamp dan nama bidang metrik yang ingin Anda kueri. |
tags | Himpunan pasangan kunci-nilai tag yang terkait dengan titik data. |
values | Nilai bidang metrik. Urutan nilai sama dengan urutan kolom. |
Jika Anda menyetel parameter tupleFormat ke false dalam permintaan, format respons akan sama dengan format respons untuk model data single-nilai. Lihat pengenalan /api/query/last dalam topik "Kueri Titik Data Terbaru dari Deret Waktu" untuk informasi lebih lanjut.
Contoh Respons dalam Format JSON
[
{
"metric": "wind",
"columns": [
"timestamp",
"level",
"speed"
],
"tags": {
"city": "hangzhou",
"country": "china",
"province": "zhejiang",
"sensor": "IOTE_8859_0001"
},
"values": [
[1346846405000, 5.1, 45.1]
]
}
]
Deskripsi petunjuk kueri
Skenario
Petunjuk kueri sering digunakan untuk mengurangi waktu respons kueri. Sebagai contoh, jika Tag A dan Tag B ditentukan dan deret waktu yang cocok dengan Tag B termasuk dalam deret waktu yang cocok dengan Tag A, data tidak akan dibaca dari deret waktu yang cocok dengan Tag A. Irisan antara himpunan deret waktu yang cocok dengan Tag A dan Tag B sama dengan himpunan deret waktu yang cocok dengan Tag B.
Deskripsi Format
Versi TSDB saat ini hanya memungkinkan penggunaan parameter tagk dalam petunjuk untuk membatasi indeks kueri.
Dalam pasangan kunci-nilai tag 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.
Deskripsi Versi
Fitur petunjuk kueri didukung mulai TSDB V2.6.1 dan versi lebih baru.
Contoh Permintaan
Petunjuk yang Berlaku untuk Subkueri
{
"queries": [
{
"metric": "demo.mf",
"tags": {
"sensor": "IOTE_8859_0001",
"city": "hangzhou",
"province": "zhejiang",
"country": "china"
},
"fields": [
"speed"
],
"hint": {
"tagk": {
"dc": 1
}
}
}
]
}
Petunjuk yang Berlaku untuk Seluruh Kueri
{
"queries": [
{
"metric": "demo.mf",
"tags": {
"sensor": "IOTE_8859_0001",
"city": "hangzhou",
"province": "zhejiang",
"country": "china"
},
"fields": [
"speed"
]
}
],
"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 petunjuk 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 petunjuk 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=[])"
}
}
Deskripsi batas kueri
Batas: Memungkinkan Anda mengonfigurasi batas pada jumlah titik data terbaru yang dapat dikueri. Jika tidak menentukan batas, hasil kueri hanya mencakup titik data terbaru dalam setiap deret waktu.
Parameter untuk Permintaan dalam Format JSON
Parameter | Tipe | Diperlukan | Deskripsi | Nilai default | Contoh |
|---|---|---|---|---|---|
size | Integer | Ya | Jumlah maksimum titik data terbaru dari deret waktu. | Tidak tersedia | 5 |
from | Long | Ya | Awal rentang waktu tempat data dikueri. | Tidak tersedia | 1346846400 |
Contoh
Kueri 300 titik data terbaru yang terkait dengan timestamp berkisar dari 1.551.850.000 hingga 1.551.851.846.
{
"tupleFormat":true,
"limit":{
"size":300,
"from":1551850000
},
"timestamp":1551851846,
"queries":[
{
"metric":"cpu",
"fields":["usage_system","usage_idle"],
"tags":{
"host_name":"host1"
}
}
]
}
Lihat bagian "Deskripsi Batas Kueri" dalam topik "Kueri Titik Data Terbaru dalam Deret Waktu yang Menggunakan Model Single-Nilai" untuk informasi lebih lanjut.