0
点赞
收藏
分享

微信扫一扫

openTSDB API详解之rollup

快乐与微笑的淘气 2022-01-28 阅读 73


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​​一样,都是对数据的聚合。


举报

相关推荐

0 条评论