全部產品
Search
文件中心

Elasticsearch:TimeStream整合InfluxDB寫協議介面

更新時間:Nov 28, 2024

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介面一致。