put
尝试将数据点写入存储。请注意,Telnet 样式 API 可能无法正确处理 UTF-8 字符,因此请改用/api/put方法或直接使用 Java API。
Note
由于套接字是异步读写的,因此响应可能会出现乱码。最好将其与 UDP 套接字类似,因为您可能并不总是知道是否将数据放入其中。如果您需要 true 的同步写入并保证数据可以存储,请使用 HTTP 或 Java API。
Request
命令格式为:
put <metric> <timestamp> <value> <tagk_1>=<tagv_1>[ <tagk_n>=<tagv_n>]
Note:
-
由于字段是用空格分隔的,因此 Metrics 和标记值可能不包含空格。
-
时间戳记必须为正 Unix 纪元时间戳记。例如。
1479496100
代表Fri, 18 Nov 2016 19:08:20 GMT
-
该值必须是数字。它可以是整数(Java
long
数据类型的最大值和最小值),浮点值或科学计数法(格式为[-]<#>.<#>[e|E][-]<#>
)。 -
必须至少存在一个标签对。可以在其他标签对之间添加空格。
Examples
put sys.if.bytes.out 1479496100 1.3E3 host=web01 interface=eth0
put sys.procs.running 1479496100 42 host=web01
Response
成功的请求将不会返回响应。只有在出错时,套接字才会返回一行数据。一些示例如下所示:
请求和响应示例
put
put: illegal argument: not enough arguments (need least 4, got 1)
put metric.foo notatime 42 host=web01
put: invalid value: Invalid character 'n' in notatime
如果禁用了tsd.core.auto_create_metrics
,将返回以下内容。
put new.metric 1479496160 1.3e3 host=web01
put: unknown metric: No such name for 'metrics': 'new.metric'