TimeStream支援按InfluxDB的行協議寫資料,實現將InfluxDB的資料匯入TimeStream。本文介紹將InfluxDB資料匯入TimeStream的API、使用說明和樣本。
前提條件
已建立Elasticsearch執行個體,且執行個體版本為通用商業版7.10、核心版本為1.8.0及以上。具體操作請參見建立Elasticsearch執行個體。
請求文法
POST /_time_stream/influx/write?db={index}&precision=ns
{infludb lines data}
請求參數
參數 | 說明 |
db | TimeStream索引名稱,必選。 |
precision | 精度參數,可選。不傳該參數則預設為ns,參數取值範圍為:[n,ns,u,ms,s,m,h]。 |
使用說明
InfluxDB寫協議格式如下,詳細資料請參見InfluxDB官方文檔。
// Syntax
<measurement>[,<tag_key>=<tag_value>[,<tag_key>=<tag_value>]] <field_key>=<field_value>[,<field_key>=<field_value>] [<timestamp>]
// Example
myMeasurement,tag1=value1,tag2=value2 fieldKey="fieldValue" 1556813561098000000
說明 InfluxDB行協議寫入的資料,measurement會轉換為一個名為measurement的label欄位,如果label中有同名欄位,會覆蓋該值。
InfluxDB寫入的資料內容,儲存在Elasticsearch中的樣本如下:
- 寫入內容
testInflux,label1=label_value1 metric1=0.5
- 對應Elasticsearch source內容
{ "@timestamp": 1669972652000, "labels": { "measurement": "testInflux", "label1": "label_value1" }, "metrics": { "metric1": 0.5 } }
通過InfluxDBx寫協議介面寫入的資料,可以通過Elasticsearch search或者TimeStream Prometheus介面查詢。
樣本
請求樣本
curl -i --user "user:password" "http://xxx:9200/_time_stream/influx/write?db=test_stream" -d "testInflux,label1=label_value1 metric1=0.5"
返回樣本
HTTP/1.1 204 No Content
寫入成功時,Response的body為空白,http code為204。寫入失敗時,返回結果與InfluxDB write介面一致。