histogram

适用于 OpenTSDB 2.4

尝试将直方图数据指向存储。请注意,Telnet 样式 API 可能无法正确处理 UTF-8 字符,因此请改用/api/histogram方法或直接使用 Java API。

Note

由于套接字是异步读写的,因此响应可能会出现乱码。最好将其与 UDP 套接字类似,因为您可能并不总是知道是否将数据放入其中。如果您需要 true 的同步写入并保证数据可以存储,请使用 HTTP 或 Java API。

Warning

2.4 中实现的直方图在查询时不支持导数计算(例如费率)。编写直方图时,它们应该以固定的间隔来自每个来源,并且必须仅反映该特定间隔的测量值。例如。如果源要每 5 分钟报告一次延迟直方图,则源应每 5 分钟创建一个新的直方图对象,将其填充测量值,将其写入 TSDB,并在接下来的 5 分钟间隔内创建一个新的空直方图。

Request

命令格式为:

put <metric> <timestamp> [<id>] <value> <tagk_1>=<tagv_1>[ <tagk_n>=<tagv_n>]

Note:

Value Encoding:

对于简单的桶状直方图实现,该值是由等号分隔的键/值对的分号分隔的列表。所有值(等于运算符的右侧)必须为带符号整数。左侧的值是键字符uo,带符号的整数或带符号的浮点值。数字代表用逗号分隔的存储桶上下限。键/值可以按任何 Sequences 出现。左侧按键 Descriptors 为:

Key Data Type Description Example
u Character 直方图的下溢计数。该字段是可选的,默认为 0. u=0
o Character 直方图的溢出计数。该字段是可选的,默认为 0. o=42
0,1.75 String 逗号分隔的存储桶下限(逗号的左侧)和上限(逗号的右侧)。连续存储桶的上限和下限必须重叠。即我们可能有两个存储桶0,1.75=121.75,3.5=16 0,1.75=12

Examples

put sys.if.bytes.out 1479496100 u=0:o=1:0,1.5=42:1.5,5.75=24 host=web01 interface=eth0
put sys.procs.running 1479496100 1 AgMIGoAAAAADAAAAAAAAAAAAAAAAAPA/AAAAAABARUAAAAAAAADwPwAAAAAAADhAAAAAAABARUA= 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 u=0:o=1:0,1.5=42:1.5,5.75=24 host=web01
put: unknown metric: No such name for 'metrics': 'new.metric'
首页