OpentTsdb官方文档中文版----查询示例

  以下是使用示例数据集合的查询示例列表。我们将说明可能遇到的一些常见查询类型,以便了解查询系统的工作原理。示例集合中的每个时间序列都只存储一个数据点,并且UID已被截断为单个字节,以便于阅读。示例查询都是来自HTTP API的指标查询,并且仅显示m=组件。有关详细信息,请参阅/api/query。如果使用的是CLI工具,查询格式会略有不同,请阅读特定命令的文档。

时间序列 指标 标签 TSUID
1 sys.cpu.system dc=dal host=web01 0102040101
2 sys.cpu.system dc=dal host=web02 0102040102
3 sys.cpu.system dc=dal host=web03 0102040103
4 sys.cpu.system host=web01 010101
5 sys.cpu.system host=web01 owner=jdoe 0101010306
6 sys.cpu.system dc=lax host=web01 010102050101
7 sys.cpu.system dc=lax host=web02 010102050102
8 sys.cpu.system dc=dal host=web01 020202040101
9 sys.cpu.system dc=dal host=web02 020202040102

UIDS

Name UID
Metrics
cpu.system 01
cpu.user 02
Tagks
host 01
dc 02
owner 03
Tagvs
web01 01
web02 02
web03 03
dal 04
lax 05
jdoe 06

警告:
  这并不是设置指标和标签的最佳方式,而是为了说明查询系统的工作原理。特别是,TS#4和5,虽然是合法的时间序列,但可能会搞砸你的查询,除非你知道它们是如何工作的。一般来说,尽量为每个时间序列保留相同数量和类型的标签。

Under the hood

  您可能想了解OpenTSDB如何在这里存储时间序列数据:存储。否则,请记住存储器中的每一行都有一个唯一的格式化的键:

<metricID> <normalized_timestamp> <tagkID1> <tagvID1> [... <tagkIDN> <tagvIDN>]

上面的数据表将被存储为

01 < TS > 0101 
01 < TS > 01010306 
01 < TS > 02040101 
01 < TS > 02040102 
01 < TS > 02040103 
01 < TS > 02050101 
01 < TS > 02050102 
02 < TS > 02040101 
02 < TS > 02040102

  当你查询OpenTSDB时:

  • 查询将被解析并进行验证,以确保格式正确,并且存在指标,标签名称和标签值。如果系统中不存在单个指标,标签名称或值,则会返回错误。
  • 然后它为底层存储系统设置扫描程序。
    如果查询没有任何标签或标签值,那么它将抓取任何匹配的数据行<metricID><timestamp>,因此如果您有特定度量标准的大量时间序列,则这可能是许多行。
    如果查询确实定义了一个或多个标记,则它仍将扫描匹配的所有行<metricID><timestamp>,但也会执行正则表达式以仅返回包含所请求标记的行。
  • 一旦所有数据都被返回,OpenTSDB将其组织成组,如果需要的话
  • 如果要求下采样,则使用适当的聚合器将每个单独的时间序列下采样到更小的时间跨度中
  • 然后使用特定的聚合函数聚合每组数据
  • 如果rate检测到该标志,则会调整每个汇总以获得汇率。
  • 结果返回给调用者

猜你喜欢

转载自blog.51cto.com/1196740/2164968