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'