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接口一致。