跳到主要内容
版本:0.6

OpenTSDB

GreptimeDB支持通过 Telnet 或 HTTP API 使用 OpenTSDB 协议。

写入新数据

Telnet

GreptimeDB 完全支持 OpenTSDBput 命令格式:

put <metric> <timestamp> <value> <tagk1=tagv1[tagk2=tagv2...tagkN=tagvN]>

你可以使用 put 来写入新数据:

~ % telnet 127.0.0.1 4242
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
put sys.cpu.system 1667892080 3 host=web01 dc=hz
put sys.cpu.system 1667892080 2 host=web02 dc=hz
put sys.cpu.system 1667892080 2 host=web03 dc=hz
put sys.cpu.system 1667892081 1 host=web01
put sys.cpu.system 1667892081 4 host=web04 dc=sh
put sys.cpu.system 1667892082 10 host=web10 dc=sh
quit
Connection closed by foreign host.
~ %

GreptimeDB将每个指标视为单独的表,并将标签作为其列。greptime_timestampgreptime_value 是两个保留列,对应于 put 命令中的时间戳和值。

GreptimeDB 将在您放置指标后自动创建指标表,因此您无需手动创建指标表。

注意

只支持 put 命令,其他命令如 histogramstats 不被支持。

HTTP API

GreptimeDB 还支持通过 HTTP 接口插入 OpenTSDB 数据,接口是 /opentsdb/api/put,使用的请求和响应格式与 OpenTSDB 的 /api/put 接口相同。

GreptimeDB 的 HTTP Server 默认监听 4000 端口。例如使用 curl 写入一个指标数据:

curl -X POST http://127.0.0.1:4000/v1/opentsdb/api/put -d '
{
"metric": "sys.cpu.nice",
"timestamp": 1667898896,
"value": 18,
"tags": {
"host": "web01",
"dc": "hz"
}
}
'

插入多个指标数据:

curl -X POST http://127.0.0.1:4000/v1/opentsdb/api/put -d '
[
{
"metric": "sys.cpu.nice",
"timestamp": 1667898896,
"value": 1,
"tags": {
"host": "web02",
"dc": "hz"
}
},
{
"metric": "sys.cpu.nice",
"timestamp": 1667898897,
"value": 9,
"tags": {
"host": "web03",
"dc": "sh"
}
}
]
'
注意

记得在路径前加上 GreptimeDB 的 HTTP API 版本 v1