aliyun-timestream memungkinkan Anda menggunakan protokol baris InfluxDB untuk menyinkronkan data dari InfluxDB ke indeks deret waktu di Elasticsearch. Topik ini menjelaskan API yang digunakan untuk menyinkronkan data, mencakup catatan penggunaan API, serta memberikan contoh implementasi.
Prasyarat
Cluster Elasticsearch V7.10 dengan versi kernel V1.8.0 atau lebih baru telah dibuat. Untuk informasi lebih lanjut, lihat Buat Cluster Alibaba Cloud Elasticsearch.
Sintaks permintaan
POST /_time_stream/influx/write?db={index}&precision=ns
{data baris infludb}Parameter permintaan
Parameter | Deskripsi |
db | Wajib. Parameter ini menentukan nama indeks deret waktu tempat Anda ingin menulis data. |
presisi | Opsional. Parameter presisi. Nilai valid: n, ns, u, ms, s, m, dan h. Jika Anda tidak mengonfigurasi parameter ini, nilai default ns digunakan. |
Catatan penggunaan
Kode berikut menunjukkan sintaks protokol baris InfluxDB. Untuk informasi lebih lanjut tentang protokol baris, lihat Protokol Baris dalam dokumentasi InfluxDB.
// Sintaks
<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
// Contoh
myMeasurement,tag1=value1,tag2=value2 fieldKey="fieldValue" 1556813561098000000Untuk data yang disinkronkan dari InfluxDB ke indeks deret waktu di Elasticsearch menggunakan protokol baris InfluxDB, nama sebenarnya dari measurement ditampilkan oleh bidang bernama measurement (Bidang 1) dalam parameter labels. Jika nama bidang yang ada (Bidang 2) yang terkandung dalam parameter labels juga measurement, nilai Bidang 1 akan menimpa nilai Bidang 2.
Kode berikut memberikan contoh format data di InfluxDB dan format data setelah ditulis ke Elasticsearch.
Data di InfluxDB
testInflux,label1=label_value1 metric1=0.5Data yang Ditulis ke Elasticsearch
{ "@timestamp": 1669972652000, "labels": { "measurement": "testInflux", "label1": "label_value1" }, "metrics": { "metric1": 0.5 } }Anda dapat menggunakan API Pencarian Elasticsearch open source atau API Prometheus yang Terintegrasi dengan aliyun-timestream untuk menanyakan data yang disinkronkan dari InfluxDB ke Elasticsearch menggunakan protokol baris InfluxDB.
Contoh
Permintaan sampel
curl -i --user "user:password" "http://xxx:9200/_time_stream/influx/write?db=test_stream" -d "testInflux,label1=label_value1 metric1=0.5"Respons sampel
HTTP/1.1 204 No ContentJika data berhasil ditulis ke Elasticsearch, isi respons ditampilkan sebagai No Content, dan kode status HTTP 204 dikembalikan. Jika data gagal ditulis ke Elasticsearch, responsnya sama dengan respons yang dikembalikan ketika data gagal ditulis menggunakan API Penulisan InfluxDB.