全部产品
Search
文档中心

:Kueri titik data terbaru dari deret waktu

更新时间:Jun 28, 2025

Jalur permintaan dan metode

Jalur permintaan

Metode permintaan

Deskripsi

/api/query/last

POST

Mengkueri titik data terbaru dalam deret waktu.

Penting

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".

Penting

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

Penting

  1. Anda dapat melakukan operasi /api/search/lookup untuk mengkueri TSUID dari deret waktu.

  2. 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 adalah 1, 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
        }
    }
]