OpenTSDB
GreptimeDB支持通过 Telnet 或 HTTP API 使用 OpenTSDB 协议。
写入新数据
Telnet
GreptimeDB 完全支持 OpenTSDB 的 put 命令格式:
put <metric> <timestamp> <value> <tagk1=tagv1[tagk2=tagv2...tagkN=tagvN]>
你可以使用 put 来写入新数据:
shell
1. ~ % telnet 127.0.0.1 4242
2. Trying 127.0.0.1...
3. Connected to localhost.
4. Escape character is '^]'.
5. put sys.cpu.system 1667892080 3 host=web01 dc=hz
6. put sys.cpu.system 1667892080 2 host=web02 dc=hz
7. put sys.cpu.system 1667892080 2 host=web03 dc=hz
8. put sys.cpu.system 1667892081 1 host=web01
9. put sys.cpu.system 1667892081 4 host=web04 dc=sh
10. put sys.cpu.system 1667892082 10 host=web10 dc=sh
11. quit
12. Connection closed by foreign host.
13. ~ %
GreptimeDB将每个指标视为单独的表,并将标签作为其列。greptime_timestamp 和 greptime_value 是两个保留列,对应于 put 命令中的时间戳和值。
GreptimeDB 将在您放置指标后自动创建指标表,因此您无需手动创建指标表。
注意
只支持 put 命令,其他命令如 histogram 或 stats 不被支持。
HTTP API
GreptimeDB 还支持通过 HTTP 接口插入 OpenTSDB 数据,接口是 /opentsdb/api/put,使用的请求和响应格式与 OpenTSDB 的 /api/put 接口相同。
GreptimeDB 的 HTTP Server 默认监听 4000 端口。例如使用 curl 写入一个指标数据:
shell
1. curl -X POST http://127.0.0.1:4000/v1/opentsdb/api/put -d '
2. {
3. "metric": "sys.cpu.nice",
4. "timestamp": 1667898896,
5. "value": 18,
6. "tags": {
7. "host": "web01",
8. "dc": "hz"
9. }
10. }
11. '
插入多个指标数据:
shell
1. curl -X POST http://127.0.0.1:4000/v1/opentsdb/api/put -d '
2. [
3. {
4. "metric": "sys.cpu.nice",
5. "timestamp": 1667898896,
6. "value": 1,
7. "tags": {
8. "host": "web02",
9. "dc": "hz"
10. }
11. },
12. {
13. "metric": "sys.cpu.nice",
14. "timestamp": 1667898897,
15. "value": 9,
16. "tags": {
17. "host": "web03",
18. "dc": "sh"
19. }
20. }
21. ]
22. '
注意
记得在路径前加上 GreptimeDB 的 HTTP API 版本 v1。
