openTSDB API详解之rollup
作者:互联网
openTSDB API详解之rollup
尝试写一个累积,或者预聚合的值到存储中。注意:UTF-8字符可能不能被通过Telnet Style API正确处理,所以使用/api/rollup方法或者直接使用Java api【译者注:这里的意思我还是不大理解!】。见/user_guide/rollup 文档中参看更多消息。这个端点的行为和put API 相似。
Request
命令格式如下: rollup <rollup spec> <metric> <timestamp> <value> <tagk_1>=<tagv_1>[ <tagk_n>=<tagv_n>]
在这种情况下,rollup的细则是(原文:In this case the rollup spec is one of:
):
-
<interval>:<aggregator>
: 用于在间隔期间,对一个原始的,或是一个没有预聚合的rollup -
<group_by_aggregator>
: 对于一个原始的pre-aggregated 值,这个值在过去的一段时间内没有被rollup -
<interval>:<aggregator>:<group_by_aggregator>
: 对于一个已经rollup过的预聚合值。
Note
- 因为字段之间使用空格分割,
metrics
以及tag values
可能不包含空格。 - 时间戳必须是一个正
Unix epoch timestamp
。例如:1479496100
代表的就是Fri, 18 Nov 2016 19:08:20 GMT
- 值必须是一个数字。可以是一个整数(介于Java 中long型的最大值与最小值之间),一个浮点值或者是科学计数法也是允许的
[-]<#>.<#>[e|E][-]<#>
- 至少存在一对tag ,附加的tag pairs能够被添加,它们使用空格分割。
Examples
rollup 1h:SUM sys.if.bytes.out 1479412800 1.3E3 host=web01 interface=eth0
rollup SUM sys.procs.running 1479496100 42 colo=lga
rollup 1h:SUM:SUM sys.procs.running 1479412800 24 colo=lga
Response
一个成功的请求将不会返回任何响应。仅仅在一个错误socket包时才会返回一行数据。下面给出一些例子:
Example Requests and Responses
rollup
rollup: illegal argument: not enough arguments (need least 5, got 1)【译者注:这么来看,rollup命令至少需要5个参数值】
rollup SUM metric.foo notatime 42 host=web01
rollup: invalid value: Invalid character 'n' in notatime
如果tsd.core.auto_create_metric
选项被禁用的话,将会返回:
rollup SUM new.metric 1479496160 1.3e3 host=web01
rollup: unknown metric: No such name for 'metrics': 'new.metric'
注
以下观点均是译者个人理解,还请各位同学指教:
- 【1】我对
rollup
的理解同aggregate
一样,都是对数据的聚合。
标签:SUM,rollup,sys,API,web01,openTSDB,metric 来源: https://blog.51cto.com/lawsonabs/3011533