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一样,都是对数据的聚合。
上一篇:后续~阿里面试:100个高频Spring面试题,助你一臂之力


下一篇:JSP实现的购物商城,SSM购物商城